ufomarketplace-sdk-new
Version:
SDK to interact with set ufo marketplace contracts
15 lines • 213 kB
TypeScript
import { Signer, ContractFactory, Overrides } from "ethers";
import type { Provider, TransactionRequest } from "@ethersproject/providers";
import type { FactoryHelperTest, FactoryHelperTestInterface } from "../../FactoryHelper.t.sol/FactoryHelperTest";
type FactoryHelperTestConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
export declare class FactoryHelperTest__factory extends ContractFactory {
constructor(...args: FactoryHelperTestConstructorParams);
deploy(overrides?: Overrides & {
from?: string;
}): Promise<FactoryHelperTest>;
getDeployTransaction(overrides?: Overrides & {
from?: string;
}): TransactionRequest;
attach(address: string): FactoryHelperTest;
connect(signer: Signer): FactoryHelperTest__factory;
static readonly bytecode = "0x6080604052601280546001600160a01b03191673d51bfa777609213a653a2cd067c9a0132a2d316a17905534801561003657600080fd5b506201886380620000486000396000f3fe60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80630a9254e41462000063578063101d2771146200006f578063283571a41462000079578063ba414fa61462000096578063fa7626d414620000b1575b600080fd5b6200006d620000b9565b005b6200006d620000c5565b6200008360015481565b6040519081526020015b60405180910390f35b620000a0620001d6565b60405190151581526020016200008d565b6001620000a0565b620000c362000301565b565b60408051808201825260088152671b999d0818dbdcdd60c21b6020820152600c549151636dc3193b60e11b8152600060048201526001602482015262000173926001600160a01b03169063db863276906044015b60206040518083038186803b1580156200013257600080fd5b505afa15801562000147573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016d919062001561565b620012a1565b604080518082018252600b81526a1dd9585c1bdb8818dbdcdd60aa1b6020820152600c5491516304d2b7cd60e11b8152600060048201526001602482018190526044820152620000c3926001600160a01b0316906309a56f9a9060640162000119565b6000805460ff1615620001e95750600190565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15620002fb5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b8284015282518083038401815260608301909352600092909162000278917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016200157b565b60408051601f19818403018152908290526200029491620015ae565b6000604051808303816000865af19150503d8060008114620002d3576040519150601f19603f3d011682016040523d82523d6000602084013e620002d8565b606091505b50915050600081806020019051810190620002f491906200153d565b9392505050565b50600090565b604051630637469360e31b815260206004820152601c60248201527f68747470733a2f2f6275696c642e6f6e6265616d2e636f6d2f727063000000006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906331ba349890606401602060405180830381600087803b1580156200037c57600080fd5b505af115801562000391573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b7919062001561565b6001819055604051639ebf682760e01b81526004810191909152737109709ecfa91a80626ff3989d68f67f5b1dd12d90639ebf682790602401600060405180830381600087803b1580156200040b57600080fd5b505af115801562000420573d6000803e3d6000fd5b5050505060405162000432906200131d565b604051809103906000f0801580156200044f573d6000803e3d6000fd5b5060008054610100600160a81b0319166101006001600160a01b039384168102919091179182905560405163792e11f560e01b8152600a600482015291049091169063792e11f590602401600060405180830381600087803b158015620004b557600080fd5b505af1158015620004ca573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620004f4919081019062001463565b80516200050a91600e916020909101906200132b565b50600e600081548110620005225762000522620016d1565b600091825260209091200154600f80546001600160a01b0319166001600160a01b03909216919091179055600e80546001908110620005655762000565620016d1565b600091825260209091200154601080546001600160a01b0319166001600160a01b03909216919091179055600e80546002908110620005a857620005a8620016d1565b600091825260209091200154601180546001600160a01b0319166001600160a01b03909216919091179055600e80546003908110620005eb57620005eb620016d1565b600091825260209091200154601380546001600160a01b0319166001600160a01b03909216919091179055600e805460049081106200062e576200062e620016d1565b600091825260209091200154601480546001600160a01b0319166001600160a01b03909216919091179055600e80546005908110620006715762000671620016d1565b600091825260209091200154601580546001600160a01b0319166001600160a01b0392831617905560135460405163c88a5e6d60e01b81529116600482015269d3c21bcecceda10000006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b158015620006fa57600080fd5b505af11580156200070f573d6000803e3d6000fd5b505060145460405163c88a5e6d60e01b81526001600160a01b03909116600482015269d3c21bcecceda10000006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d9150604401600060405180830381600087803b1580156200077d57600080fd5b505af115801562000792573d6000803e3d6000fd5b505060155460405163c88a5e6d60e01b81526001600160a01b03909116600482015269d3c21bcecceda10000006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d9150604401600060405180830381600087803b1580156200080057600080fd5b505af115801562000815573d6000803e3d6000fd5b505060135460405164e8d4a510009350600692506001600160a01b0390911690620008409062001395565b6200084e9392919062001632565b604051809103906000f0801580156200086b573d6000803e3d6000fd5b50600d80546001600160a01b0319166001600160a01b039283161790556010546040519116906200089c90620013a3565b6001600160a01b039091168152602001604051809103906000f080158015620008c9573d6000803e3d6000fd5b50600c80546001600160a01b03929092166001600160a01b031992831617905560078054909116737063f3446223bc4f5c37b0f9d1e12547f0358e901790556040516200091690620013b1565b604051809103906000f08015801562000933573d6000803e3d6000fd5b50600480546001600160a01b0319166001600160a01b039283169081179091556010546040519216916200096790620013bf565b6001600160a01b03928316815291166020820152604001604051809103906000f0801580156200099b573d6000803e3d6000fd5b50600880546001600160a01b0319166001600160a01b03928316179055601054604051911690620009cc90620013cd565b606080825260069082015265506c61736d6160d01b608082015260a06020820181905260039082015262504c5360e81b60c08201526001600160a01b03909116604082015260e001604051809103906000f08015801562000a31573d6000803e3d6000fd5b50600580546001600160a01b0319166001600160a01b039290921691909117905560405162000a6090620013db565b604051809103906000f08015801562000a7d573d6000803e3d6000fd5b50600680546001600160a01b0319166001600160a01b03928316908117909155600f546040519192169062000ab290620013e9565b62000abf929190620015cc565b604051809103906000f08015801562000adc573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b0392831690811790915560105460115460405163485cc95560e01b8152918416600483015290921660248301529063485cc95590604401600060405180830381600087803b15801562000b4457600080fd5b505af115801562000b59573d6000803e3d6000fd5b5050600254600680546001600160a01b0319166001600160a01b03909216919091179055505060405162000b8d90620013f7565b604051809103906000f08015801562000baa573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b03928316908117909155600f546040519192169062000bdf90620013e9565b62000bec929190620015cc565b604051809103906000f08015801562000c09573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b03928316908117909155601054600854600554600654600c54604051636213b72760e01b8152948716600486015292861660248501529085166044840152683635c9adc5dea00000606484015267016345785d8a00006084840152841660a483015290921660c483015290636213b7279060e401600060405180830381600087803b15801562000cae57600080fd5b505af115801562000cc3573d6000803e3d6000fd5b5050600254600380546001600160a01b0319166001600160a01b03909216919091179055505060405162000cf79062001405565b604051809103906000f08015801562000d14573d6000803e3d6000fd5b50600980546001600160a01b0319166001600160a01b03928316908117909155600f546040519192169062000d4990620013e9565b62000d56929190620015cc565b604051809103906000f08015801562000d73573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b0392831690811790915560105460035460405163485cc95560e01b8152918416600483015290921660248301529063485cc95590604401600060405180830381600087803b15801562000ddb57600080fd5b505af115801562000df0573d6000803e3d6000fd5b5050600254600980546001600160a01b0319166001600160a01b03909216919091179055505060405162000e249062001413565b604051809103906000f08015801562000e41573d6000803e3d6000fd5b50600b80546001600160a01b0319166001600160a01b03928316908117909155600f546040519192169062000e7690620013e9565b62000e83929190620015cc565b604051809103906000f08015801562000ea0573d6000803e3d6000fd5b50600280546001600160a01b039283166001600160a01b03199182168117909255600b80549091168217905560105460065460405163c350a1b560e01b8152918416600483015260fa602483015290921660448301529063c350a1b590606401600060405180830381600087803b15801562000f1b57600080fd5b505af115801562000f30573d6000803e3d6000fd5b5050600654600b546010546040516001600160a01b03938416955091831693509091169062000f5f9062001421565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f08015801562000f9c573d6000803e3d6000fd5b50600a80546001600160a01b0319166001600160a01b039283161790556010546040516303223eab60e11b815291166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b1580156200100a57600080fd5b505af11580156200101f573d6000803e3d6000fd5b505060035460095460405163a424c78360e01b81526001600160a01b0391821660048201529116925063a424c7839150602401600060405180830381600087803b1580156200106d57600080fd5b505af115801562001082573d6000803e3d6000fd5b5050600354600b54604051635a3e62ab60e11b81526001600160a01b0391821660048201529116925063b47cc5569150602401600060405180830381600087803b158015620010d057600080fd5b505af1158015620010e5573d6000803e3d6000fd5b5050600354600d5460405163269fce9f60e11b815260006004820181905260248201526001600160a01b03918216604482015291169250634d3f9d3e9150606401600060405180830381600087803b1580156200114157600080fd5b505af115801562001156573d6000803e3d6000fd5b50505050600660009054906101000a90046001600160a01b03166001600160a01b031663ba0bba406040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620011ab57600080fd5b505af1158015620011c0573d6000803e3d6000fd5b5050600b54600a54604051634d1044b960e01b81526001600160a01b03918216600482015291169250634d1044b99150602401600060405180830381600087803b1580156200120e57600080fd5b505af115801562001223573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200128657600080fd5b505af11580156200129b573d6000803e3d6000fd5b50505050565b620012ea8282604051602401620012ba929190620015f5565b60408051601f198184030181529190526020810180516001600160e01b0316632d839cb360e21b179052620012ee565b5050565b620012f981620012fc565b50565b60006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6107ba80620016fe83390190565b82805482825590600052602060002090810192821562001383579160200282015b828111156200138357825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906200134c565b50620013919291506200142f565b5090565b61171d8062001eb883390190565b611f4580620035d583390190565b612bd9806200551a83390190565b6104a480620080f383390190565b611ad7806200859783390190565b611a6c806200a06e83390190565b610eb1806200bada83390190565b6157ac806200c98b83390190565b6127ba806201213783390190565b61351f80620148f183390190565b610a478062017e1083390190565b5b8082111562001391576000815560010162001430565b80516001600160a01b03811681146200145e57600080fd5b919050565b600060208083850312156200147757600080fd5b825167ffffffffffffffff808211156200149057600080fd5b818501915085601f830112620014a557600080fd5b815181811115620014ba57620014ba620016e7565b8060051b604051601f19603f83011681018181108582111715620014e257620014e2620016e7565b604052828152858101935084860182860187018a10156200150257600080fd5b600095505b8386101562001530576200151b8162001446565b85526001959095019493860193860162001507565b5098975050505050505050565b6000602082840312156200155057600080fd5b81518015158114620002f457600080fd5b6000602082840312156200157457600080fd5b5051919050565b6001600160e01b0319831681528151600090620015a0816004850160208701620016a2565b919091016004019392505050565b60008251620015c2818460208701620016a2565b9190910192915050565b6001600160a01b0392831681529116602082015260606040820181905260009082015260800190565b604081526000835180604084015262001616816060850160208801620016a2565b602083019390935250601f91909101601f191601606001919050565b60a0815260006200165760a0830160048152631554d11560e21b602082015260400190565b82810360208401526200167b8160048152631554d11560e21b602082015260400190565b6040840196909652505060ff9290921660608301526001600160a01b031660809091015290565b60005b83811015620016bf578181015183820152602001620016a5565b838111156200129b5750506000910152565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfe6b75736572206164647265737360a01b60a052600c6080527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db76001557f796f75206665656c696e67206c75636b792070756e6b3f00000000000000000060cc52601760ac5260e36040527f1982c532a5d29268425bcfbf045135788c5133835c8cab9378d36348feaa720f60025534801561009957600080fd5b50610711806100a96000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063ba414fa611610066578063ba414fa614610127578063cee1a8fc1461013f578063ec3206a1146100c1578063f82de7b014610154578063fa7626d41461016757600080fd5b8063792e11f514610098578063939cb064146100c1578063a199b3d3146100e2578063b90a68fa146100ea575b600080fd5b6100ab6100a636600461059c565b61016e565b6040516100b89190610620565b60405180910390f35b6100d46100cf36600461059c565b6102f9565b6040519081526020016100b8565b6100d4610314565b600180546040805160208082018490528251808303820181528284019384905280519101209093556001600160a01b0390911690526060016100b8565b61012f610341565b60405190151581526020016100b8565b61015261014d36600461059c565b610462565b005b61015261016236600461059c565b6104d9565b600161012f565b606060008267ffffffffffffffff81111561018b5761018b6106ee565b6040519080825280602002602001820160405280156101b4578160200160208202803683370190505b50905060005b838110156102f2576000306001600160a01b031663b90a68fa6040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156101ff57600080fd5b505af1158015610213573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102379190610551565b60405163c88a5e6d60e01b81526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b15801561029e57600080fd5b505af11580156102b2573d6000803e3d6000fd5b50505050808383815181106102c9576102c96106d8565b6001600160a01b0390921660209283029190910190910152506102eb81610685565b90506101ba565b5092915050565b600081610304610314565b61030e91906106a0565b92915050565b60025460408051602081018390520160408051601f19818403018152919052805160209091012060025590565b6000805460ff16156103535750600190565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561045c5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b828401528251808303840181526060830190935260009290916103df917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016105f0565b60408051601f19818403018152908290526103f991610614565b6000604051808303816000865af19150503d8060008114610436576040519150601f19603f3d011682016040523d82523d6000602084013e61043b565b606091505b50915050600081806020019051810190610455919061057a565b9392505050565b50600090565b737109709ecfa91a80626ff3989d68f67f5b1dd12d63e5d6bf02610486834261066d565b6040518263ffffffff1660e01b81526004016104a491815260200190565b600060405180830381600087803b1580156104be57600080fd5b505af11580156104d2573d6000803e3d6000fd5b5050505050565b60006104e5824361066d565b6040516301f7b4f360e41b815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f3090602401600060405180830381600087803b15801561053557600080fd5b505af1158015610549573d6000803e3d6000fd5b505050505050565b60006020828403121561056357600080fd5b81516001600160a01b038116811461045557600080fd5b60006020828403121561058c57600080fd5b8151801515811461045557600080fd5b6000602082840312156105ae57600080fd5b5035919050565b6000815160005b818110156105d657602081850181015186830152016105bc565b818111156105e5576000828601525b509290920192915050565b6001600160e01b031983168152600061060c60048301846105b5565b949350505050565b600061045582846105b5565b6020808252825182820181905260009190848201906040850190845b818110156106615783516001600160a01b03168352928401929184019160010161063c565b50909695505050505050565b60008219821115610680576106806106c2565b500190565b6000600019821415610699576106996106c2565b5060010190565b6000826106bd57634e487b7160e01b600052601260045260246000fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea164736f6c6343000807000a60806040526006805460ff191660121790553480156200001e57600080fd5b506040516200171d3803806200171d833981016040819052620000419162000398565b8451859085906200005a9060039060208501906200023b565b508051620000709060049060208401906200023b565b505050620000858184620000d060201b60201c565b620000b17ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc98262000197565b506006805460ff191660ff9290921691909117905550620004c2915050565b6001600160a01b0382166200012b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200013f919062000448565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b5050565b60008281526005602090815260408083206001600160a01b038516845290915290205460ff16620001935760008281526005602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620001f73390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b82805462000249906200046f565b90600052602060002090601f0160209004810192826200026d5760008555620002b8565b82601f106200028857805160ff1916838001178555620002b8565b82800160010185558215620002b8579182015b82811115620002b85782518255916020019190600101906200029b565b50620002c6929150620002ca565b5090565b5b80821115620002c65760008155600101620002cb565b600082601f830112620002f357600080fd5b81516001600160401b0380821115620003105762000310620004ac565b604051601f8301601f19908116603f011681019082821181831017156200033b576200033b620004ac565b816040528381526020925086838588010111156200035857600080fd5b600091505b838210156200037c57858201830151818301840152908201906200035d565b838211156200038e5760008385830101525b9695505050505050565b600080600080600060a08688031215620003b157600080fd5b85516001600160401b0380821115620003c957600080fd5b620003d789838a01620002e1565b96506020880151915080821115620003ee57600080fd5b50620003fd88828901620002e1565b94505060408601519250606086015160ff811681146200041c57600080fd5b60808701519092506001600160a01b03811681146200043a57600080fd5b809150509295509295909350565b600082198211156200046a57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200048457607f821691505b60208210811415620004a657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b61124b80620004d26000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806342966c68116100c3578063a217fddf1161007c578063a217fddf146102c8578063a457c2d7146102d0578063a9059cbb146102e3578063d547741f146102f6578063dd62ed3e14610309578063fe6d81241461031c57600080fd5b806342966c681461025157806370a082311461026457806376809ce31461028d57806379cc67901461029a57806391d14854146102ad57806395d89b41146102c057600080fd5b8063248a9ca311610115578063248a9ca3146101c75780632f2ff15d146101ea578063313ce567146101ff57806336568abe14610218578063395093511461022b57806340c10f191461023e57600080fd5b806301ffc9a71461015257806306fdde031461017a578063095ea7b31461018f57806318160ddd146101a257806323b872dd146101b4575b600080fd5b61016561016036600461107b565b610343565b60405190151581526020015b60405180910390f35b61018261037a565b604051610171919061111a565b61016561019d366004611015565b61040c565b6002545b604051908152602001610171565b6101656101c2366004610fd9565b610424565b6101a66101d536600461103f565b60009081526005602052604090206001015490565b6101fd6101f8366004611058565b610448565b005b60065460ff165b60405160ff9091168152602001610171565b6101fd610226366004611058565b610472565b610165610239366004611015565b6104f5565b6101a661024c366004611015565b610517565b6101fd61025f36600461103f565b610602565b6101a6610272366004610f8b565b6001600160a01b031660009081526020819052604090205490565b6006546102069060ff1681565b6101fd6102a8366004611015565b61060f565b6101656102bb366004611058565b610624565b61018261064f565b6101a6600081565b6101656102de366004611015565b61065e565b6101656102f1366004611015565b6106d9565b6101fd610304366004611058565b6106e7565b6101a6610317366004610fa6565b61070c565b6101a67ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc981565b60006001600160e01b03198216637965db0b60e01b148061037457506301ffc9a760e01b6001600160e01b03198316145b92915050565b606060038054610389906111c7565b80601f01602080910402602001604051908101604052809291908181526020018280546103b5906111c7565b80156104025780601f106103d757610100808354040283529160200191610402565b820191906000526020600020905b8154815290600101906020018083116103e557829003601f168201915b5050505050905090565b60003361041a818585610737565b5060019392505050565b60003361043285828561085b565b61043d8585856108d5565b506001949350505050565b60008281526005602052604090206001015461046381610a79565b61046d8383610a83565b505050565b6001600160a01b03811633146104e75760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6104f18282610b09565b5050565b60003361041a818585610508838361070c565b610512919061114d565b610737565b60006105437ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc933610624565b6105a55760405162461bcd60e51b815260206004820152602d60248201527f4f6e6c7920416464726573732077697468206d696e74657220726f6c6520636160448201526c6e206d696e7420746f6b656e7360981b60648201526084016104de565b816105f25760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e742073686f756c642062652067726561746572207468616e20300060448201526064016104de565b6105fc8383610b70565b50919050565b61060c3382610c2f565b50565b61061a82338361085b565b6104f18282610c2f565b60009182526005602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060048054610389906111c7565b6000338161066c828661070c565b9050838110156106cc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104de565b61043d8286868403610737565b60003361041a8185856108d5565b60008281526005602052604090206001015461070281610a79565b61046d8383610b09565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166107995760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104de565b6001600160a01b0382166107fa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104de565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610867848461070c565b905060001981146108cf57818110156108c25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104de565b6108cf8484848403610737565b50505050565b6001600160a01b0383166109395760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104de565b6001600160a01b03821661099b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104de565b6001600160a01b03831660009081526020819052604090205481811015610a135760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104de565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36108cf565b61060c8133610d61565b610a8d8282610624565b6104f15760008281526005602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610ac53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610b138282610624565b156104f15760008281526005602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6001600160a01b038216610bc65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104de565b8060026000828254610bd8919061114d565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038216610c8f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016104de565b6001600160a01b03821660009081526020819052604090205481811015610d035760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016104de565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b610d6b8282610624565b6104f157610d7881610dba565b610d83836020610dcc565b604051602001610d949291906110a5565b60408051601f198184030181529082905262461bcd60e51b82526104de9160040161111a565b60606103746001600160a01b03831660145b60606000610ddb836002611165565b610de690600261114d565b67ffffffffffffffff811115610dfe57610dfe611228565b6040519080825280601f01601f191660200182016040528015610e28576020820181803683370190505b509050600360fc1b81600081518110610e4357610e43611212565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610e7257610e72611212565b60200101906001600160f81b031916908160001a9053506000610e96846002611165565b610ea190600161114d565b90505b6001811115610f19576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610ed557610ed5611212565b1a60f81b828281518110610eeb57610eeb611212565b60200101906001600160f81b031916908160001a90535060049490941c93610f12816111b0565b9050610ea4565b508315610f685760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016104de565b9392505050565b80356001600160a01b0381168114610f8657600080fd5b919050565b600060208284031215610f9d57600080fd5b610f6882610f6f565b60008060408385031215610fb957600080fd5b610fc283610f6f565b9150610fd060208401610f6f565b90509250929050565b600080600060608486031215610fee57600080fd5b610ff784610f6f565b925061100560208501610f6f565b9150604084013590509250925092565b6000806040838503121561102857600080fd5b61103183610f6f565b946020939093013593505050565b60006020828403121561105157600080fd5b5035919050565b6000806040838503121561106b57600080fd5b82359150610fd060208401610f6f565b60006020828403121561108d57600080fd5b81356001600160e01b031981168114610f6857600080fd5b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516110dd816017850160208801611184565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161110e816028840160208801611184565b01602801949350505050565b6020815260008251806020840152611139816040850160208701611184565b601f01601f19169190910160400192915050565b60008219821115611160576111606111fc565b500190565b600081600019048311821515161561117f5761117f6111fc565b500290565b60005b8381101561119f578181015183820152602001611187565b838111156108cf5750506000910152565b6000816111bf576111bf6111fc565b506000190190565b600181811c908216806111db57607f821691505b602082108114156105fc57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea164736f6c6343000807000a60806040523480156200001157600080fd5b5060405162001f4538038062001f45833981016040819052620000349162000a50565b6200003f336200091f565b620003a26103e87fccfe08badd7fbee8a36c1d2ba2b3090f679bf1a4970d307adddb9d938fc7bd72556113887fb116e49c5d725dff7d04eff8de2b6cba606adebd5c51d140fbe3ec5c272c5f7355614e207fc97a69e6e2de1bb9e27f629ecf2981a64edb688b55347fa4daae7dde857b7d91556175307ffa37840a14799ca23d33c55b9b42830805d3d3decc30cbf9394f7f7c62042ab3819055619c407fff03117aca25b284633eab259ac0c2394bf76e317400110747ed535c446b6d5a8190556104b07fedb38a93e6e2e82dbb40826a878df1d817a37ef13fcaa25248649a90fa47497b556117707f58e76cff22dd72278c8f84685a17f449f02ff85d2e9a03f82022b6f39564086055615dc07f158767340ba23d54c9df5ae99b956057eea7a83ae8538a2dc391c346fd5136e255618ca07f5d6cd7de0286a98dfeda5747bd584a64ab88877681c0079306854ffd7e7c1a035561bb807f905a7e789ce10f3196ebafd6961387e80b07e8c162f5e6ee6a1006abce80139e556105dc7fe28818af7bb947aef01108c00a0155d810d5eea20893e766795b298bc4db781955611d4c7f42f44160cc2e77bbab1a45023ad285dcfafdd00b6fed6e77933c71a0ddb5df3f557fc4660acc4bd0a40bb2aaddc291a83b2fbde6034df1730ebf08010adf2b6786479190915561afc87f350ab52e3bd5168bfe0c12fa1e681e86e66c136cc21ab97368d3d0682461e0f55561ea607f82d6bd3809c82dd5d8ed6c797b795cebc818a5428745e8871e23482c0af67f1d819055620124f87f2e6f4cae5d25310d2f5e3e67123cbd2726a8b441f8627bccbb96d71df5d5ccd8556107d07fe274e030096b679b4f85765392b8d9c193468dcc79489f9ef2e4555d9913da5f556127107fc57d9bce4232b7d5f8cf6d73a7aca17cf0abf49995b3841141095bc9f1c96ced557fadcf0102a3b6ed77d2b232c66d6d760bb129429915f070489c73c0ce2ec87de0919091557f2f0b2f4b0fc93ab043d3d4fa5e90f5122cc1c0be4812f3da329115acdaa7df9355620138807f34a2343d0d2f4c847345efd372438cdb34b8003ef6fe81f277c68d26e321e3c85560066000527f7dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60b602052620186a07fd0486956a4fd452fef9be90b5e55178bbc3faed0b808669ae4e49a94f1b8112b55565b6200090d6107d07f52294fcb08f2fdae1b20b0415a5ee714611bc28109dfadbf3972b557a47d28a1556127107f604a8bbf84ea695d5e0b2e0050a1deac40ace3ce3403481b3ab3b577e874580855619c407f7d87d57a7f33c6be62aa8dd5e863b1c4fad03911ee1749a342904d75641c1b1a5561ea607f7f489cfef20aebc887f3f6dfc376561c7a087e26ef321f6fd022cb3d4010792b8190556109607f92864aa2f9eb4f50f5d107484a73eda12e087425957ca38b7e08f665e621651055612ee07fdc91c2cba0f231ec52b38d5e4e51aaa6b276c3a4131fb48c9fcc2a963241496c5561bb807f328fbcfc4386c759df5cfe1a119dd3e50a28b947635c8dd9ea182641fe46c02c55620119407fb318cc1ab0f09ea2df6badcf19dd3b5ae690e79e4c4a3d0944ed38041b30ca9855610bb87f7f044650b405c2af42542a8c5302665edb047ed896ff5e562651b16d161a380f819055613a987fcf23ae71d0c957e1744c498b359e72498e4ffa6e1bb09068307099b7fa9154238190557f4940548ae80bfc4d33d1baf17cb184e099c0dc5ead116fc08045743169c291ca83905562015f907f1643611545f66cf246be16b2e62820a279e2c26205a37f05b54c9c74ca353a1a8190556201d4c07f750af7b37ee002f3b4ae2aa98457db22b5a258b4ad86a5ae7c8a756d9b206092819055610fa07fbbcfea5840dba18ae92d7a39470b125b09d71009ce58b3ee46506d9e672929a555614e207f169cb5b3f9a2ab59f8b3ce0d90a4d142d4bc885c06d817b2479eb3e48cc0985855620138807f0fd3f2e321d305078d87f84bf4ce0056dc2defe0381e9f2e1a2b3f0c200a61bc557f74a9de854f658fac79a1e2b57b23bb7d56e5e51520bb278b52e863338ae13acd819055620271007fa3a58dce6c1996b42ee0b84fac29d395320f79917b5e96b2b415e232792172c0556105dc7f9bfb8699c6e33bc6eaebaf77c87a8690c53ef14ddc41f0be1f58da30bd38ead455611d4c7f99b127638706f3632ed406928d5db19172ef0648d7305ef3c7c333f79f4598c0556175307f3523d6982c0ae2e1606d07136a3ca1fa860708cf6b7e241e7497cc1936bc361a5561afc87fc125f6ea4b8e6b1fbfda0f1e7580f85d29686a922e19672183a572f108d4ed4d8190556107087f4a1409d25e0eb18a2766c893aba3242cde021a21bfaf25e8427a76110c93a499556123287fd6d6ea3e778866e69fc10bb1d000dd432e7041a965815972b0994f1528bb9ebf55618ca07f585e23f16d5b0b647d9e8e743c38a1ef4da1e544de301087af904b6878b0d5e95561d2f07faa8d1ce747c1287a061e0c21a9513fb4e2f5640c433dcaf3d9b962aff635c1e5556108ca7f16c5a7805b905509aa6e0317390e2abea4da7813fed5229ecb045e0efa772c7655612bf27f32b5cd14a1f7cc9707568db79d4d815bc52745231a3934a0626a0d4d463dc3a5557fa82e832f54a18972039866aa5ea4f7af3983220ee50dd3c9c8d9e7d88909991d55620107ac7f6981341f65fb18df2fb1c5306dbebf0e2786ae590e5cbbeda9dfa6afae4dbb02557f55614b3b2de957fbef848c8139b4ff534c898305de8c0b39ede3622c598ad103919091557f2a19cbfb694a9d82c92c03e20ae504f0ec63cbcc2838655e7cbbb2a7562c8a12929092557fa714862220533757192431eb2428e11c3c462032e0336d2a1b954ddf8ad2cc87557f7cc3b34ee92552c4eef4ddf266346616c021983515ab6954014f5c3bc179527e91909155620dbba07f4e894ef26f54b19b8327719ea8cab51d7901d316df5d28e28e1c2a1c7cfce0865560056000527f85c8d53f896f29b263aef4a7c060c9014c20977dbb5ec4ce69dbd3968de6e4d36020527f7ade6040f5e4f55b3dab4b05ff4889749ad71046b4825a0d7df02d26dc33f78e55565b62000918816200096f565b5062000a82565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b62000979620009f2565b6001600160a01b038116620009e45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b620009ef816200091f565b50565b6000546001600160a01b0316331462000a4e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620009db565b565b60006020828403121562000a6357600080fd5b81516001600160a01b038116811462000a7b57600080fd5b9392505050565b6114b38062000a926000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806391c3a8901161007157806391c3a8901461014a578063b56c498614610175578063d472434b14610188578063db8632761461019b578063f2fde38b146101ae578063fb90df5d146101c157600080fd5b806309a56f9a146100ae578063547e9830146100d4578063715018a6146100f4578063781c4ac4146100fe5780638da5cb5b1461012f575b600080fd5b6100c16100bc3660046112e5565b6101d4565b6040519081526020015b60405180910390f35b6100e76100e2366004611273565b61027b565b6040516100cb919061134c565b6100fc6108af565b005b6100c161010c3660046111a6565b600260209081526000938452604080852082529284528284209052825290205481565b6000546040516001600160a01b0390911681526020016100cb565b6100c16101583660046111e9565b600160209081526000928352604080842090915290825290205481565b6100fc610183366004611295565b6108c3565b6100e7610196366004611213565b610a32565b6100c16101a9366004611273565b610e04565b6100fc6101bc366004611176565b610e66565b6100fc6101cf36600461122c565b610edf565b6000600260008560038111156101ec576101ec611464565b60038111156101fd576101fd611464565b600381111561020e5761020e611464565b8152602001908152602001600020600084600181111561023057610230611464565b600181111561024157610241611464565b600181111561025257610252611464565b815260200190815260200160002060008381526020019081526020016000205490509392505050565b6102836110a8565b600083600381111561029757610297611464565b60038111156102a8576102a8611464565b14806102d6575060018360038111156102c3576102c3611464565b60038111156102d4576102d4611464565b145b15610573576040518060a00160405280600260008660038111156102fc576102fc611464565b600381111561030d5761030d611464565b600381111561031e5761031e611464565b8152602001908152602001600020600085600181111561034057610340611464565b600181111561035157610351611464565b600181111561036257610362611464565b81526020019081526020016000206000600181526020019081526020016000205481526020016002600086600381111561039e5761039e611464565b60038111156103af576103af611464565b60038111156103c0576103c0611464565b815260200190815260200160002060008560018111156103e2576103e2611464565b60018111156103f3576103f3611464565b600181111561040457610404611464565b81526020019081526020016000206000600281526020019081526020016000205481526020016002600086600381111561044057610440611464565b600381111561045157610451611464565b600381111561046257610462611464565b8152602001908152602001600020600085600181111561048457610484611464565b600181111561049557610495611464565b60018111156104a6576104a6611464565b8152602001908152602001600020600060038152602001908152602001600020548152602001600260008660038111156104e2576104e2611464565b60038111156104f3576104f3611464565b600381111561050457610504611464565b8152602001908152602001600020600085600181111561052657610526611464565b600181111561053757610537611464565b600181111561054857610548611464565b81526020808201929092526040908101600090812060048252835290812054835291015290506108a9565b6040518060a001604052806002600086600381111561059457610594611464565b60038111156105a5576105a5611464565b60038111156105b6576105b6611464565b815260200190815260200160002060008560018111156105d8576105d8611464565b60018111156105e9576105e9611464565b60018111156105fa576105fa611464565b81526020019081526020016000206000600181526020019081526020016000205481526020016002600086600381111561063657610636611464565b600381111561064757610647611464565b600381111561065857610658611464565b8152602001908152602001600020600085600181111561067a5761067a611464565b600181111561068b5761068b611464565b600181111561069c5761069c611464565b8152602001908152602001600020600060028152602001908152602001600020548152602001600260008660038111156106d8576106d8611464565b60038111156106e9576106e9611464565b60038111156106fa576106fa611464565b8152602001908152602001600020600085600181111561071c5761071c611464565b600181111561072d5761072d611464565b600181111561073e5761073e611464565b81526020019081526020016000206000600381526020019081526020016000205481526020016002600086600381111561077a5761077a611464565b600381111561078b5761078b611464565b600381111561079c5761079c611464565b815260200190815260200160002060008560018111156107be576107be611464565b60018111156107cf576107cf611464565b60018111156107e0576107e0611464565b81526020019081526020016000206000600481526020019081526020016000205481526020016002600086600381111561081c5761081c611464565b600381111561082d5761082d611464565b600381111561083e5761083e611464565b8152602001908152602001600020600085600181111561086057610860611464565b600181111561087157610871611464565b600181111561088257610882611464565b81526020019081526020016000206000600581526020019081526020016000205481525090505b92915050565b6108b7610ffe565b6108c16000611058565b565b6108cb610ffe565b6040805180820190915260018152602360f91b6020820152600384111561090e5760405162461bcd60e51b8152600401610905919061137d565b60405180910390fd5b5060005b81518110156109f15781818151811061092d5761092d61147a565b60200260200101516002600086600381111561094b5761094b611464565b600381111561095c5761095c611464565b600381111561096d5761096d611464565b8152602001908152602001600020600085600181111561098f5761098f611464565b60018111156109a0576109a0611464565b60018111156109b1576109b1611464565b815260200190815260200160002060008360016109ce919061141b565b8152602081019190915260400160002055806109e981611433565b915050610912565b507f5f2024dbf48ff46edaace412301912fcfc14609e677c62eabe60a03f7f1f20f2838383604051610a25939291906113f3565b60405180910390a1505050565b610a3a6110a8565b6000826003811115610a4e57610a4e611464565b6003811115610a5f57610a5f611464565b1480610a8d57506001826003811115610a7a57610a7a611464565b6003811115610a8b57610a8b611464565b145b15610c19576040518060a0016040528060016000856003811115610ab357610ab3611464565b6003811115610ac457610ac4611464565b6003811115610ad557610ad5611464565b815260200190815260200160002060006001815260200190815260200160002054815260200160016000856003811115610b1157610b11611464565b6003811115610b2257610b22611464565b6003811115610b3357610b33611464565b815260200190815260200160002060006002815260200190815260200160002054815260200160016000856003811115610b6f57610b6f611464565b6003811115610b8057610b80611464565b6003811115610b9157610b91611464565b815260200190815260200160002060006003815260200190815260200160002054815260200160016000856003811115610bcd57610bcd611464565b6003811115610bde57610bde611464565b6003811115610bef57610bef611464565b81526020808201929092526040908101600090812060048252835290812054835291015292915050565b6040518060a0016040528060016000856003811115610c3a57610c3a611464565b6003811115610c4b57610c4b611464565b6003811115610c5c57610c5c611464565b815260200190815260200160002060006001815260200190815260200160002054815260200160016000856003811115610c9857610c98611464565b6003811115610ca957610ca9611464565b6003811115610cba57610cba611464565b815260200190815260200160002060006002815260200190815260200160002054815260200160016000856003811115610cf657610cf6611464565b6003811115610d0757610d07611464565b6003811115610d1857610d18611464565b815260200190815260200160002060006003815260200190815260200160002054815260200160016000856003811115610d5457610d54611464565b6003811115610d6557610d65611464565b6003811115610d7657610d76611464565b815260200190815260200160002060006004815260200190815260200160002054815260200160016000856003811115610db257610db2611464565b6003811115610dc357610dc3611464565b6003811115610dd457610dd4611464565b8152602001908152602001600020600060058152602001908152602001600020548152509050919050565b919050565b600060016000846003811115610e1c57610e1c611464565b6003811115610e2d57610e2d611464565b6003811115610e3e57610e3e611464565b8152602001908152602001600020600083815260200190815260200160002054905092915050565b610e6e610ffe565b6001600160a01b038116610ed35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610905565b610edc81611058565b50565b610ee7610ffe565b6040805180820190915260018152602360f91b60208201526003831115610f215760405162461bcd60e51b8152600401610905919061137d565b5060005b8151811015610fc057818181518110610f4057610f4061147a565b602002602001015160016000856003811115610f5e57610f5e611464565b6003811115610f6f57610f6f611464565b6003811115610f8057610f80611464565b81526020019081526020016000206000836001610f9d919061141b565b815260208101919091526040016000205580610fb881611433565b915050610f25565b507f564d31fbb1672b36bb8b65ea0fe590b21cf59a642ed4b434c2759d7eff4328ce8282604051610ff29291906113d2565b60405180910390a15050565b6000546001600160a01b031633146108c15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610905565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040518060a001604052806005906020820280368337509192915050565b600082601f8301126110d757600080fd5b8135602067ffffffffffffffff808311156110f4576110f4611490565b8260051b604051601f19603f8301168101818110848211171561111957611119611490565b6040528481528381019250868401828801850189101561113857600080fd5b600092505b8583101561115b57803584529284019260019290920191840161113d565b50979650505050505050565b803560048110610dff57600080fd5b60006020828403121561118857600080fd5b81356001600160a01b038116811461119f57600080fd5b9392505050565b6000806000606084860312156111bb57600080fd5b6111c484611167565b92506020840135600281106111d857600080fd5b929592945050506040919091013590565b600080604083850312156111fc57600080fd5b61120583611167565b946020939093013593505050565b60006020828403121561122557600080fd5b5035919050565b6000806040838503121561123f57600080fd5b82359150602083013567ffffffffffffffff81111561125d57600080fd5b611269858286016110c6565b9150509250929050565b6000806040838503121561128657600080fd5b50508035926020909101359150565b6000806000606084860312156112aa57600080fd5b8335925060208401359150604084013567ffffffffffffffff8111156112cf57600080fd5b6112db868287016110c6565b9150509250925092565b6000806000606084860312156112fa57600080fd5b505081359360208301359350604090920135919050565b600081518084526020808501945080840160005b8381101561134157815187529582019590820190600101611325565b509495945050505050565b60a08101818360005b6005811015611374578151835260209283019290910190600101611355565b50505092915050565b600060208083528351808285015260005b818110156113aa5785810183015185820160400152820161138e565b818111156113bc576000604083870101525b50601f01601f1916929092016040019392505050565b8281526040602082015260006113eb6040830184611311565b949350505050565b8381528260208201526060604082015260006114126060830184611311565b95945050505050565b6000821982111561142e5761142e61144e565b500190565b60006000198214156114475761144761144e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea164736f6c6343000807000a60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612ae680620000f36000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063715018a6116100f9578063b88d4fde11610097578063c70fbf7411610071578063c70fbf7414610400578063c87b56dd14610413578063e985e9c514610426578063f2fde38b1461046257600080fd5b8063b88d4fde146103c6578063c45a0155146103d9578063c529b32f146103ed57600080fd5b806395d89b41116100d357806395d89b411461035d578063a01e7b2814610365578063a22cb465146103a9578063b503a2b9146103bc57600080fd5b8063715018a61461033157806380002091146103395780638da5cb5b1461034c57600080fd5b806323b872dd1161016657806342842e0e1161014057806342842e0e146102e55780634f6ccce7146102f85780636352211e1461030b57806370a082311461031e57600080fd5b806323b872dd146102975780632f745c59146102aa5780633bebf086146102bd57600080fd5b8063095ea7b3116101a2578063095ea7b314610231578063150b7a02146102465780631794bb3c1461027257806318160ddd1461028557600080fd5b806301ffc9a7146101c957806306fdde03146101f1578063081812fc14610206575b600080fd5b6101dc6101d7366004612693565b610475565b60405190151581526020015b60405180910390f35b6101f96104a0565b6040516101e891906127a0565b6102196102143660046126cd565b610532565b6040516001600160a01b0390911681526020016101e8565b61024461023f366004612636565b610559565b005b61025961025436600461251e565b610674565b6040516001600160e01b031990911681526020016101e8565b6102446102803660046124e2565b610685565b60cb545b6040519081526020016101e8565b6102446102a53660046124e2565b610859565b6102896102b8366004612636565b61088a565b6102d06102cb3660046126e6565b610920565b604080519283526020830191909152016101e8565b6102446102f33660046124e2565b610965565b6102896103063660046126cd565b610980565b6102196103193660046126cd565b610a13565b61028961032c366004612494565b610a73565b610244610af9565b6102446103473660046126e6565b610b0d565b6033546001600160a01b0316610219565b6101f9610bf9565b61039b6103733660046126e6565b6101616020908152600092835260408084209091529082529020805460019091015460ff1682565b6040516101e8929190612950565b6102446103b73660046125fa565b610c08565b61028961015f5481565b6102446103d436600461251e565b610c17565b61016054610219906001600160a01b031681565b6102446103fb366004612660565b610c49565b61024461040e366004612636565b6111b4565b6101f96104213660046126cd565b611555565b6101dc6104343660046124af565b6001600160a01b039182166000908152609c6020908152604080832093909416825291909152205460ff1690565b610244610470366004612494565b6115c9565b60006001600160e01b0319821663780e9d6360e01b148061049a575061049a82611642565b92915050565b6060609780546104af906129dd565b80601f01602080910402602001604051908101604052809291908181526020018280546104db906129dd565b80156105285780601f106104fd57610100808354040283529160200191610528565b820191906000526020600020905b81548152906001019060200180831161050b57829003601f168201915b5050505050905090565b600061053d82611692565b506000908152609b60205260409020546001600160a01b031690565b600061056482610a13565b9050806001600160a01b0316836001600160a01b031614156105d75760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806105f357506105f38133610434565b6106655760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016105ce565b61066f83836116f1565b505050565b630a85bd0160e11b5b949350505050565b600054610100900460ff16158080156106a55750600054600160ff909116105b806106bf5750303b1580156106bf575060005460ff166001145b6107225760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105ce565b6000805460ff191660011790558015610745576000805461ff0019166101001790555b6001600160a01b038416158061076257506001600160a01b038316155b156107805760405163f8b7150760e01b815260040160405180910390fd5b6107d26040518060400160405280600c81526020016b537570657247616c6174696360a01b8152506040518060400160405280600c81526020016b537570657247616c6174696360a01b81525061175f565b6107da611790565b6107e26117b7565b6107eb846115c9565b61015f82905561016080546001600160a01b0319166001600160a01b0385161790558015610853576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b61086333826117e6565b61087f5760405162461bcd60e51b81526004016105ce906127b3565b61066f838383611864565b600061089583610a73565b82106108f75760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016105ce565b506001600160a01b0391909116600090815260c960209081526040808320938352929052205490565b6000828152610161602090815260408083208484529091528120805460018201548392919060ff16600381111561095957610959612a6b565b92509250509250929050565b61066f83838360405180602001604052806000815250610c17565b600061098b60cb5490565b82106109ee5760405162461bcd60e51b815260206004820152602c60248201527f455243373