[ { "inputs": [ { "internalType": "address", "name": "_treasury", "type": "address" } ], "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": "string", "name": "baseURI", "type": "string" } ], "name": "BaseURIUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "contractURI", "type": "string" } ], "name": "ContractURIUpdated", "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": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Reflection", "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": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "name": "claimRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "contractURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "currentReflection", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "flipPartnerPause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "flipPause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "freeRollMint", "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": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "name": "getRewards", "outputs": [ { "internalType": "uint256", "name": "rewards", "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": "uint256", "name": "", "type": "uint256" } ], "name": "lastReflections", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "mintFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "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": [], "name": "partnerMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "partnerMintCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "partnerMinted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "partnerPaused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "partnerTokenAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "raiseReflection", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "reflectionAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "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": "_baseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_contractURI", "type": "string" } ], "name": "setContractURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_mintFee", "type": "uint256" } ], "name": "setMintFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setPartnerTokenMinimum", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_reflectionAmount", "type": "uint256" } ], "name": "setReflectionAmount", "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": "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": "totalReflection", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [], "name": "treasury", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
6080604052671158e460913d0000600e55600a600f556105dc6105ef5560006105f08190556105f180546001600160b01b0319167590842eb834cfd2a1db0b1512b254a18e4d39621501011790556501a3185c50006105f2556105f35560326105f4553480156200006f57600080fd5b5060405162002e1838038062002e1883398101604081905262000092916200023d565b604080518082018252601181527020ab20ac21a0aa29a9b2b1b7b73223b2b760791b60208083019182528351808501909452600584526421a0aa299960d91b908401528151919291620000e89160009162000197565b508051620000fe90600190602084019062000197565b5050506200011b620001156200014160201b60201c565b62000145565b600d80546001600160a01b0319166001600160a01b0392909216919091179055620002ac565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620001a5906200026f565b90600052602060002090601f016020900481019282620001c9576000855562000214565b82601f10620001e457805160ff191683800117855562000214565b8280016001018555821562000214579182015b8281111562000214578251825591602001919060010190620001f7565b506200022292915062000226565b5090565b5b8082111562000222576000815560010162000227565b6000602082840312156200025057600080fd5b81516001600160a01b03811681146200026857600080fd5b9392505050565b600181811c908216806200028457607f821691505b60208210811415620002a657634e487b7160e01b600052602260045260246000fd5b50919050565b612b5c80620002bc6000396000f3fe6080604052600436106102725760003560e01c80636e1e027c1161014f578063abc84bf0116100c1578063d63603131161007a578063d63603131461070a578063e8a3d48514610731578063e985e9c514610746578063eddd0d9c1461078f578063f2fde38b146107af578063f4901772146107cf57600080fd5b8063abc84bf014610655578063b88d4fde14610675578063b936063714610695578063bac932031461069d578063c0c26abc146106ca578063c87b56dd146106ea57600080fd5b80638f72d018116101135780638f72d0181461059c578063938e3d7b146105bc57806395d89b41146105dc5780639d163792146105f1578063a0712d6814610622578063a22cb4651461063557600080fd5b80636e1e027c1461051457806370a0823114610529578063715018a6146105495780637460887d1461055e5780638da5cb5b1461057e57600080fd5b806342842e0e116101e85780635eac6239116101ac5780635eac6239146104725780635f7d73681461049257806361d027b3146104a85780636352211e146104c85780636c0360eb146104e85780636cef4670146104fd57600080fd5b806342842e0e146103e157806345571de5146104015780634f6ccce71461041757806355f804b3146104375780635c975abb1461045757600080fd5b806318160ddd1161023a57806318160ddd1461034c578063228497201461036157806323b872dd146103775780632f745c5914610397578063385df649146103b75780633fb57904146103cc57600080fd5b806301ffc9a71461027757806306fdde03146102ac578063081812fc146102ce578063095ea7b31461030657806313966db514610328575b600080fd5b34801561028357600080fd5b5061029761029236600461266d565b6107ef565b60405190151581526020015b60405180910390f35b3480156102b857600080fd5b506102c161081a565b6040516102a39190612859565b3480156102da57600080fd5b506102ee6102e93660046126f0565b6108ac565b6040516001600160a01b0390911681526020016102a3565b34801561031257600080fd5b50610326610321366004612596565b610946565b005b34801561033457600080fd5b5061033e600e5481565b6040519081526020016102a3565b34801561035857600080fd5b5060085461033e565b34801561036d57600080fd5b5061033e60115481565b34801561038357600080fd5b506103266103923660046124a2565b610a5c565b3480156103a357600080fd5b5061033e6103b2366004612596565b610a8d565b3480156103c357600080fd5b50610326610b23565b3480156103d857600080fd5b50610326610b62565b3480156103ed57600080fd5b506103266103fc3660046124a2565b610baa565b34801561040d57600080fd5b5061033e60105481565b34801561042357600080fd5b5061033e6104323660046126f0565b610bc5565b34801561044357600080fd5b506103266104523660046126a7565b610c58565b34801561046357600080fd5b506105f1546102979060ff1681565b34801561047e57600080fd5b5061032661048d3660046125c0565b610cd0565b34801561049e57600080fd5b5061033e600f5481565b3480156104b457600080fd5b50600d546102ee906001600160a01b031681565b3480156104d457600080fd5b506102ee6104e33660046126f0565b610dcf565b3480156104f457600080fd5b506102c1610e46565b34801561050957600080fd5b5061033e6105f35481565b34801561052057600080fd5b50610326610e55565b34801561053557600080fd5b5061033e61054436600461244d565b611080565b34801561055557600080fd5b50610326611107565b34801561056a57600080fd5b506103266105793660046126f0565b61113b565b34801561058a57600080fd5b50600a546001600160a01b03166102ee565b3480156105a857600080fd5b506103266105b73660046126f0565b611198565b3480156105c857600080fd5b506103266105d73660046126a7565b611245565b3480156105e857600080fd5b506102c16112b2565b3480156105fd57600080fd5b5061029761060c36600461244d565b6105f56020526000908152604090205460ff1681565b6103266106303660046126f0565b6112c1565b34801561064157600080fd5b5061032661065036600461255a565b6113fb565b34801561066157600080fd5b506105f15461029790610100900460ff1681565b34801561068157600080fd5b506103266106903660046124de565b6114c0565b6103266114f8565b3480156106a957600080fd5b5061033e6106b83660046126f0565b60126020526000908152604090205481565b3480156106d657600080fd5b506103266106e53660046126f0565b611501565b3480156106f657600080fd5b506102c16107053660046126f0565b611565565b34801561071657600080fd5b506105f1546102ee906201000090046001600160a01b031681565b34801561073d57600080fd5b506102c1611599565b34801561075257600080fd5b5061029761076136600461246f565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561079b57600080fd5b506103266107aa3660046126f0565b6115a8565b3480156107bb57600080fd5b506103266107ca36600461244d565b611605565b3480156107db57600080fd5b5061033e6107ea3660046125c0565b61169d565b60006001600160e01b0319821663780e9d6360e01b1480610814575061081482611708565b92915050565b60606000805461082990612a3e565b80601f016020809104026020016040519081016040528092919081815260200182805461085590612a3e565b80156108a25780601f10610877576101008083540402835291602001916108a2565b820191906000526020600020905b81548152906001019060200180831161088557829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b031661092a5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b600061095182610dcf565b9050806001600160a01b0316836001600160a01b031614156109bf5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610921565b336001600160a01b03821614806109db57506109db8133610761565b610a4d5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610921565b610a578383611758565b505050565b610a6633826117c6565b610a825760405162461bcd60e51b815260040161092190612917565b610a578383836118bd565b6000610a9883611080565b8210610afa5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610921565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600a546001600160a01b03163314610b4d5760405162461bcd60e51b8152600401610921906128e2565b6105f1805460ff19811660ff90911615179055565b600a546001600160a01b03163314610b8c5760405162461bcd60e51b8152600401610921906128e2565b6105f1805461ff001981166101009182900460ff1615909102179055565b610a57838383604051806020016040528060008152506114c0565b6000610bd060085490565b8210610c335760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610921565b60088281548110610c4657610c46612ae4565b90600052602060002001549050919050565b600a546001600160a01b03163314610c825760405162461bcd60e51b8152600401610921906128e2565b8051610c9590600b906020840190612340565b507f6741b2fc379fad678116fe3d4d4b9a1a184ab53ba36b86ad0fa66340b1ab41ad81604051610cc59190612859565b60405180910390a150565b6000610cdb8261169d565b905060005b8251811015610da157336001600160a01b0316610d15848381518110610d0857610d08612ae4565b6020026020010151610dcf565b6001600160a01b031614610d5b5760405162461bcd60e51b815260206004820152600d60248201526c13dddb995c88125b9d985b1a59609a1b6044820152606401610921565b60105460126000858481518110610d7457610d74612ae4565b60200260200101518152602001908152602001600020819055508080610d9990612a73565b915050610ce0565b50604051339082156108fc029083906000818181858888f19350505050158015610a57573d6000803e3d6000fd5b6000818152600260205260408120546001600160a01b0316806108145760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610921565b6060600b805461082990612a3e565b6105f154610100900460ff1615610ea75760405162461bcd60e51b815260206004820152601660248201527514185c9d1b995c881b5a5b9d1a5b99c81c185d5cd95960521b6044820152606401610921565b3360009081526105f5602052604090205460ff1615610f085760405162461bcd60e51b815260206004820181905260248201527f596f7527766520616c7265616479206d696e74656420612066726565206361746044820152606401610921565b6105f2546105f1546040516370a0823160e01b8152336004820152620100009091046001600160a01b0316906370a082319060240160206040518083038186803b158015610f5557600080fd5b505afa158015610f69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8d9190612709565b1015610fef5760405162461bcd60e51b815260206004820152602b60248201527f596f7520646f6e2774206861766520656e6f756768206f66207468652072657160448201526a3ab4b932b2103a37b5b2b760a91b6064820152608401610921565b6105f4546105f354106110445760405162461bcd60e51b815260206004820152601e60248201527f506172746e6572206d696e7420616c6c6f6374696f6e207265616368656400006044820152606401610921565b6105f354611053906001612999565b6105f3553360009081526105f560205260409020805460ff1916600190811790915561107e90611a68565b565b60006001600160a01b0382166110eb5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610921565b506001600160a01b031660009081526003602052604090205490565b600a546001600160a01b031633146111315760405162461bcd60e51b8152600401610921906128e2565b61107e6000611b19565b600a546001600160a01b031633146111655760405162461bcd60e51b8152600401610921906128e2565b6105f15460ff166111885760405162461bcd60e51b8152600401610921906128be565b600f556105f1805460ff19169055565b600a546001600160a01b031633146111c25760405162461bcd60e51b8152600401610921906128e2565b61014d6105f05411156112265760405162461bcd60e51b815260206004820152602660248201527f416c726561647920676976656e206d6178206e756d626572206f66206672656560448201526520726f6c6c7360d01b6064820152608401610921565b806105f0546112359190612999565b6105f05561124281611a68565b50565b600a546001600160a01b0316331461126f5760405162461bcd60e51b8152600401610921906128e2565b805161128290600c906020840190612340565b507f905d981207a7d0b6c62cc46ab0be2a076d0298e4a86d0ab79882dbd01ac3737881604051610cc59190612859565b60606001805461082990612a3e565b6105f15460ff16156113065760405162461bcd60e51b815260206004820152600e60248201526d135a5b9d1a5b99c814185d5cd95960921b6044820152606401610921565b6105dc8161131360085490565b61131d9190612999565b11156113605760405162461bcd60e51b815260206004820152601260248201527113585e0814dd5c1c1b1e4814995858da195960721b6044820152606401610921565b60148111156113a25760405162461bcd60e51b815260206004820152600e60248201526d105b5bdd5b9d08125b9d985b1a5960921b6044820152606401610921565b80600e546113b091906129c5565b3410156113f25760405162461bcd60e51b815260206004820152601060248201526f11995948125b9cdd59999a58da595b9d60821b6044820152606401610921565b61124281611a68565b6001600160a01b0382163314156114545760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610921565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6114ca33836117c6565b6114e65760405162461bcd60e51b815260040161092190612917565b6114f284848484611b6b565b50505050565b61107e34611b9e565b600a546001600160a01b0316331461152b5760405162461bcd60e51b8152600401610921906128e2565b6105f154610100900460ff166115535760405162461bcd60e51b8152600401610921906128be565b6105f2556105f1805461ff0019169055565b6060600b61157283611c02565b60405160200161158392919061276a565b6040516020818303038152906040529050919050565b6060600c805461082990612a3e565b600a546001600160a01b031633146115d25760405162461bcd60e51b8152600401610921906128e2565b6105f15460ff166115f55760405162461bcd60e51b8152600401610921906128be565b600e556105f1805460ff19169055565b600a546001600160a01b0316331461162f5760405162461bcd60e51b8152600401610921906128e2565b6001600160a01b0381166116945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610921565b61124281611b19565b6000805b825181101561170257601260008483815181106116c0576116c0612ae4565b60200260200101518152602001908152602001600020546010546116e491906129e4565b6116ee9083612999565b9150806116fa81612a73565b9150506116a1565b50919050565b60006001600160e01b031982166380ac58cd60e01b148061173957506001600160e01b03198216635b5e139f60e01b145b8061081457506301ffc9a760e01b6001600160e01b0319831614610814565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061178d82610dcf565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b031661183f5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610921565b600061184a83610dcf565b9050806001600160a01b0316846001600160a01b031614806118855750836001600160a01b031661187a846108ac565b6001600160a01b0316145b806118b557506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166118d082610dcf565b6001600160a01b0316146119385760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610921565b6001600160a01b03821661199a5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610921565b6119a5838383611d00565b6119b0600082611758565b6001600160a01b03831660009081526003602052604081208054600192906119d99084906129e4565b90915550506001600160a01b0382166000908152600360205260408120805460019290611a07908490612999565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60005b81811015611ab0576000611a7f8383611db8565b9050611a8b3382611e49565b6010546000918252601260205260409091205580611aa881612a73565b915050611a6b565b5060006064600f5434611ac391906129c5565b611acd91906129b1565b9050611ad881611b9e565b600d546001600160a01b03166108fc611af183346129e4565b6040518115909202916000818181858888f19350505050158015610a57573d6000803e3d6000fd5b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611b768484846118bd565b611b8284848484611e67565b6114f25760405162461bcd60e51b81526004016109219061286c565b80601154611bac9190612999565b601155600854611bbc90826129b1565b60106000828254611bcd9190612999565b90915550506040518181527fbadc96f0b899bb720d18a25ea9fae343d6095c7f760d4a54ee0d65fe1c66ccd190602001610cc5565b606081611c265750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611c505780611c3a81612a73565b9150611c499050600a836129b1565b9150611c2a565b60008167ffffffffffffffff811115611c6b57611c6b612afa565b6040519080825280601f01601f191660200182016040528015611c95576020820181803683370190505b5090505b84156118b557611caa6001836129e4565b9150611cb7600a86612a8e565b611cc2906030612999565b60f81b818381518110611cd757611cd7612ae4565b60200101906001600160f81b031916908160001a905350611cf9600a866129b1565b9450611c99565b6001600160a01b038316611d5b57611d5681600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611d7e565b816001600160a01b0316836001600160a01b031614611d7e57611d7e8382611f74565b6001600160a01b038216611d9557610a5781612011565b826001600160a01b0316826001600160a01b031614610a5757610a5782826120c0565b600080333a4342611dca6001836129e4565b604080516001600160a01b039096166020870152850193909352606084019190915260808301524060a082015260c0810185905260e08101849052610100016040516020818303038152906040528051906020012060001c905060006105ef5482611e359190612a8e565b9050611e4081612104565b95945050505050565b611e638282604051806020016040528060008152506121bf565b5050565b60006001600160a01b0384163b15611f6957604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611eab90339089908890889060040161281c565b602060405180830381600087803b158015611ec557600080fd5b505af1925050508015611ef5575060408051601f3d908101601f19168201909252611ef29181019061268a565b60015b611f4f573d808015611f23576040519150601f19603f3d011682016040523d82523d6000602084013e611f28565b606091505b508051611f475760405162461bcd60e51b81526004016109219061286c565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506118b5565b506001949350505050565b60006001611f8184611080565b611f8b91906129e4565b600083815260076020526040902054909150808214611fde576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090612023906001906129e4565b6000838152600960205260408120546008805493945090928490811061204b5761204b612ae4565b90600052602060002001549050806008838154811061206c5761206c612ae4565b60009182526020808320909101929092558281526009909152604080822084905585825281205560088054806120a4576120a4612ace565b6001900381819060005260206000200160009055905550505050565b60006120cb83611080565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6000806013836105dc811061211b5761211b612ae4565b0154905060008161212d575082612130565b50805b600060016105ef5461214291906129e4565b90508085146121a05760006013826105dc811061216157612161612ae4565b015490508061218657816013876105dc811061217f5761217f612ae4565b015561219e565b806013876105dc811061219b5761219b612ae4565b01555b505b6105ef80549060006121b183612a27565b909155509195945050505050565b6121c983836121f2565b6121d66000848484611e67565b610a575760405162461bcd60e51b81526004016109219061286c565b6001600160a01b0382166122485760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610921565b6000818152600260205260409020546001600160a01b0316156122ad5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610921565b6122b960008383611d00565b6001600160a01b03821660009081526003602052604081208054600192906122e2908490612999565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b82805461234c90612a3e565b90600052602060002090601f01602090048101928261236e57600085556123b4565b82601f1061238757805160ff19168380011785556123b4565b828001600101855582156123b4579182015b828111156123b4578251825591602001919060010190612399565b506123c09291506123c4565b5090565b5b808211156123c057600081556001016123c5565b600067ffffffffffffffff8311156123f3576123f3612afa565b612406601f8401601f1916602001612968565b905082815283838301111561241a57600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b038116811461244857600080fd5b919050565b60006020828403121561245f57600080fd5b61246882612431565b9392505050565b6000806040838503121561248257600080fd5b61248b83612431565b915061249960208401612431565b90509250929050565b6000806000606084860312156124b757600080fd5b6124c084612431565b92506124ce60208501612431565b9150604084013590509250925092565b600080600080608085870312156124f457600080fd5b6124fd85612431565b935061250b60208601612431565b925060408501359150606085013567ffffffffffffffff81111561252e57600080fd5b8501601f8101871361253f57600080fd5b61254e878235602084016123d9565b91505092959194509250565b6000806040838503121561256d57600080fd5b61257683612431565b91506020830135801515811461258b57600080fd5b809150509250929050565b600080604083850312156125a957600080fd5b6125b283612431565b946020939093013593505050565b600060208083850312156125d357600080fd5b823567ffffffffffffffff808211156125eb57600080fd5b818501915085601f8301126125ff57600080fd5b81358181111561261157612611612afa565b8060051b9150612622848301612968565b8181528481019084860184860187018a101561263d57600080fd5b600095505b83861015612660578035835260019590950194918601918601612642565b5098975050505050505050565b60006020828403121561267f57600080fd5b813561246881612b10565b60006020828403121561269c57600080fd5b815161246881612b10565b6000602082840312156126b957600080fd5b813567ffffffffffffffff8111156126d057600080fd5b8201601f810184136126e157600080fd5b6118b5848235602084016123d9565b60006020828403121561270257600080fd5b5035919050565b60006020828403121561271b57600080fd5b5051919050565b6000815180845261273a8160208601602086016129fb565b601f01601f19169290920160200192915050565b600081516127608185602086016129fb565b9290920192915050565b600080845481600182811c91508083168061278657607f831692505b60208084108214156127a657634e487b7160e01b86526022600452602486fd5b8180156127ba57600181146127cb576127f8565b60ff198616895284890196506127f8565b60008b81526020902060005b868110156127f05781548b8201529085019083016127d7565b505084890196505b505050505050611e4061280b828661274e565b64173539b7b760d91b815260050190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061284f90830184612722565b9695505050505050565b6020815260006124686020830184612722565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252600a9082015269139bdd0814185d5cd95960b21b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff8111828210171561299157612991612afa565b604052919050565b600082198211156129ac576129ac612aa2565b500190565b6000826129c0576129c0612ab8565b500490565b60008160001904831182151516156129df576129df612aa2565b500290565b6000828210156129f6576129f6612aa2565b500390565b60005b83811015612a165781810151838201526020016129fe565b838111156114f25750506000910152565b600081612a3657612a36612aa2565b506000190190565b600181811c90821680612a5257607f821691505b6020821081141561170257634e487b7160e01b600052602260045260246000fd5b6000600019821415612a8757612a87612aa2565b5060010190565b600082612a9d57612a9d612ab8565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461124257600080fdfea2646970667358221220fed1fb551c22e558a24223fce9e5b29c5095eb903ece9a047f88fc8646d819fc64736f6c63430008070033000000000000000000000000251d1a73493cff75888dd62139627ee9b976853d