[ { "inputs": [ { "internalType": "address", "name": "_deployer", "type": "address" }, { "internalType": "string", "name": "_tokenURI", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ERC721EnumerableForbiddenBatchMint", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "ERC721OutOfBoundsIndex", "type": "error" }, { "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": true, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "MintPriceChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_value", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "MintRegistered", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "MintToggled", "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": false, "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "ReservePriceChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_value", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "RewardClaimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_to", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_oldAddress", "type": "address" } ], "name": "SignerAddressChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "Stake", "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "stakedAtTimestamp", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "removedFromStakeAtTimestamp", "type": "uint256" } ], "name": "Unstake", "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": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "counterMaxMint", "outputs": [ { "internalType": "uint256", "name": "maxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "count", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "deposit", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "isClaimed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isMintLive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isMinted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "isStaked", "outputs": [ { "internalType": "address", "name": "staker", "type": "address" }, { "internalType": "uint256", "name": "stakeStarted", "type": "uint256" }, { "internalType": "uint256", "name": "stakeEnded", "type": "uint256" }, { "internalType": "uint256", "name": "duration", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_nonce", "type": "uint256" }, { "internalType": "bytes32", "name": "_msgHash", "type": "bytes32" }, { "internalType": "bytes", "name": "_signature", "type": "bytes" }, { "internalType": "uint256", "name": "_stakeDuration", "type": "uint256" } ], "name": "mintFictZero", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "mintPrice", "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": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "reservePrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardEnd", "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": "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": "uint256", "name": "_mintPrice", "type": "uint256" } ], "name": "setMintPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_reservePrice", "type": "uint256" } ], "name": "setReservePrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_rewardEnd", "type": "uint256" } ], "name": "setRewardEnd", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newSigner", "type": "address" } ], "name": "setSignerAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_nonce", "type": "uint256" }, { "internalType": "bytes32", "name": "_msgHash", "type": "bytes32" }, { "internalType": "bytes", "name": "_signature", "type": "bytes" }, { "internalType": "uint256", "name": "_daysValue", "type": "uint256" } ], "name": "stakeFictZero", "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": [], "name": "toggleMint", "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": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "unstakeFictZero", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6080604052600b80546001600160a01b031916734ca9936072b171a08301b59446f34bc0f3cf9f4b179055600d805460ff191690556001600e55670b1a2bc2ec500000600f55670de0b6b3a76400006010556103786011554260125534801562000067575f80fd5b5060405162003009380380620030098339810160408190526200008a91620003d4565b604080518082018252600880825267464943545a45524f60c01b6020808401829052845180860190955291845290830152905f620000c983826200054e565b506001620000d882826200054e565b505050620000f5620000ef6200028a60201b60201c565b6200028e565b6200010082620002df565b600c6200010e82826200054e565b50506016602081905261014d7fc89b9715af38edfbeb7de9147aa42890a2ed353ddfd26adc7c3d170e0234159e5560de7f2ec7f50964820071486b397ebf5491e0359dbbc7a9b6460b1daeb3ff8f596b9155606f7fdf06490639e2453950caefcd9af71fadff9577306d64aab76a3e3db3dcef6f695560637f6f969bd706f7f3c36a4d48779ec59b2d9b33a82e38197bc84fc606dcc573215f5560587f34e06e21a131004060724fd1dfd415a56c8f98acbf19f167f14dc1d2744d61fb55604d7f8956132e30107a6bcd5cf5d923702c451d95d06977237bb62b9d07f30f3085b15560377fa35a09fdfa73a724eff314f4697c5a27745c3b474bb054cdd7e5c9c080f902285560217fa09d40c228ecc8b3b42892fcebe71c7b896f85e3eb46fd83ec18ee7368330e98557f3073503f0367ff661bc083bb6d8c85094e12337d8680feca6faa137ce2afa55555506107f15f52600b7f804a6b95b55a6a1d25fd6f6d24c044c37b84e0986755c7d46a52297bdbde36f15562000616565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b620002e962000362565b6001600160a01b038116620003545760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6200035f816200028e565b50565b600a546001600160a01b03163314620003be5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200034b565b565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215620003e6575f80fd5b82516001600160a01b0381168114620003fd575f80fd5b602084810151919350906001600160401b03808211156200041c575f80fd5b818601915086601f83011262000430575f80fd5b815181811115620004455762000445620003c0565b604051601f8201601f19908116603f01168101908382118183101715620004705762000470620003c0565b81604052828152898684870101111562000488575f80fd5b5f93505b82841015620004ab57848401860151818501870152928501926200048c565b5f8684830101528096505050505050509250929050565b600181811c90821680620004d757607f821691505b602082108103620004f657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000549575f81815260208120601f850160051c81016020861015620005245750805b601f850160051c820191505b81811015620005455782815560010162000530565b5050505b505050565b81516001600160401b038111156200056a576200056a620003c0565b62000582816200057b8454620004c2565b84620004fc565b602080601f831160018114620005b8575f8415620005a05750858301515b5f19600386901b1c1916600185901b17855562000545565b5f85815260208120601f198616915b82811015620005e857888601518255948401946001909101908401620005c7565b50858210156200060657878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6129e580620006245f395ff3fe608060405260043610610228575f3560e01c8063936020d911610129578063d0e30db0116100a8578063e985e9c51161006d578063e985e9c51461068d578063f2fde38b146106ac578063f4a0a528146106cb578063f9f2a7ce146106ea578063fdfc7aae14610718575f80fd5b8063d0e30db014610628578063d17c2dcb14610630578063d3dd5fe01461064f578063d5abeb0114610663578063db2e1eed14610678575f80fd5b8063baa51f86116100ee578063baa51f8614610542578063c1e534aa146105b6578063c87b56dd146105cb578063ce9c7c0d146105ea578063cf81f35114610609575f80fd5b8063936020d9146104a357806395d89b41146104c25780639e34070f146104d6578063a22cb46514610504578063b88d4fde14610523575f80fd5b806342842e0e116101b55780636817c76c1161017a5780636817c76c146103f757806369a3de741461040c57806370a0823114610453578063715018a6146104725780638da5cb5b14610486575f80fd5b806342842e0e146103685780634f6ccce71461038757806355f804b3146103a657806361477fcc146103c55780636352211e146103d8575f80fd5b8063095ea7b3116101fb578063095ea7b3146102d957806318160ddd146102f857806323b872dd146103165780632f745c59146103355780633ccfd60b14610354575f80fd5b806301ffc9a71461022c578063046dc1661461026057806306fdde0314610281578063081812fc146102a2575b5f80fd5b348015610237575f80fd5b5061024b61024636600461236d565b610731565b60405190151581526020015b60405180910390f35b34801561026b575f80fd5b5061027f61027a3660046123a3565b610741565b005b34801561028c575f80fd5b506102956107fd565b6040516102579190612409565b3480156102ad575f80fd5b506102c16102bc36600461241b565b61088c565b6040516001600160a01b039091168152602001610257565b3480156102e4575f80fd5b5061027f6102f3366004612432565b6108b3565b348015610303575f80fd5b506008545b604051908152602001610257565b348015610321575f80fd5b5061027f61033036600461245a565b6108c2565b348015610340575f80fd5b5061030861034f366004612432565b610905565b34801561035f575f80fd5b5061027f610968565b348015610373575f80fd5b5061027f61038236600461245a565b6109fa565b348015610392575f80fd5b506103086103a136600461241b565b610a19565b3480156103b1575f80fd5b5061027f6103c036600461251a565b610a6e565b61027f6103d336600461257d565b610a82565b3480156103e3575f80fd5b506102c16103f236600461241b565b610e48565b348015610402575f80fd5b5061030860105481565b348015610417575f80fd5b5061043e61042636600461241b565b60166020525f90815260409020805460019091015482565b60408051928352602083019190915201610257565b34801561045e575f80fd5b5061030861046d3660046123a3565b610e52565b34801561047d575f80fd5b5061027f610e97565b348015610491575f80fd5b50600a546001600160a01b03166102c1565b3480156104ae575f80fd5b5061027f6104bd36600461241b565b610eaa565b3480156104cd575f80fd5b5061029561102c565b3480156104e1575f80fd5b5061024b6104f036600461241b565b60136020525f908152604090205460ff1681565b34801561050f575f80fd5b5061027f61051e3660046125d1565b61103b565b34801561052e575f80fd5b5061027f61053d36600461260a565b611046565b34801561054d575f80fd5b5061058c61055c36600461241b565b60156020525f908152604090208054600182015460028301546003909301546001600160a01b0390921692909184565b604080516001600160a01b0390951685526020850193909352918301526060820152608001610257565b3480156105c1575f80fd5b5061030860125481565b3480156105d6575f80fd5b506102956105e536600461241b565b61108b565b3480156105f5575f80fd5b5061027f61060436600461241b565b6110f0565b348015610614575f80fd5b5061027f61062336600461266e565b611136565b61027f6112cc565b34801561063b575f80fd5b5061027f61064a36600461241b565b6112d4565b34801561065a575f80fd5b5061027f6112e1565b34801561066e575f80fd5b5061030860115481565b348015610683575f80fd5b50610308600f5481565b348015610698575f80fd5b5061024b6106a73660046126cb565b611338565b3480156106b7575f80fd5b5061027f6106c63660046123a3565b611365565b3480156106d6575f80fd5b5061027f6106e536600461241b565b6113db565b3480156106f5575f80fd5b5061024b6107043660046123a3565b60146020525f908152604090205460ff1681565b348015610723575f80fd5b50600d5461024b9060ff1681565b5f61073b8261141a565b92915050565b61074961143e565b6001600160a01b03811661079c5760405162461bcd60e51b815260206004820152601560248201527441646472657373206973206e6f742076616c69642160581b60448201526064015b60405180910390fd5b600b80546001600160a01b038381166001600160a01b031983168117909355604080519384529116602083018190529133917f7f79a758079c8ff715826ba9a371c85dd9a922cfa735519ecbb8f5bee614a2b4910160405180910390a25050565b60605f805461080b906126fc565b80601f0160208091040260200160405190810160405280929190818152602001828054610837906126fc565b80156108825780601f1061085957610100808354040283529160200191610882565b820191905f5260205f20905b81548152906001019060200180831161086557829003601f168201915b5050505050905090565b5f61089682611498565b505f828152600460205260409020546001600160a01b031661073b565b6108be8282336114d0565b5050565b5f8181526015602052604090206003015481906001116108f45760405162461bcd60e51b815260040161079390612734565b6108ff8484846114dd565b50505050565b5f61090f83610e52565b82106109405760405163295f44f760e21b81526001600160a01b038416600482015260248101839052604401610793565b506001600160a01b03919091165f908152600660209081526040808320938352929052205490565b61097061143e565b6040515f90339047908381818185875af1925050503d805f81146109af576040519150601f19603f3d011682016040523d82523d5f602084013e6109b4565b606091505b50509050806109f75760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610793565b50565b610a1483838360405180602001604052805f815250611046565b505050565b5f610a2360085490565b8210610a4b5760405163295f44f760e21b81525f600482015260248101839052604401610793565b60088281548110610a5e57610a5e61275d565b905f5260205f2001549050919050565b610a7661143e565b600c6108be82826127be565b338434858585610b18610ae6878787856040805160609590951b6bffffffffffffffffffffffff1916602080870191909152603486019490945260548501929092526074808501919091528151808503909101815260949093019052815191012090565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f908152601c91909152603c902090565b8314610b5d5760405162461bcd60e51b8152602060048201526014602482015273092dcecc2d8d2c840dacae6e6c2ceca40d0c2e6d60631b6044820152606401610793565b610b678383611560565b600b546001600160a01b03908116911614610bb85760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b6044820152606401610793565b600d5460ff16610c015760405162461bcd60e51b8152602060048201526014602482015273135a5b9d081a5cc81b9bdd081b1a5d99481e595d60621b6044820152606401610793565b335f9081526014602052604090205460ff1615610c565760405162461bcd60e51b8152602060048201526013602482015272596f7520616c7265616479204d696e7465642160681b6044820152606401610793565b601154600e541115610caa5760405162461bcd60e51b815260206004820152601760248201527f46696374205a65726f206973206d696e746564206f75740000000000000000006044820152606401610793565b600f54341480610cbb575060105434145b610cfe5760405162461bcd60e51b81526020600482015260146024820152730a0e4d2c6ca40c8decae640dcdee840dac2e8c6d60631b6044820152606401610793565b5f610d0d6301e187e04261288e565b610d19906107b26128ad565b90506107f2811015610d93575f818152601660205260409020805460019091015410610d935760405162461bcd60e51b815260206004820152602360248201527f537570706c7920616c72656164792065786365656420666f722074686973207960448201526232b0b960e91b6064820152608401610793565b600e80545f9182610da3836128c0565b919050559050610db33382611582565b610dbd898261159b565b5f828152601660205260408120600101805491610dd9836128c0565b9091555050335f8181526014602052604090819020805460ff19166001179055517f41c9b891d917f70d74895adfaf4b4409be1dd1729e4645bbb533c90c7fb12be290610e329034908590918252602082015260400190565b60405180910390a2505050505050505050505050565b5f61073b82611498565b5f6001600160a01b038216610e7c576040516322718ad960e21b81525f6004820152602401610793565b506001600160a01b03165f9081526003602052604090205490565b610e9f61143e565b610ea85f611797565b565b5f818152601560205260409020600301548190610efd5760405162461bcd60e51b8152602060048201526011602482015270151bdad95b881a5cc8155b9cdd185ad959607a1b6044820152606401610793565b33610f0783610e48565b6001600160a01b031614610f4f5760405162461bcd60e51b815260206004820152600f60248201526e2737ba102a37b5b2b71027bbb732b960891b6044820152606401610793565b5f828152601560205260409020600201544211610fae5760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e207374696c6c206f6e207374616b6520706572696f6400000000006044820152606401610793565b5f8281526015602052604080822060018101805482546001600160a01b031916835590849055600282018490556003909101929092555183907f529f395783b74aeb16a02d6320297d8415f7312f2ff2c398cd0d70e30bebc6c99061101f9084904290918252602082015260400190565b60405180910390a2505050565b60606001805461080b906126fc565b6108be3383836117e8565b5f8281526015602052604090206003015482906001116110785760405162461bcd60e51b815260040161079390612734565b61108485858585611886565b5050505050565b606061109682611498565b505f6110a061189d565b90505f8151116110be5760405180602001604052805f8152506110e9565b806110c8846118ac565b6040516020016110d99291906128d8565b6040516020818303038152906040525b9392505050565b6110f861143e565b600f81905560405181815233907f5dc3e1d733ce0e97562c71aa765e251dec904f170240d5d9fcc61f9b8ccb73f6906020015b60405180910390a250565b3384848484611191610ae68686846040805160609490941b6bffffffffffffffffffffffff19166020808601919091526034850193909352605480850192909252805180850390920182526074909301909252815191012090565b83146111d65760405162461bcd60e51b8152602060048201526014602482015273092dcecc2d8d2c840dacae6e6c2ceca40d0c2e6d60631b6044820152606401610793565b6111e08383611560565b600b546001600160a01b039081169116146112315760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b6044820152606401610793565b5f8a8152601560205260409020600301548a906001116112635760405162461bcd60e51b815260040161079390612734565b3361126d8c610e48565b6001600160a01b0316146112b55760405162461bcd60e51b815260206004820152600f60248201526e2737ba102a37b5b2b71027bbb732b960891b6044820152606401610793565b6112bf878c61159b565b5050505050505050505050565b610ea861143e565b6112dc61143e565b601255565b6112e961143e565b600d805460ff8082161560ff19909216821790925560405191161515815233907f0f52b1283a18a7af6f39fc3323c0047971151adb7841f91f92daebec7ad3f0a19060200160405180910390a2565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b61136d61143e565b6001600160a01b0381166113d25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610793565b6109f781611797565b6113e361143e565b601081905560405181815233907fbefdf8ffef0a457055ec7561e2db2ed2871640bbbc11a1b20fa87bfd84d387379060200161112b565b5f6001600160e01b0319821663780e9d6360e01b148061073b575061073b8261193c565b600a546001600160a01b03163314610ea85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610793565b5f818152600260205260408120546001600160a01b03168061073b57604051637e27328960e01b815260048101849052602401610793565b610a14838383600161198b565b6001600160a01b03821661150657604051633250574960e11b81525f6004820152602401610793565b5f611512838333611a8f565b9050836001600160a01b0316816001600160a01b0316146108ff576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610793565b5f805f61156d8585611aa3565b9150915061157a81611ae5565b509392505050565b6108be828260405180602001604052805f815250611c2e565b5f8215610a14575f82815260156020526040902080546001600160a01b03191633178155426001909101556115d38362015180612906565b6115dd90426128ad565b5f8381526015602052604080822060028101939093556003909201859055905183917f227a473b70d2f893cc7659219575c030a63b5743024fe1e0c1a680e708b1525a91a26012544210801561164157505f8281526013602052604090205460ff16155b15610a14578260b40361165557505f6116b1565b826101680361166d575067058d15e1762800006116b1565b8261021c036116855750670853a0d2313c00006116b1565b826102d00361169d5750670b1a2bc2ec5000006116b1565b82610384036116b15750670de0b6b3a76400005b5f828152601360205260409020805460ff191660011790558015610a14576040515f90339083908381818185875af1925050503d805f811461170e576040519150601f19603f3d011682016040523d82523d5f602084013e611713565b606091505b50509050806117565760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610793565b604080518381526020810185905233917ff01da32686223933d8a18a391060918c7f11a3648639edd87ae013e2e2731743910160405180910390a250505050565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b03821661181a57604051630b61174360e31b81526001600160a01b0383166004820152602401610793565b6001600160a01b038381165f81815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6118918484846108c2565b6108ff84848484611c40565b6060600c805461080b906126fc565b60605f6118b883611d5f565b60010190505f8167ffffffffffffffff8111156118d7576118d7612493565b6040519080825280601f01601f191660200182016040528015611901576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461190b57509392505050565b5f6001600160e01b031982166380ac58cd60e01b148061196c57506001600160e01b03198216635b5e139f60e01b145b8061073b57506301ffc9a760e01b6001600160e01b031983161461073b565b808061199f57506001600160a01b03821615155b15611a60575f6119ae84611498565b90506001600160a01b038316158015906119da5750826001600160a01b0316816001600160a01b031614155b80156119ed57506119eb8184611338565b155b15611a165760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610793565b8115611a5e5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50505f90815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b5f611a9b848484611e36565b949350505050565b5f808251604103611ad7576020830151604084015160608501515f1a611acb87828585611f01565b94509450505050611ade565b505f905060025b9250929050565b5f816004811115611af857611af861291d565b03611b005750565b6001816004811115611b1457611b1461291d565b03611b615760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610793565b6002816004811115611b7557611b7561291d565b03611bc25760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610793565b6003816004811115611bd657611bd661291d565b036109f75760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610793565b611c388383611fbe565b610a145f8484845b6001600160a01b0383163b156108ff57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611c82903390889087908790600401612931565b6020604051808303815f875af1925050508015611cbc575060408051601f3d908101601f19168201909252611cb99181019061296d565b60015b611d23573d808015611ce9576040519150601f19603f3d011682016040523d82523d5f602084013e611cee565b606091505b5080515f03611d1b57604051633250574960e11b81526001600160a01b0385166004820152602401610793565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461108457604051633250574960e11b81526001600160a01b0385166004820152602401610793565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611d9d5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611dc9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611de757662386f26fc10000830492506010015b6305f5e1008310611dff576305f5e100830492506008015b6127108310611e1357612710830492506004015b60648310611e25576064830492506002015b600a831061073b5760010192915050565b5f80611e4385858561201f565b90506001600160a01b038116611e9f57611e9a84600880545f838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611ec2565b846001600160a01b0316816001600160a01b031614611ec257611ec28185612111565b6001600160a01b038516611ede57611ed98461219e565b611a9b565b846001600160a01b0316816001600160a01b031614611a9b57611a9b8585612245565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611f3657505f90506003611fb5565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611f87573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116611faf575f60019250925050611fb5565b91505f90505b94509492505050565b6001600160a01b038216611fe757604051633250574960e11b81525f6004820152602401610793565b5f611ff383835f611a8f565b90506001600160a01b03811615610a14576040516339e3563760e11b81525f6004820152602401610793565b5f828152600260205260408120546001600160a01b039081169083161561204b5761204b818486612293565b6001600160a01b03811615612085576120665f855f8061198b565b6001600160a01b0381165f90815260036020526040902080545f190190555b6001600160a01b038516156120b3576001600160a01b0385165f908152600360205260409020805460010190555b5f8481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b5f61211b83610e52565b5f8381526007602052604090205490915080821461216c576001600160a01b0384165f9081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b505f9182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008545f906121af90600190612988565b5f83815260096020526040812054600880549394509092849081106121d6576121d661275d565b905f5260205f200154905080600883815481106121f5576121f561275d565b5f91825260208083209091019290925582815260099091526040808220849055858252812055600880548061222c5761222c61299b565b600190038181905f5260205f20015f9055905550505050565b5f600161225184610e52565b61225b9190612988565b6001600160a01b039093165f908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b61229e8383836122f7565b610a14576001600160a01b0383166122cc57604051637e27328960e01b815260048101829052602401610793565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610793565b5f6001600160a01b03831615801590611a9b5750826001600160a01b0316846001600160a01b0316148061233057506123308484611338565b80611a9b5750505f908152600460205260409020546001600160a01b03908116911614919050565b6001600160e01b0319811681146109f7575f80fd5b5f6020828403121561237d575f80fd5b81356110e981612358565b80356001600160a01b038116811461239e575f80fd5b919050565b5f602082840312156123b3575f80fd5b6110e982612388565b5f5b838110156123d65781810151838201526020016123be565b50505f910152565b5f81518084526123f58160208601602086016123bc565b601f01601f19169290920160200192915050565b602081525f6110e960208301846123de565b5f6020828403121561242b575f80fd5b5035919050565b5f8060408385031215612443575f80fd5b61244c83612388565b946020939093013593505050565b5f805f6060848603121561246c575f80fd5b61247584612388565b925061248360208501612388565b9150604084013590509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff808411156124c1576124c1612493565b604051601f8501601f19908116603f011681019082821181831017156124e9576124e9612493565b81604052809350858152868686011115612501575f80fd5b858560208301375f602087830101525050509392505050565b5f6020828403121561252a575f80fd5b813567ffffffffffffffff811115612540575f80fd5b8201601f81018413612550575f80fd5b611a9b848235602084016124a7565b5f82601f83011261256e575f80fd5b6110e9838335602085016124a7565b5f805f8060808587031215612590575f80fd5b8435935060208501359250604085013567ffffffffffffffff8111156125b4575f80fd5b6125c08782880161255f565b949793965093946060013593505050565b5f80604083850312156125e2575f80fd5b6125eb83612388565b9150602083013580151581146125ff575f80fd5b809150509250929050565b5f805f806080858703121561261d575f80fd5b61262685612388565b935061263460208601612388565b925060408501359150606085013567ffffffffffffffff811115612656575f80fd5b6126628782880161255f565b91505092959194509250565b5f805f805f60a08688031215612682575f80fd5b853594506020860135935060408601359250606086013567ffffffffffffffff8111156126ad575f80fd5b6126b98882890161255f565b95989497509295608001359392505050565b5f80604083850312156126dc575f80fd5b6126e583612388565b91506126f360208401612388565b90509250929050565b600181811c9082168061271057607f821691505b60208210810361272e57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600f908201526e151bdad95b881a5cc814dd185ad959608a1b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b601f821115610a14575f81815260208120601f850160051c810160208610156127975750805b601f850160051c820191505b818110156127b6578281556001016127a3565b505050505050565b815167ffffffffffffffff8111156127d8576127d8612493565b6127ec816127e684546126fc565b84612771565b602080601f83116001811461281f575f84156128085750858301515b5f19600386901b1c1916600185901b1785556127b6565b5f85815260208120601f198616915b8281101561284d5788860151825594840194600190910190840161282e565b508582101561286a57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b5f826128a857634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561073b5761073b61287a565b5f600182016128d1576128d161287a565b5060010190565b5f83516128e98184602088016123bc565b8351908301906128fd8183602088016123bc565b01949350505050565b808202811582820484141761073b5761073b61287a565b634e487b7160e01b5f52602160045260245ffd5b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90612963908301846123de565b9695505050505050565b5f6020828403121561297d575f80fd5b81516110e981612358565b8181038181111561073b5761073b61287a565b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220eef31e2fbbf247af188c80d94908dd4b70fec8d7b49c49e4cc94933060bb8f8b64736f6c63430008140033000000000000000000000000cc9b5d0fac5c2b9bed68341c79c23d34a8e72a9c0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002968747470733a2f2f7a65726f2d6170692e636f6e66696374696f6e2e636f6d2f666963747a65726f2f0000000000000000000000000000000000000000000000