[ { "inputs": [ { "internalType": "string", "name": "_baseTokenURI", "type": "string" }, { "internalType": "address", "name": "_layerZeroEndpoint", "type": "address" }, { "internalType": "uint256", "name": "_startToken", "type": "uint256" }, { "internalType": "uint256", "name": "_maxMint", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "indexed": false, "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "indexed": false, "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "MessageFailed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseTokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cost", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "endpoint", "outputs": [ { "internalType": "contract ILayerZeroEndpoint", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" }, { "internalType": "bytes", "name": "", "type": "bytes" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "failedMessages", "outputs": [ { "internalType": "uint256", "name": "payloadLength", "type": "uint256" }, { "internalType": "bytes32", "name": "payloadHash", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" } ], "name": "forceResumeReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getEstimatedFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "lzReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "maxMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxPerTx", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "quantity", "type": "uint256" }, { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" } ], "name": "mintWl", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "onLzReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "reserveNFT", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "retryMessage", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_baseTokenURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" }, { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "uint256", "name": "_configType", "type": "uint256" }, { "internalType": "bytes", "name": "_config", "type": "bytes" } ], "name": "setConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" } ], "name": "setReceiveVersion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" } ], "name": "setSendVersion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "bytes", "name": "_trustedSource", "type": "bytes" } ], "name": "setTrustedSource", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_root", "type": "bytes32" } ], "name": "setWhitelistingRoot", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "toggleWhiteSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "traverseChains", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "trustedSourceLookup", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whitelistedMints", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "payable", "type": "function" } ]
60c06040526000600f55600260a0526012805461ffff191660011790553480156200002957600080fd5b5060405162003dd938038062003dd98339810160408190526200004c9162000299565b604080518082018252600d81526c4f6d6e694f6b6179426561727360981b60208083019182528351808501909452600384526227a7a160e91b9084015281519192916200009c91600091620001d6565b508051620000b2906001906020840190620001d6565b505050620000cf620000c96200010860201b60201c565b6200010c565b620000da846200015e565b600b80546001600160a01b0319166001600160a01b03949094169390931790925560105560805250620003ed565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600a546001600160a01b03163314620001bd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b8051620001d290600e906020840190620001d6565b5050565b828054620001e4906200039a565b90600052602060002090601f01602090048101928262000208576000855562000253565b82601f106200022357805160ff191683800117855562000253565b8280016001018555821562000253579182015b828111156200025357825182559160200191906001019062000236565b506200026192915062000265565b5090565b5b8082111562000261576000815560010162000266565b80516001600160a01b03811681146200029457600080fd5b919050565b60008060008060808587031215620002b057600080fd5b84516001600160401b0380821115620002c857600080fd5b818701915087601f830112620002dd57600080fd5b815181811115620002f257620002f2620003d7565b604051601f8201601f19908116603f011681019083821181831017156200031d576200031d620003d7565b81604052828152602093508a848487010111156200033a57600080fd5b600091505b828210156200035e57848201840151818301850152908301906200033f565b82821115620003705760008484830101525b9750620003829150508782016200027c565b60408801516060909801519699909850945050505050565b600181811c90821680620003af57607f821691505b60208210811415620003d157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60805160a0516139a36200043660003960008181610858015281816114330152818161145e01526116990152600081816105bc015281816114ca015261171401526139a36000f3fe6080604052600436106102715760003560e01c80636852a8551161014f578063b88d4fde116100c1578063d547cfb71161007a578063d547cfb714610788578063d73f057e1461079d578063e985e9c5146107bd578063ee89121214610806578063f2fde38b14610826578063f968adbe1461084657600080fd5b8063b88d4fde146106e2578063c7afa66114610702578063c87b56dd14610722578063cbed8b9c14610742578063cf89fa0314610762578063d1deba1f1461077557600080fd5b80638da5cb5b116101135780638da5cb5b146105fe5780638ee749121461061c57806395d89b4114610687578063a0712d681461069c578063a22cb465146106af578063b45b35d7146106cf57600080fd5b80636852a8551461054857806370a0823114610575578063715018a6146105955780637501f741146105aa57806381c986ee146105de57600080fd5b806323b872dd116101e857806342d65a8d116101ac57806342d65a8d146104885780634f6ccce7146104a857806355f804b3146104c85780635cabd14a146104e85780635e280f11146105085780636352211e1461052857600080fd5b806323b872dd146104005780632f745c5914610420578063397be3fd146104405780633ccfd60b1461046057806342842e0e1461046857600080fd5b8063081812fc1161023a578063081812fc1461032f578063095ea7b31461036757806310ddb1371461038757806313faede6146103a757806318160ddd146103cb5780631c37a822146103e057600080fd5b80621d35671461027657806301ffc9a71461029857806302329a29146102cd57806306fdde03146102ed57806307e0db171461030f575b600080fd5b34801561028257600080fd5b5061029661029136600461320d565b61087a565b005b3480156102a457600080fd5b506102b86102b336600461303d565b610a74565b60405190151581526020015b60405180910390f35b3480156102d957600080fd5b506102966102e8366004613009565b610a9f565b3480156102f957600080fd5b50610302610adc565b6040516102c491906134ff565b34801561031b57600080fd5b5061029661032a3660046130bf565b610b6e565b34801561033b57600080fd5b5061034f61034a366004613024565b610bfd565b6040516001600160a01b0390911681526020016102c4565b34801561037357600080fd5b50610296610382366004612fdd565b610c92565b34801561039357600080fd5b506102966103a23660046130bf565b610da8565b3480156103b357600080fd5b506103bd600f5481565b6040519081526020016102c4565b3480156103d757600080fd5b506008546103bd565b3480156103ec57600080fd5b506102966103fb36600461320d565b610e06565b34801561040c57600080fd5b5061029661041b366004612efc565b610e75565b34801561042c57600080fd5b506103bd61043b366004612fdd565b610ea6565b34801561044c57600080fd5b5061029661045b366004613024565b610f3c565b610296610f93565b34801561047457600080fd5b50610296610483366004612efc565b611031565b34801561049457600080fd5b506102966104a33660046130da565b61104c565b3480156104b457600080fd5b506103bd6104c3366004613024565b6110e1565b3480156104d457600080fd5b506102966104e3366004613077565b611174565b3480156104f457600080fd5b50610296610503366004613009565b6111b1565b34801561051457600080fd5b50600b5461034f906001600160a01b031681565b34801561053457600080fd5b5061034f610543366004613024565b6111f5565b34801561055457600080fd5b506103bd610563366004612e78565b60136020526000908152604090205481565b34801561058157600080fd5b506103bd610590366004612e78565b61126c565b3480156105a157600080fd5b506102966112f3565b3480156105b657600080fd5b506103bd7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105ea57600080fd5b506103026105f93660046130bf565b611329565b34801561060a57600080fd5b50600a546001600160a01b031661034f565b34801561062857600080fd5b5061067261063736600461312c565b600c60209081526000938452604080852084518086018401805192815290840195840195909520945292905282529020805460019091015482565b604080519283526020830191909152016102c4565b34801561069357600080fd5b506103026113c3565b6102966106aa366004613024565b6113d2565b3480156106bb57600080fd5b506102966106ca366004612fa8565b611565565b6102966106dd3660046132fe565b611570565b3480156106ee57600080fd5b506102966106fd366004612f3d565b6117c2565b34801561070e57600080fd5b506103bd61071d3660046132e2565b6117f4565b34801561072e57600080fd5b5061030261073d366004613024565b6118d7565b34801561074e57600080fd5b5061029661075d366004613285565b61198e565b6102966107703660046132e2565b611a29565b610296610783366004613182565b611cf2565b34801561079457600080fd5b50610302611e7f565b3480156107a957600080fd5b506102966107b83660046130da565b611e8c565b3480156107c957600080fd5b506102b86107d8366004612ec3565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561081257600080fd5b50610296610821366004613024565b611f69565b34801561083257600080fd5b50610296610841366004612e78565b611f98565b34801561085257600080fd5b506103bd7f000000000000000000000000000000000000000000000000000000000000000081565b600b546001600160a01b0316331461089157600080fd5b61ffff84166000908152600d6020526040902080546108af9061386a565b905083511480156108ee575061ffff84166000908152600d60205260409081902090516108dc9190613421565b60405180910390208380519060200120145b61095c5760405162461bcd60e51b815260206004820152603460248201527f4e6f6e626c6f636b696e6752656365697665723a20696e76616c696420736f756044820152731c98d9481cd95b991a5b99c818dbdb9d1c9858dd60621b60648201526084015b60405180910390fd5b604051630e1bd41160e11b81523090631c37a822906109859087908790879087906004016136a4565b600060405180830381600087803b15801561099f57600080fd5b505af19250505080156109b0575060015b610a6e576040518060400160405280825181526020018280519060200120815250600c60008661ffff1661ffff168152602001908152602001600020846040516109fa9190613405565b9081526040805191829003602090810183206001600160401b038716600090815290825291909120835181559201516001909201919091557fe6f254030bcb01ffd20558175c13fcaed6d1520be7becee4c961b65f79243b0d90610a659086908690869086906136a4565b60405180910390a15b50505050565b60006001600160e01b0319821663780e9d6360e01b1480610a995750610a9982612030565b92915050565b600a546001600160a01b03163314610ac95760405162461bcd60e51b815260040161095390613564565b6012805460ff1916911515919091179055565b606060008054610aeb9061386a565b80601f0160208091040260200160405190810160405280929190818152602001828054610b179061386a565b8015610b645780601f10610b3957610100808354040283529160200191610b64565b820191906000526020600020905b815481529060010190602001808311610b4757829003601f168201915b5050505050905090565b600a546001600160a01b03163314610b985760405162461bcd60e51b815260040161095390613564565b600b546040516307e0db1760e01b815261ffff831660048201526001600160a01b03909116906307e0db17906024015b600060405180830381600087803b158015610be257600080fd5b505af1158015610bf6573d6000803e3d6000fd5b5050505050565b6000818152600260205260408120546001600160a01b0316610c765760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610953565b506000908152600460205260409020546001600160a01b031690565b6000610c9d826111f5565b9050806001600160a01b0316836001600160a01b03161415610d0b5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610953565b336001600160a01b0382161480610d275750610d2781336107d8565b610d995760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610953565b610da38383612080565b505050565b600a546001600160a01b03163314610dd25760405162461bcd60e51b815260040161095390613564565b600b546040516310ddb13760e01b815261ffff831660048201526001600160a01b03909116906310ddb13790602401610bc8565b333014610e695760405162461bcd60e51b815260206004820152602b60248201527f4e6f6e626c6f636b696e6752656365697665723a2063616c6c6572206d75737460448201526a10313290213934b233b29760a91b6064820152608401610953565b610a6e848484846120ee565b610e7f338261211b565b610e9b5760405162461bcd60e51b815260040161095390613599565b610da3838383612212565b6000610eb18361126c565b8210610f135760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610953565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600a546001600160a01b03163314610f665760405162461bcd60e51b815260040161095390613564565b60005b81811015610f8f576010805460010190819055610f879033906123b9565b600101610f69565b5050565b600a546001600160a01b03163314610fbd5760405162461bcd60e51b815260040161095390613564565b6000610fd1600a546001600160a01b031690565b6001600160a01b03164760405160006040518083038185875af1925050503d806000811461101b576040519150601f19603f3d011682016040523d82523d6000602084013e611020565b606091505b505090508061102e57600080fd5b50565b610da3838383604051806020016040528060008152506117c2565b600a546001600160a01b031633146110765760405162461bcd60e51b815260040161095390613564565b600b546040516342d65a8d60e01b81526001600160a01b03909116906342d65a8d906110aa9086908690869060040161363e565b600060405180830381600087803b1580156110c457600080fd5b505af11580156110d8573d6000803e3d6000fd5b50505050505050565b60006110ec60085490565b821061114f5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610953565b6008828154811061116257611162613916565b90600052602060002001549050919050565b600a546001600160a01b0316331461119e5760405162461bcd60e51b815260040161095390613564565b8051610f8f90600e906020840190612c50565b600a546001600160a01b031633146111db5760405162461bcd60e51b815260040161095390613564565b601280549115156101000261ff0019909216919091179055565b6000818152600260205260408120546001600160a01b031680610a995760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610953565b60006001600160a01b0382166112d75760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610953565b506001600160a01b031660009081526003602052604090205490565b600a546001600160a01b0316331461131d5760405162461bcd60e51b815260040161095390613564565b61132760006123d3565b565b600d60205260009081526040902080546113429061386a565b80601f016020809104026020016040519081016040528092919081815260200182805461136e9061386a565b80156113bb5780601f10611390576101008083540402835291602001916113bb565b820191906000526020600020905b81548152906001019060200180831161139e57829003601f168201915b505050505081565b606060018054610aeb9061386a565b60125460ff16156113e257600080fd5b601254610100900460ff16156114315760405162461bcd60e51b815260206004820152601460248201527343414e545f4d494e545f4f4e5f574c5f53414c4560601b6044820152606401610953565b7f0000000000000000000000000000000000000000000000000000000000000000811115801561148857507f00000000000000000000000000000000000000000000000000000000000000006114863361126c565b105b6114c85760405162461bcd60e51b815260206004820152601160248201527013d3931657ccd7d4115497d5d053131155607a1b6044820152606401610953565b7f0000000000000000000000000000000000000000000000000000000000000000816010546114f791906137fb565b111561153c5760405162461bcd60e51b815260206004820152601460248201527326a0ac2fa9aaa828262cafa327a92fa1a420a4a760611b6044820152606401610953565b60005b81811015610f8f57601080546001019081905561155d9033906123b9565b60010161153f565b610f8f338383612425565b60125460ff161561158057600080fd5b601254610100900460ff166115d75760405162461bcd60e51b815260206004820152601860248201527f57686974656c697374696e67206e6f7420656e61626c656400000000000000006044820152606401610953565b604080513360601b6bffffffffffffffffffffffff1916602080830191909152825160148184030181526034909201909252805191012061164b908383808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506124f492505050565b6116875760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b210383937b7b360991b6044820152606401610953565b336000908152601360205260409020547f0000000000000000000000000000000000000000000000000000000000000000906116c49085906137fb565b11156117125760405162461bcd60e51b815260206004820152601760248201527f45786365656473204d6178204d696e7420616d6f756e740000000000000000006044820152606401610953565b7f00000000000000000000000000000000000000000000000000000000000000008360105461174191906137fb565b11156117865760405162461bcd60e51b815260206004820152601460248201527326a0ac2fa9aaa828262cafa327a92fa1a420a4a760611b6044820152606401610953565b3360009081526013602052604081208054850190555b83811015610a6e5760108054600101908190556117ba9033906123b9565b60010161179c565b6117cc338361211b565b6117e85760405162461bcd60e51b815260040161095390613599565b610a6e8484848461250a565b60408051336020820152808201839052815180820383018152606082018352600160f01b60808301526206ddd060828084018290528451808503909101815260a2840194859052600b5463040a7bb160e41b909552600094929360019386916001600160a01b03909116906340a7bb109061187b908b9030908a908790899060a6016135ea565b604080518083038186803b15801561189257600080fd5b505afa1580156118a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ca919061337c565b5098975050505050505050565b6000818152600260205260409020546060906001600160a01b03166119565760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610953565b61195e61253d565b6119678361254c565b604051602001611978929190613493565b6040516020818303038152906040529050919050565b600a546001600160a01b031633146119b85760405162461bcd60e51b815260040161095390613564565b600b546040516332fb62e760e21b81526001600160a01b039091169063cbed8b9c906119f090889088908890889088906004016137cd565b600060405180830381600087803b158015611a0a57600080fd5b505af1158015611a1e573d6000803e3d6000fd5b505050505050505050565b611a32816111f5565b6001600160a01b0316336001600160a01b031614611aa45760405162461bcd60e51b815260206004820152602960248201527f4d6573736167652073656e646572206d757374206f776e20746865204f6d6e6960448201526831b430b4b727232a1760b91b6064820152608401610953565b61ffff82166000908152600d602052604090208054611ac29061386a565b15159050611b255760405162461bcd60e51b815260206004820152602a60248201527f5468697320636861696e206973206e6f742061207472757374656420736f757260448201526931b29039b7bab931b29760b11b6064820152608401610953565b611b2e81612649565b60408051336020820152808201839052815180820383018152606082018352600160f01b60808301526206ddd060828084018290528451808503909101815260a2840194859052600b5463040a7bb160e41b90955291936001939192916000916001600160a01b0316906340a7bb1090611bb4908a9030908a908790899060a6016135ea565b604080518083038186803b158015611bcb57600080fd5b505afa158015611bdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c03919061337c565b50905080341015611c6c5760405162461bcd60e51b815260206004820152602d60248201527f4e6f7420656e6f7567682067617320746f20636f7665722063726f737320636860448201526c30b4b7103a3930b739b332b91760991b6064820152608401610953565b600b5461ffff88166000908152600d6020526040808220905162c5803160e81b81526001600160a01b039093169263c5803100923492611cb7928d928c913391908b906004016136ed565b6000604051808303818588803b158015611cd057600080fd5b505af1158015611ce4573d6000803e3d6000fd5b505050505050505050505050565b61ffff85166000908152600c60205260408082209051611d13908790613405565b90815260408051602092819003830190206001600160401b0387166000908152925290206001810154909150611d9a5760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e6752656365697665723a206e6f2073746f726564206d60448201526565737361676560d01b6064820152608401610953565b805482148015611dc4575080600101548383604051611dba9291906133f5565b6040518091039020145b611e105760405162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f3a20696e76616c6964207061796c6f61640000000000006044820152606401610953565b60008082556001820155604051630e1bd41160e11b81523090631c37a82290611e459089908990899089908990600401613665565b600060405180830381600087803b158015611e5f57600080fd5b505af1158015611e73573d6000803e3d6000fd5b50505050505050505050565b600e80546113429061386a565b600a546001600160a01b03163314611eb65760405162461bcd60e51b815260040161095390613564565b61ffff83166000908152600d602052604090208054611ed49061386a565b159050611f4b576040805162461bcd60e51b81526020600482015260248101919091527f546865207472757374656420736f75726365206164647265737320686173206160448201527f6c7265616479206265656e2073657420666f722074686520636861696e4964216064820152608401610953565b61ffff83166000908152600d60205260409020610a6e908383612cd4565b600a546001600160a01b03163314611f935760405162461bcd60e51b815260040161095390613564565b601155565b600a546001600160a01b03163314611fc25760405162461bcd60e51b815260040161095390613564565b6001600160a01b0381166120275760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610953565b61102e816123d3565b60006001600160e01b031982166380ac58cd60e01b148061206157506001600160e01b03198216635b5e139f60e01b145b80610a9957506301ffc9a760e01b6001600160e01b0319831614610a99565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906120b5826111f5565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080828060200190518101906121059190612e95565b9150915061211382826123b9565b505050505050565b6000818152600260205260408120546001600160a01b03166121945760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610953565b600061219f836111f5565b9050806001600160a01b0316846001600160a01b031614806121e657506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b8061220a5750836001600160a01b03166121ff84610bfd565b6001600160a01b0316145b949350505050565b826001600160a01b0316612225826111f5565b6001600160a01b0316146122895760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610953565b6001600160a01b0382166122eb5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610953565b6122f68383836126f0565b612301600082612080565b6001600160a01b038316600090815260036020526040812080546001929061232a908490613827565b90915550506001600160a01b03821660009081526003602052604081208054600192906123589084906137fb565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610f8f8282604051806020016040528060008152506127a8565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b031614156124875760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610953565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b600061250382601154856127db565b9392505050565b612515848484612212565b612521848484846127f1565b610a6e5760405162461bcd60e51b815260040161095390613512565b6060600e8054610aeb9061386a565b6060816125705750506040805180820190915260018152600360fc1b602082015290565b8160005b811561259a5780612584816138a5565b91506125939050600a83613813565b9150612574565b6000816001600160401b038111156125b4576125b461392c565b6040519080825280601f01601f1916602001820160405280156125de576020820181803683370190505b5090505b841561220a576125f3600183613827565b9150612600600a866138c0565b61260b9060306137fb565b60f81b81838151811061262057612620613916565b60200101906001600160f81b031916908160001a905350612642600a86613813565b94506125e2565b6000612654826111f5565b9050612662816000846126f0565b61266d600083612080565b6001600160a01b0381166000908152600360205260408120805460019290612696908490613827565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b03831661274b5761274681600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b61276e565b816001600160a01b0316836001600160a01b03161461276e5761276e83826128fe565b6001600160a01b03821661278557610da38161299b565b826001600160a01b0316826001600160a01b031614610da357610da38282612a4a565b6127b28383612a8e565b6127bf60008484846127f1565b610da35760405162461bcd60e51b815260040161095390613512565b6000826127e88584612bdc565b14949350505050565b60006001600160a01b0384163b156128f357604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906128359033908990889088906004016134c2565b602060405180830381600087803b15801561284f57600080fd5b505af192505050801561287f575060408051601f3d908101601f1916820190925261287c9181019061305a565b60015b6128d9573d8080156128ad576040519150601f19603f3d011682016040523d82523d6000602084013e6128b2565b606091505b5080516128d15760405162461bcd60e51b815260040161095390613512565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061220a565b506001949350505050565b6000600161290b8461126c565b6129159190613827565b600083815260076020526040902054909150808214612968576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906129ad90600190613827565b600083815260096020526040812054600880549394509092849081106129d5576129d5613916565b9060005260206000200154905080600883815481106129f6576129f6613916565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480612a2e57612a2e613900565b6001900381819060005260206000200160009055905550505050565b6000612a558361126c565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160a01b038216612ae45760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610953565b6000818152600260205260409020546001600160a01b031615612b495760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610953565b612b55600083836126f0565b6001600160a01b0382166000908152600360205260408120805460019290612b7e9084906137fb565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600081815b8451811015612c48576000858281518110612bfe57612bfe613916565b60200260200101519050808311612c245760008381526020829052604090209250612c35565b600081815260208490526040902092505b5080612c40816138a5565b915050612be1565b509392505050565b828054612c5c9061386a565b90600052602060002090601f016020900481019282612c7e5760008555612cc4565b82601f10612c9757805160ff1916838001178555612cc4565b82800160010185558215612cc4579182015b82811115612cc4578251825591602001919060010190612ca9565b50612cd0929150612d48565b5090565b828054612ce09061386a565b90600052602060002090601f016020900481019282612d025760008555612cc4565b82601f10612d1b5782800160ff19823516178555612cc4565b82800160010185558215612cc4579182015b82811115612cc4578235825591602001919060010190612d2d565b5b80821115612cd05760008155600101612d49565b60006001600160401b0380841115612d7757612d7761392c565b604051601f8501601f19908116603f01168101908282118183101715612d9f57612d9f61392c565b81604052809350858152868686011115612db857600080fd5b858560208301376000602087830101525050509392505050565b80358015158114612de257600080fd5b919050565b60008083601f840112612df957600080fd5b5081356001600160401b03811115612e1057600080fd5b602083019150836020828501011115612e2857600080fd5b9250929050565b600082601f830112612e4057600080fd5b61250383833560208501612d5d565b803561ffff81168114612de257600080fd5b80356001600160401b0381168114612de257600080fd5b600060208284031215612e8a57600080fd5b813561250381613942565b60008060408385031215612ea857600080fd5b8251612eb381613942565b6020939093015192949293505050565b60008060408385031215612ed657600080fd5b8235612ee181613942565b91506020830135612ef181613942565b809150509250929050565b600080600060608486031215612f1157600080fd5b8335612f1c81613942565b92506020840135612f2c81613942565b929592945050506040919091013590565b60008060008060808587031215612f5357600080fd5b8435612f5e81613942565b93506020850135612f6e81613942565b92506040850135915060608501356001600160401b03811115612f9057600080fd5b612f9c87828801612e2f565b91505092959194509250565b60008060408385031215612fbb57600080fd5b8235612fc681613942565b9150612fd460208401612dd2565b90509250929050565b60008060408385031215612ff057600080fd5b8235612ffb81613942565b946020939093013593505050565b60006020828403121561301b57600080fd5b61250382612dd2565b60006020828403121561303657600080fd5b5035919050565b60006020828403121561304f57600080fd5b813561250381613957565b60006020828403121561306c57600080fd5b815161250381613957565b60006020828403121561308957600080fd5b81356001600160401b0381111561309f57600080fd5b8201601f810184136130b057600080fd5b61220a84823560208401612d5d565b6000602082840312156130d157600080fd5b61250382612e4f565b6000806000604084860312156130ef57600080fd5b6130f884612e4f565b925060208401356001600160401b0381111561311357600080fd5b61311f86828701612de7565b9497909650939450505050565b60008060006060848603121561314157600080fd5b61314a84612e4f565b925060208401356001600160401b0381111561316557600080fd5b61317186828701612e2f565b925050604084013590509250925092565b60008060008060006080868803121561319a57600080fd5b6131a386612e4f565b945060208601356001600160401b03808211156131bf57600080fd5b6131cb89838a01612e2f565b95506131d960408901612e61565b945060608801359150808211156131ef57600080fd5b506131fc88828901612de7565b969995985093965092949392505050565b6000806000806080858703121561322357600080fd5b61322c85612e4f565b935060208501356001600160401b038082111561324857600080fd5b61325488838901612e2f565b945061326260408801612e61565b9350606087013591508082111561327857600080fd5b50612f9c87828801612e2f565b60008060008060006080868803121561329d57600080fd5b6132a686612e4f565b94506132b460208701612e4f565b93506040860135925060608601356001600160401b038111156132d657600080fd5b6131fc88828901612de7565b600080604083850312156132f557600080fd5b612ffb83612e4f565b60008060006040848603121561331357600080fd5b8335925060208401356001600160401b038082111561333157600080fd5b818601915086601f83011261334557600080fd5b81358181111561335457600080fd5b8760208260051b850101111561336957600080fd5b6020830194508093505050509250925092565b6000806040838503121561338f57600080fd5b505080516020909101519092909150565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600081518084526133e181602086016020860161383e565b601f01601f19169290920160200192915050565b8183823760009101908152919050565b6000825161341781846020870161383e565b9190910192915050565b600080835461342f8161386a565b60018281168015613447576001811461345857613487565b60ff19841687528287019450613487565b8760005260208060002060005b8581101561347e5781548a820152908401908201613465565b50505082870194505b50929695505050505050565b600083516134a581846020880161383e565b8351908301906134b981836020880161383e565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906134f5908301846133c9565b9695505050505050565b60208152600061250360208301846133c9565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b61ffff861681526001600160a01b038516602082015260a060408201819052600090613618908301866133c9565b8415156060840152828103608084015261363281856133c9565b98975050505050505050565b61ffff8416815260406020820152600061365c6040830184866133a0565b95945050505050565b61ffff8616815260806020820152600061368260808301876133c9565b6001600160401b038616604084015282810360608401526136328185876133a0565b61ffff851681526080602082015260006136c160808301866133c9565b6001600160401b038516604084015282810360608401526136e281856133c9565b979650505050505050565b61ffff871681526000602060c0818401526000885461370b8161386a565b8060c087015260e060018084166000811461372d576001811461374257613770565b60ff1985168984015261010089019550613770565b8d6000528660002060005b858110156137685781548b820186015290830190880161374d565b8a0184019650505b5050505050838103604085015261378781896133c9565b91505061379f60608401876001600160a01b03169052565b6001600160a01b038516608084015282810360a08401526137c081856133c9565b9998505050505050505050565b600061ffff8088168352808716602084015250846040830152608060608301526136e26080830184866133a0565b6000821982111561380e5761380e6138d4565b500190565b600082613822576138226138ea565b500490565b600082821015613839576138396138d4565b500390565b60005b83811015613859578181015183820152602001613841565b83811115610a6e5750506000910152565b600181811c9082168061387e57607f821691505b6020821081141561389f57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156138b9576138b96138d4565b5060010190565b6000826138cf576138cf6138ea565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461102e57600080fd5b6001600160e01b03198116811461102e57600080fdfea26469706673582212205cf04329440bdbca491e920969d0d6c922884be1bd0aa0fd8f8c23ff11688bfe64736f6c6343000807003300000000000000000000000000000000000000000000000000000000000000800000000000000000000000003c2269811836af69497e5f486a85d7316753cf6200000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000003e9000000000000000000000000000000000000000000000000000000000000005168747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d566f65383966483178434143353151356f526232564c6d566738566e6359553337727637544c7843755451442f000000000000000000000000000000