[ { "inputs": [], "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": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "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": "", "type": "address" } ], "name": "accountMintCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "to", "type": "address[]" } ], "name": "airDropRandomToAccounts", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "ammountWithdrawn", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "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": "cache", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "cachePosition", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "baseURI_", "type": "string" } ], "name": "changeBaseUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "mintFee_", "type": "uint256" } ], "name": "changeMintFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "mintLimit_", "type": "uint256" } ], "name": "changeMintLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "placeholderImage_", "type": "string" } ], "name": "changePlaceholderImage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "contractURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "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": "account", "type": "address" } ], "name": "getMintsUsed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "string", "name": "baseURI_", "type": "string" }, { "internalType": "address", "name": "ownerAddress_", "type": "address" }, { "internalType": "uint256", "name": "mintFee_", "type": "uint256" }, { "internalType": "uint256", "name": "size_", "type": "uint256" }, { "internalType": "bool", "name": "mintSelectionEnabled_", "type": "bool" }, { "internalType": "bool", "name": "mintRandomEnabled_", "type": "bool" }, { "internalType": "address", "name": "whiteListSignerAddress_", "type": "address" }, { "internalType": "uint256", "name": "mintLimit_", "type": "uint256" }, { "internalType": "uint256", "name": "royaltyBasis_", "type": "uint256" }, { "internalType": "string", "name": "placeholderImage_", "type": "string" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "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": [], "name": "isPublicMintingEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenID", "type": "uint256" } ], "name": "isTokenAvailable", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lockBaseUri", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintLimit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "mintRandom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "mintRandom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenID", "type": "uint256" } ], "name": "mintToAccount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenID", "type": "uint256" } ], "name": "mintToken", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "isFree", "type": "bool" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenID", "type": "uint256" }, { "internalType": "bool", "name": "isRandom", "type": "bool" }, { "internalType": "uint256", "name": "customFee", "type": "uint256" }, { "internalType": "uint256", "name": "limit", "type": "uint256" }, { "internalType": "uint256", "name": "count", "type": "uint256" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "mintWithSignature", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "isFree", "type": "bool" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenID", "type": "uint256" }, { "internalType": "bool", "name": "isRandom", "type": "bool" }, { "internalType": "uint256", "name": "customFee", "type": "uint256" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "mintWithSignature", "outputs": [], "stateMutability": "payable", "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": "permanentlyLockBaseUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "placeholderImage", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "remaining", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "reveal", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "royaltyBasis", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "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": [], "name": "shareAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": "toggleRandomPublicMinting", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "ammount", "type": "uint256" } ], "name": "transferBalance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "erc20ContractAddress", "type": "address" }, { "internalType": "address payable", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "ammount", "type": "uint256" } ], "name": "transferERC20Balance", "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": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040526103e860d255600060d35534801561001b57600080fd5b50613d918061002b6000396000f3fe6080604052600436106102cd5760003560e01c8063702cbbae11610175578063b3626e0f116100dc578063c87b56dd11610095578063e929d6691161006f578063e929d66914610896578063e985e9c5146108b6578063ecbb0905146108d6578063f2fde38b146108eb57600080fd5b8063c87b56dd14610841578063e829f52414610861578063e8a3d4851461088157600080fd5b8063b3626e0f14610789578063b88d4fde1461079e578063bd214423146107be578063c31f7dcf146107eb578063c634d03214610818578063c6ec69091461082b57600080fd5b80638da5cb5b1161012e5780638da5cb5b1461070357806395d89b4114610721578063996517cf14610736578063a22cb4651461074c578063a475b5dd1461076c578063b155d7fa1461078157600080fd5b8063702cbbae1461065b57806370a0823114610692578063715018a6146106b2578063721a4c49146106c757806379b90583146106da578063883a1b32146106ed57600080fd5b8063312767ca11610234578063492d306b116101ed57806355234ec0116101c757806355234ec0146105cf57806356a6d9ef146105e557806363331301146106055780636352211e1461063b57600080fd5b8063492d306b146105615780635177fee51461058157806354fd4d50146105a157600080fd5b8063312767ca146104b557806334259b5c146104cf578063356e7e9d146104ef57806342842e0e1461050f578063441f06ac1461052f578063448d8c5c1461054c57600080fd5b806313966db51161028657806313966db5146103c557806317bf72c6146103e9578063195b29341461041657806323b872dd1461043657806329f61b08146104565780632a55205a1461047657600080fd5b806301ffc9a7146102d957806306fdde031461030e5780630754796b14610330578063081812fc14610370578063095ea7b3146103905780630d516997146103b257600080fd5b366102d457005b600080fd5b3480156102e557600080fd5b506102f96102f4366004612f59565b61090b565b60405190151581526020015b60405180910390f35b34801561031a57600080fd5b5061032361096c565b6040516103059190612fc6565b34801561033c57600080fd5b5061035873e28564784a0f57554d8beec807e8609b40a9724181565b6040516001600160a01b039091168152602001610305565b34801561037c57600080fd5b5061035861038b366004612fd9565b6109fe565b34801561039c57600080fd5b506103b06103ab366004613012565b610a25565b005b6103b06103c0366004612fd9565b610b3f565b3480156103d157600080fd5b506103db60ca5481565b604051908152602001610305565b3480156103f557600080fd5b506103db610404366004612fd9565b60cd6020526000908152604090205481565b34801561042257600080fd5b506103b0610431366004613102565b610c2a565b34801561044257600080fd5b506103b0610451366004613230565b610db7565b34801561046257600080fd5b506103b0610471366004613230565b610de8565b34801561048257600080fd5b50610496610491366004613271565b610f0f565b604080516001600160a01b039093168352602083019190915201610305565b3480156104c157600080fd5b5060d5546102f99060ff1681565b3480156104db57600080fd5b506103b06104ea366004612fd9565b610f3a565b3480156104fb57600080fd5b506103b061050a366004613012565b610f47565b34801561051b57600080fd5b506103b061052a366004613230565b610f62565b34801561053b57600080fd5b5060cb54610100900460ff166102f9565b34801561055857600080fd5b50610323610f7d565b34801561056d57600080fd5b506103b061057c366004613293565b61100b565b34801561058d57600080fd5b506103b061059c3660046132c7565b611082565b3480156105ad57600080fd5b50604080518082019091526005815264312e302e3760d81b6020820152610323565b3480156105db57600080fd5b506103db60cc5481565b3480156105f157600080fd5b506103b0610600366004613012565b6110e4565b34801561061157600080fd5b506103db61062036600461333b565b6001600160a01b0316600090815260cf602052604090205490565b34801561064757600080fd5b50610358610656366004612fd9565b611225565b34801561066757600080fd5b506102f9610676366004612fd9565b6000908152606760205260409020546001600160a01b03161590565b34801561069e57600080fd5b506103db6106ad36600461333b565b611285565b3480156106be57600080fd5b506103b061130b565b6103b06106d5366004613399565b61131f565b6103b06106e836600461343d565b6115e9565b3480156106f957600080fd5b506103db60d35481565b34801561070f57600080fd5b506097546001600160a01b0316610358565b34801561072d57600080fd5b50610323611726565b34801561074257600080fd5b506103db60d15481565b34801561075857600080fd5b506103b06107673660046134cb565b611735565b34801561077857600080fd5b506103b0611740565b6103b0611767565b34801561079557600080fd5b506103b06117d4565b3480156107aa57600080fd5b506103b06107b9366004613504565b6117f9565b3480156107ca57600080fd5b506103db6107d936600461333b565b60cf6020526000908152604090205481565b3480156107f757600080fd5b506103db610806366004612fd9565b60ce6020526000908152604090205481565b6103b0610826366004612fd9565b611831565b34801561083757600080fd5b506103db60d25481565b34801561084d57600080fd5b5061032361085c366004612fd9565b6118eb565b34801561086d57600080fd5b506103b061087c366004613293565b611a76565b34801561088d57600080fd5b50610323611b4e565b3480156108a257600080fd5b506103b06108b1366004612fd9565b611bb9565b3480156108c257600080fd5b506102f96108d1366004613583565b611bc6565b3480156108e257600080fd5b506103b0611bf4565b3480156108f757600080fd5b506103b061090636600461333b565b611c0b565b60006001600160e01b031982166380ac58cd60e01b148061093c57506001600160e01b03198216635b5e139f60e01b145b8061095757506001600160e01b0319821663152a902d60e11b145b80610966575061096682611c81565b92915050565b60606065805461097b906135b1565b80601f01602080910402602001604051908101604052809291908181526020018280546109a7906135b1565b80156109f45780601f106109c9576101008083540402835291602001916109f4565b820191906000526020600020905b8154815290600101906020018083116109d757829003601f168201915b5050505050905090565b6000610a0982611cd1565b506000908152606960205260409020546001600160a01b031690565b6000610a3082611225565b9050806001600160a01b0316836001600160a01b031603610aa25760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b0382161480610abe5750610abe8133611bc6565b610b305760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610a99565b610b3a8383611d30565b505050565b60008111610b8f5760405162461bcd60e51b815260206004820152601f60248201527f436f756e74206d7573742062652067726561746572207468616e207a65726f006044820152606401610a99565b60cb5460ff610100909104161515600114610bbc5760405162461bcd60e51b8152600401610a99906135e5565b8060ca54610bca919061364a565b3414610be85760405162461bcd60e51b8152600401610a9990613661565b610bf23382611d9e565b60005b81811015610c26576000610c07611e18565b9050610c133382611f2e565b5080610c1e816136a5565b915050610bf5565b5050565b600054610100900460ff1615808015610c4a5750600054600160ff909116105b80610c645750303b158015610c64575060005460ff166001145b610cc75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610a99565b6000805460ff191660011790558015610cea576000805461ff0019166101001790555b610cf48d8d611f48565b60c9610d008c82613704565b5060ca89905560cb805461ffff191688151561ff0019161761010088151502179055610d2b8a611f79565b60cc88905560d080546001600160a01b0319166001600160a01b03871617905560d184905560d283905560d4610d618382613704565b508015610da8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050505050505050565b610dc13382611fcb565b610ddd5760405162461bcd60e51b8152600401610a99906137c3565b610b3a83838361202a565b610df061218e565b6000610dfd600a83613826565b90506000610e0b828461383a565b60405163a9059cbb60e01b815273e28564784a0f57554d8beec807e8609b40a972416004820152602481018490529091506001600160a01b0386169063a9059cbb906044016020604051808303816000875af1158015610e6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e93919061384d565b5060405163a9059cbb60e01b81526001600160a01b0385811660048301526024820183905286169063a9059cbb906044016020604051808303816000875af1158015610ee3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f07919061384d565b505050505050565b6000803061271060d25485610f24919061364a565b610f2e9190613826565b915091505b9250929050565b610f4261218e565b60d155565b610f4f61218e565b610f58816121e8565b610c268282611f2e565b610b3a838383604051806020016040528060008152506117f9565b60d48054610f8a906135b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610fb6906135b1565b80156110035780601f10610fd857610100808354040283529160200191611003565b820191906000526020600020905b815481529060010190602001808311610fe657829003601f168201915b505050505081565b61101361218e565b60d55460ff16156110765760405162461bcd60e51b815260206004820152602760248201527f4261736520555249206973206c6f636b65642c2069742063616e6e6f742062656044820152660819591a5d195960ca1b6064820152608401610a99565b60c9610c268282613704565b61108a61218e565b60005b81811015610b3a57600061109f611e18565b90506110d18484848181106110b6576110b661386a565b90506020020160208101906110cb919061333b565b82611f2e565b50806110dc816136a5565b91505061108d565b6110ec61218e565b4715610c2657804711156111425760405162461bcd60e51b815260206004820152601f60248201527f4e6f7420656e6f756768742042616c616e636520746f205472616e73666572006044820152606401610a99565b600061114f601483613826565b9050600061115d828461383a565b9050466001148061116e5750466005145b8061117a575046611691145b1561118e5761118984836122da565b6111d1565b60405173e28564784a0f57554d8beec807e8609b40a972419083156108fc029084906000818181858888f193505050501580156111cf573d6000803e3d6000fd5b505b6040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015611207573d6000803e3d6000fd5b508260d3600082825461121a9190613880565b909155505050505050565b6000818152606760205260408120546001600160a01b0316806109665760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610a99565b60006001600160a01b0382166112ef5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610a99565b506001600160a01b031660009081526068602052604090205490565b61131361218e565b61131d6000611f79565b565b6000831161136f5760405162461bcd60e51b815260206004820152601f60248201527f436f756e74206d7573742062652067726561746572207468616e207a65726f006044820152606401610a99565b838311158061137c575083155b6113ee5760405162461bcd60e51b815260206004820152603e60248201527f596f7520617265206e6f742061626c6520746f206d696e74206d6f726520746860448201527f616e2074686520616c6c6f6361746564206c696d6974206174206f6e636500006064820152608401610a99565b6113f988848661234d565b60405189151560f890811b60208301526bffffffffffffffffffffffff1960608b901b16602183015260358201899052871515901b605582015260568101859052607681018690526000906114d590611499906096015b604051602081830303815290604052805190602001207f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506123fe92505050565b90506114e96097546001600160a01b031690565b6001600160a01b0316816001600160a01b03161480611515575060d0546001600160a01b038281169116145b6115315760405162461bcd60e51b8152600401610a9990613893565b89611597578560000361156f578360ca5461154c919061364a565b341461156a5760405162461bcd60e51b8152600401610a9990613661565b611597565b611579848761364a565b34146115975760405162461bcd60e51b8152600401610a9990613661565b60005b848110156115dc5787156115b7576115b0611e18565b98506115c0565b6115c0896121e8565b6115ca8a8a611f2e565b806115d4816136a5565b91505061159a565b5050505050505050505050565b6115f286612422565b60405187151560f890811b60208301526bffffffffffffffffffffffff19606089901b16602183015260358201879052851515901b6055820152605681018490526000906116469061149990607601611450565b905061165a6097546001600160a01b031690565b6001600160a01b0316816001600160a01b03161480611686575060d0546001600160a01b038281169116145b6116a25760405162461bcd60e51b8152600401610a9990613893565b876116f457836000036116d55760ca5434146116d05760405162461bcd60e51b8152600401610a9990613661565b6116f4565b8334146116f45760405162461bcd60e51b8152600401610a9990613661565b841561170957611702611e18565b9550611712565b611712866121e8565b61171c8787611f2e565b5050505050505050565b60606066805461097b906135b1565b610c26338383612492565b61174861218e565b60408051602081019091526000815260d4906117649082613704565b50565b60cb5460ff6101009091041615156001146117945760405162461bcd60e51b8152600401610a99906135e5565b60ca5434146117b55760405162461bcd60e51b8152600401610a9990613661565b6117be33612422565b60006117c8611e18565b90506117643382611f2e565b6117dc61218e565b60cb805461ff001981166101009182900460ff1615909102179055565b6118033383611fcb565b61181f5760405162461bcd60e51b8152600401610a99906137c3565b61182b84848484612560565b50505050565b60cb5460ff1615156001146118ae5760405162461bcd60e51b815260206004820152603760248201527f537065636966696320746f6b656e206d696e74696e67206973206e6f7420656e60448201527f61626c656420666f72207468697320636f6e74726163740000000000000000006064820152608401610a99565b60ca5434146118cf5760405162461bcd60e51b8152600401610a9990613661565b6118d833612422565b6118e1816121e8565b6117643382611f2e565b6000818152606760205260409020546060906001600160a01b031661196a5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610a99565b6000611974612593565b9050600060d48054611985906135b1565b90501115611a205760d4805461199a906135b1565b80601f01602080910402602001604051908101604052809291908181526020018280546119c6906135b1565b8015611a135780601f106119e857610100808354040283529160200191611a13565b820191906000526020600020905b8154815290600101906020018083116119f657829003601f168201915b5050505050915050919050565b6000815111611a3e5760405180602001604052806000815250611a69565b80611a48846125a2565b604051602001611a599291906138d8565b6040516020818303038152906040525b9392505050565b50919050565b611a7e61218e565b60d48054611a8b906135b1565b9050600003611ae75760405162461bcd60e51b815260206004820152602260248201527f4d657461646174612068617320616c7265616479206265656e2072657665616c604482015261195960f21b6064820152608401610a99565b8051600003611b425760405162461bcd60e51b815260206004820152602160248201527f506c616365686f6c64657220696d6167652063616e6e6f7420626520656d70746044820152607960f81b6064820152608401610a99565b60d4610c268282613704565b6060611b95611b5b61096c565b611b6660d2546125a2565b611b6f30612634565b604051602001611b8193929190613907565b60405160208183030381529060405261277b565b604051602001611ba591906139c3565b604051602081830303815290604052905090565b611bc161218e565b60ca55565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b611bfc61218e565b60d5805460ff19166001179055565b611c1361218e565b6001600160a01b038116611c785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a99565b61176481611f79565b60006001600160e01b031982166380ac58cd60e01b1480611cb257506001600160e01b03198216635b5e139f60e01b145b8061096657506301ffc9a760e01b6001600160e01b0319831614610966565b6000818152606760205260409020546001600160a01b03166117645760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610a99565b600081815260696020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611d6582611225565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6001600160a01b038216600090815260cf602052604090205460d154611dc48383613880565b111580611dd1575060d154155b611ded5760405162461bcd60e51b8152600401610a9990613a08565b611df78282613880565b6001600160a01b03909316600090815260cf60205260409020929092555050565b60008060cc5442604051602001611e3191815260200190565b6040516020818303038152906040528051906020012060001c611e549190613a55565b600081815260cd602052604090205490915015611e7f57600081815260cd6020526040902054611e81565b805b915060cd6000600160cc54611e96919061383a565b815260200190815260200160002054600014611ed35760cd6000600160cc54611ebf919061383a565b815260200190815260200160002054611ee2565b600160cc54611ee2919061383a565b600082815260cd6020526040902055611efc816001613880565b600082815260cd6020908152604080832054835260ce90915290205560cc54611f279060019061383a565b60cc555090565b610c268282604051806020016040528060008152506128e1565b600054610100900460ff16611f6f5760405162461bcd60e51b8152600401610a9990613a69565b610c268282612914565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080611fd783611225565b9050806001600160a01b0316846001600160a01b03161480611ffe5750611ffe8185611bc6565b806120225750836001600160a01b0316612017846109fe565b6001600160a01b0316145b949350505050565b826001600160a01b031661203d82611225565b6001600160a01b0316146120635760405162461bcd60e51b8152600401610a9990613ab4565b6001600160a01b0382166120c55760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610a99565b826001600160a01b03166120d882611225565b6001600160a01b0316146120fe5760405162461bcd60e51b8152600401610a9990613ab4565b600081815260696020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260688552838620805460001901905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6097546001600160a01b0316331461131d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a99565b600081815260ce60205260408120541561221c57600082815260ce60205260409020546122179060019061383a565b61221e565b815b905060cc5481111561222f57600080fd5b60cd6000600160cc54612242919061383a565b81526020019081526020016000205460001461227f5760cd6000600160cc5461226b919061383a565b81526020019081526020016000205461228e565b600160cc5461228e919061383a565b600082815260cd60205260409020556122a8816001613880565b600082815260cd6020908152604080832054835260ce90915290205560cc546122d39060019061383a565b60cc555050565b6040516335313c2160e11b81526001600160a01b038316600482015273c00c733702248aebdb357340dddda5c47500a35a90636a6278429083906024016000604051808303818588803b15801561233057600080fd5b505af1158015612344573d6000803e3d6000fd5b50505050505050565b6001600160a01b038316600090815260cf6020526040812054908290036123a95760d15461237b8483613880565b111580612388575060d154155b6123a45760405162461bcd60e51b8152600401610a9990613a08565b6123d2565b816123b48483613880565b11156123d25760405162461bcd60e51b8152600401610a9990613a08565b6123dc8382613880565b6001600160a01b03909416600090815260cf6020526040902093909355505050565b600080600061240d8585612954565b9150915061241a81612996565b509392505050565b6001600160a01b038116600090815260cf602052604090205460d15481108061244b575060d154155b6124675760405162461bcd60e51b8152600401610a9990613a08565b612472816001613880565b6001600160a01b03909216600090815260cf602052604090209190915550565b816001600160a01b0316836001600160a01b0316036124f35760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610a99565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61256b84848461202a565b61257784848484612ae0565b61182b5760405162461bcd60e51b8152600401610a9990613af9565b606060c9805461097b906135b1565b606060006125af83612be1565b60010190506000816001600160401b038111156125ce576125ce61303e565b6040519080825280601f01601f1916602001820160405280156125f8576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461260257509392505050565b60408051602880825260608281019093526000919060208201818036833701905050905060005b601481101561277457600061267182601361383a565b61267c90600861364a565b612687906002613c2f565b61269a906001600160a01b038716613826565b60f81b9050600060108260f81c6126b19190613c3b565b60f81b905060008160f81c60106126c89190613c5d565b8360f81c6126d69190613c79565b60f81b90506126e482612cb9565b856126f086600261364a565b815181106127005761270061386a565b60200101906001600160f81b031916908160001a90535061272081612cb9565b8561272c86600261364a565b612737906001613880565b815181106127475761274761386a565b60200101906001600160f81b031916908160001a905350505050808061276c906136a5565b91505061265b565b5092915050565b6060815160000361279a57505060408051602081019091526000815290565b6000604051806060016040528060408152602001613d1c60409139905060006003845160026127c99190613880565b6127d39190613826565b6127de90600461364a565b905060006127ed826020613880565b6001600160401b038111156128045761280461303e565b6040519080825280601f01601f19166020018201604052801561282e576020820181803683370190505b509050818152600183018586518101602084015b8183101561289c5760039283018051603f601282901c811687015160f890811b8552600c83901c8216880151811b6001860152600683901c8216880151811b60028601529116860151901b93820193909352600401612842565b6003895106600181146128b657600281146128c7576128d3565b613d3d60f01b6001198301526128d3565b603d60f81b6000198301525b509398975050505050505050565b6128eb8383612cf4565b6128f86000848484612ae0565b610b3a5760405162461bcd60e51b8152600401610a9990613af9565b600054610100900460ff1661293b5760405162461bcd60e51b8152600401610a9990613a69565b60656129478382613704565b506066610b3a8282613704565b600080825160410361298a5760208301516040840151606085015160001a61297e87828585612e7f565b94509450505050610f33565b50600090506002610f33565b60008160048111156129aa576129aa613c92565b036129b25750565b60018160048111156129c6576129c6613c92565b03612a135760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610a99565b6002816004811115612a2757612a27613c92565b03612a745760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610a99565b6003816004811115612a8857612a88613c92565b036117645760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610a99565b60006001600160a01b0384163b15612bd657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612b24903390899088908890600401613ca8565b6020604051808303816000875af1925050508015612b5f575060408051601f3d908101601f19168201909252612b5c91810190613ce5565b60015b612bbc573d808015612b8d576040519150601f19603f3d011682016040523d82523d6000602084013e612b92565b606091505b508051600003612bb45760405162461bcd60e51b8152600401610a9990613af9565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612022565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612c205772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612c4c576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612c6a57662386f26fc10000830492506010015b6305f5e1008310612c82576305f5e100830492506008015b6127108310612c9657612710830492506004015b60648310612ca8576064830492506002015b600a83106109665760010192915050565b6000600a60f883901c1015612ce057612cd760f883901c6030613d02565b60f81b92915050565b612cd760f883901c6057613d02565b919050565b6001600160a01b038216612d4a5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610a99565b6000818152606760205260409020546001600160a01b031615612daf5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610a99565b6000818152606760205260409020546001600160a01b031615612e145760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610a99565b6001600160a01b038216600081815260686020908152604080832080546001019055848352606790915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612eb65750600090506003612f3a565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612f0a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612f3357600060019250925050612f3a565b9150600090505b94509492505050565b6001600160e01b03198116811461176457600080fd5b600060208284031215612f6b57600080fd5b8135611a6981612f43565b60005b83811015612f91578181015183820152602001612f79565b50506000910152565b60008151808452612fb2816020860160208601612f76565b601f01601f19169290920160200192915050565b602081526000611a696020830184612f9a565b600060208284031215612feb57600080fd5b5035919050565b6001600160a01b038116811461176457600080fd5b8035612cef81612ff2565b6000806040838503121561302557600080fd5b823561303081612ff2565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b038084111561306e5761306e61303e565b604051601f8501601f19908116603f011681019082821181831017156130965761309661303e565b816040528093508581528686860111156130af57600080fd5b858560208301376000602087830101525050509392505050565b600082601f8301126130da57600080fd5b611a6983833560208501613054565b801515811461176457600080fd5b8035612cef816130e9565b6000806000806000806000806000806000806101808d8f03121561312557600080fd5b6001600160401b038d35111561313a57600080fd5b6131478e8e358f016130c9565b9b506001600160401b0360208e0135111561316157600080fd5b6131718e60208f01358f016130c9565b9a506001600160401b0360408e0135111561318b57600080fd5b61319b8e60408f01358f016130c9565b99506131a960608e01613007565b985060808d0135975060a08d013596506131c560c08e016130f7565b95506131d360e08e016130f7565b94506131e26101008e01613007565b93506101208d013592506101408d013591506001600160401b036101608e0135111561320d57600080fd5b61321e8e6101608f01358f016130c9565b90509295989b509295989b509295989b565b60008060006060848603121561324557600080fd5b833561325081612ff2565b9250602084013561326081612ff2565b929592945050506040919091013590565b6000806040838503121561328457600080fd5b50508035926020909101359150565b6000602082840312156132a557600080fd5b81356001600160401b038111156132bb57600080fd5b612022848285016130c9565b600080602083850312156132da57600080fd5b82356001600160401b03808211156132f157600080fd5b818501915085601f83011261330557600080fd5b81358181111561331457600080fd5b8660208260051b850101111561332957600080fd5b60209290920196919550909350505050565b60006020828403121561334d57600080fd5b8135611a6981612ff2565b60008083601f84011261336a57600080fd5b5081356001600160401b0381111561338157600080fd5b602083019150836020828501011115610f3357600080fd5b60008060008060008060008060006101008a8c0312156133b857600080fd5b89356133c3816130e9565b985060208a01356133d381612ff2565b975060408a0135965060608a01356133ea816130e9565b955060808a0135945060a08a0135935060c08a0135925060e08a01356001600160401b0381111561341a57600080fd5b6134268c828d01613358565b915080935050809150509295985092959850929598565b600080600080600080600060c0888a03121561345857600080fd5b8735613463816130e9565b9650602088013561347381612ff2565b955060408801359450606088013561348a816130e9565b93506080880135925060a08801356001600160401b038111156134ac57600080fd5b6134b88a828b01613358565b989b979a50959850939692959293505050565b600080604083850312156134de57600080fd5b82356134e981612ff2565b915060208301356134f9816130e9565b809150509250929050565b6000806000806080858703121561351a57600080fd5b843561352581612ff2565b9350602085013561353581612ff2565b92506040850135915060608501356001600160401b0381111561355757600080fd5b8501601f8101871361356857600080fd5b61357787823560208401613054565b91505092959194509250565b6000806040838503121561359657600080fd5b82356135a181612ff2565b915060208301356134f981612ff2565b600181811c908216806135c557607f821691505b602082108103611a7057634e487b7160e01b600052602260045260246000fd5b6020808252602f908201527f52616e646f6d206d696e74696e67206973206e6f7420656e61626c656420666f60408201526e1c881d1a1a5cc818dbdb9d1c9858dd608a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761096657610966613634565b60208082526024908201527f4574682073656e7420646f6573206e6f74206d6174636820746865206d696e746040820152632066656560e01b606082015260800190565b6000600182016136b7576136b7613634565b5060010190565b601f821115610b3a57600081815260208120601f850160051c810160208610156136e55750805b601f850160051c820191505b81811015610f07578281556001016136f1565b81516001600160401b0381111561371d5761371d61303e565b6137318161372b84546135b1565b846136be565b602080601f831160018114613766576000841561374e5750858301515b600019600386901b1c1916600185901b178555610f07565b600085815260208120601f198616915b8281101561379557888601518255948401946001909101908401613776565b50858210156137b35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261383557613835613810565b500490565b8181038181111561096657610966613634565b60006020828403121561385f57600080fd5b8151611a69816130e9565b634e487b7160e01b600052603260045260246000fd5b8082018082111561096657610966613634565b60208082526025908201527f546865207369676e61747572652070726f766964656420646f6573206e6f74206040820152640dac2e8c6d60db1b606082015260800190565b600083516138ea818460208801612f76565b8351908301906138fe818360208801612f76565b01949350505050565b683d913730b6b2911d1160b91b8152835160009061392c816009850160208901612f76565b7f222c2273656c6c65725f6665655f62617369735f706f696e7473223a000000006009918401918201528451613969816025840160208901612f76565b7116113332b2afb932b1b4b834b2b73a111d1160711b6025929091019182015261060f60f31b603782015283516139a7816039840160208801612f76565b61227d60f01b60399290910191820152603b0195945050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000008152600082516139fb81601d850160208701612f76565b91909101601d0192915050565b6020808252602d908201527f4d696e74206c696d697420666f722074686973206163636f756e74206861732060408201526c1899595b88195e18d959591959609a1b606082015260800190565b600082613a6457613a64613810565b500690565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b600181815b80851115613b86578160001904821115613b6c57613b6c613634565b80851615613b7957918102915b93841c9390800290613b50565b509250929050565b600082613b9d57506001610966565b81613baa57506000610966565b8160018114613bc05760028114613bca57613be6565b6001915050610966565b60ff841115613bdb57613bdb613634565b50506001821b610966565b5060208310610133831016604e8410600b8410161715613c09575081810a610966565b613c138383613b4b565b8060001904821115613c2757613c27613634565b029392505050565b6000611a698383613b8e565b600060ff831680613c4e57613c4e613810565b8060ff84160491505092915050565b60ff818116838216029081169081811461277457612774613634565b60ff828116828216039081111561096657610966613634565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090613cdb90830184612f9a565b9695505050505050565b600060208284031215613cf757600080fd5b8151611a6981612f43565b60ff81811683821601908111156109665761096661363456fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa26469706673582212201a7ec0bc75c2a41f237e43eff97150b0aed685cb8ee066ffe5bddac2f9a6f06164736f6c63430008140033