[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "InsufficientFunds", "type": "error" }, { "inputs": [], "name": "MintLimit", "type": "error" }, { "inputs": [], "name": "NotOwner", "type": "error" }, { "inputs": [], "name": "SoldOut", "type": "error" }, { "inputs": [], "name": "WhitelistActive", "type": "error" }, { "inputs": [], "name": "WhitelistDisabled", "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": "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": [], "name": "DevMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "MINT_NFT_FEE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "NFT_MINTED_PER_USER", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_artist", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_royaltyAmount", "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": [], "name": "baseURI", "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": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "isWhitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxPerPerson", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxPerTx", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "mint", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nftCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "onlyWhitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "remainingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "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": "adArtist", "type": "address" } ], "name": "setAdArtist", "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": "newMaxBuy", "type": "uint256" } ], "name": "setMaxPerPerson", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxPerTx", "type": "uint256" } ], "name": "setMaxPerTx", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setMintActive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "setOnlyWhitelisted", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newPrice", "type": "uint256" } ], "name": "setPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_whitelistCost", "type": "uint256" } ], "name": "setWLCost", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_WLMaxMints", "type": "uint256" } ], "name": "setWLMaxMints", "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": "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": [], "name": "whitelistCost", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_users", "type": "address[]" } ], "name": "whitelistUsers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "whitelistedAddresses", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdrawEth", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "wlMaxMints", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
608060405266470de4df8200006008819055610dac6009556064600a818155600b55600c805460ff19169055600d55600e553480156200003e57600080fd5b506040518060400160405280600d81526020016c4d797374696320576f6c76657360981b815250604051806040016040528060028152602001614d5760f01b8152508160009081620000919190620001fb565b506001620000a08282620001fb565b505050620000bd620000b76200010060201b60201c565b62000104565b604051806080016040528060438152602001620025a160439139601090620000e69082620001fb565b506108ae6011556012805460ff19166001179055620002c7565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200018157607f821691505b602082108103620001a257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001f657600081815260208120601f850160051c81016020861015620001d15750805b601f850160051c820191505b81811015620001f257828155600101620001dd565b5050505b505050565b81516001600160401b0381111562000217576200021762000156565b6200022f816200022884546200016c565b84620001a8565b602080601f8311600181146200026757600084156200024e5750858301515b600019600386901b1c1916600185901b178555620001f2565b600085815260208120601f198616915b82811015620002985788860151825594840194600190910190840162000277565b5085821015620002b75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6122ca80620002d76000396000f3fe6080604052600436106102725760003560e01c80637989a2cf1161014f578063c6f6f216116100c1578063e7b99ec71161007a578063e7b99ec71461072d578063e985e9c514610743578063edec5f2714610763578063ee1cc94414610783578063f2fde38b146107a3578063f968adbe146107c357600080fd5b8063c6f6f2161461068d578063c87b56dd146106ad578063d1d19213146106cd578063da0239a6146106ed578063da41f33814610702578063dc88a26a1461071857600080fd5b80639c70b512116101135780639c70b512146105eb578063a0712d6814610605578063a0ef91df14610618578063a22cb4651461062d578063b88d4fde1461064d578063ba4e5c491461066d57600080fd5b80637989a2cf1461054b5780638da5cb5b1461057857806391b7f5ed1461059657806394f0ac14146105b657806395d89b41146105d657600080fd5b80633c952764116101e85780636352211e116101ac5780636352211e146104b557806369b53824146104d55780636c0360eb146104eb57806370a0823114610500578063715018a614610520578063768d71381461053557600080fd5b80633c952764146104155780634046f91a1461043557806342842e0e14610455578063483efda21461047557806355f804b31461049557600080fd5b806318160ddd1161023a57806318160ddd1461034b57806319ccaf051461036057806323b872dd146103805780632a55205a146103a05780632fe8a993146103df5780633af32abf146103f557600080fd5b806301ffc9a71461027757806306fdde03146102ac578063081812fc146102ce578063095ea7b3146103065780630af2c6ca14610328575b600080fd5b34801561028357600080fd5b50610297610292366004611bbd565b6107d9565b60405190151581526020015b60405180910390f35b3480156102b857600080fd5b506102c161080a565b6040516102a39190611c2a565b3480156102da57600080fd5b506102ee6102e9366004611c3d565b61089c565b6040516001600160a01b0390911681526020016102a3565b34801561031257600080fd5b50610326610321366004611c72565b6108c3565b005b34801561033457600080fd5b5061033d6109dd565b6040519081526020016102a3565b34801561035757600080fd5b5060115461033d565b34801561036c57600080fd5b5061032661037b366004611c3d565b6109ed565b34801561038c57600080fd5b5061032661039b366004611c9c565b6109fa565b3480156103ac57600080fd5b506103c06103bb366004611cd8565b610a2b565b604080516001600160a01b0390931683526020830191909152016102a3565b3480156103eb57600080fd5b5061033d600d5481565b34801561040157600080fd5b50610297610410366004611cfa565b610a65565b34801561042157600080fd5b50610326610430366004611d25565b610ace565b34801561044157600080fd5b506014546102ee906001600160a01b031681565b34801561046157600080fd5b50610326610470366004611c9c565b610ae9565b34801561048157600080fd5b50610326610490366004611c3d565b610b04565b3480156104a157600080fd5b506103266104b0366004611dcc565b610b11565b3480156104c157600080fd5b506102ee6104d0366004611c3d565b610b29565b3480156104e157600080fd5b5061033d60095481565b3480156104f757600080fd5b506102c1610b89565b34801561050c57600080fd5b5061033d61051b366004611cfa565b610b98565b34801561052c57600080fd5b50610326610c1e565b34801561054157600080fd5b5061033d600a5481565b34801561055757600080fd5b5061033d610566366004611cfa565b60136020526000908152604090205481565b34801561058457600080fd5b506006546001600160a01b03166102ee565b3480156105a257600080fd5b506103266105b1366004611c3d565b610c32565b3480156105c257600080fd5b506103266105d1366004611cfa565b610c3f565b3480156105e257600080fd5b506102c1610c69565b3480156105f757600080fd5b50600c546102979060ff1681565b610297610613366004611c3d565b610c78565b34801561062457600080fd5b50610326610fe4565b34801561063957600080fd5b50610326610648366004611e15565b611028565b34801561065957600080fd5b50610326610668366004611e48565b611033565b34801561067957600080fd5b506102ee610688366004611c3d565b61106b565b34801561069957600080fd5b506103266106a8366004611c3d565b611095565b3480156106b957600080fd5b506102c16106c8366004611c3d565b6110a2565b3480156106d957600080fd5b506103266106e8366004611c3d565b611159565b3480156106f957600080fd5b5061033d611166565b34801561070e57600080fd5b5061033d60085481565b34801561072457600080fd5b5061032661117d565b34801561073957600080fd5b5061033d600e5481565b34801561074f57600080fd5b5061029761075e366004611ec4565b61120a565b34801561076f57600080fd5b5061032661077e366004611eee565b611238565b34801561078f57600080fd5b5061032661079e366004611d25565b611258565b3480156107af57600080fd5b506103266107be366004611cfa565b611273565b3480156107cf57600080fd5b5061033d600b5481565b6000636ad56fd360e11b6001600160e01b03198316016107fb57506001919050565b610804826112e9565b92915050565b60606000805461081990611f63565b80601f016020809104026020016040519081016040528092919081815260200182805461084590611f63565b80156108925780601f1061086757610100808354040283529160200191610892565b820191906000526020600020905b81548152906001019060200180831161087557829003601f168201915b5050505050905090565b60006108a782611339565b506000908152600460205260409020546001600160a01b031690565b60006108ce82610b29565b9050806001600160a01b0316836001600160a01b0316036109405760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061095c575061095c813361120a565b6109ce5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c00006064820152608401610937565b6109d88383611398565b505050565b60006109e860075490565b905090565b6109f5611406565b600d55565b610a043382611460565b610a205760405162461bcd60e51b815260040161093790611f9d565b6109d88383836114bf565b60145460095460009182916001600160a01b039091169061271090610a509086612001565b610a5a919061202e565b915091509250929050565b6000805b600f54811015610ac557826001600160a01b0316600f8281548110610a9057610a90612042565b6000918252602090912001546001600160a01b031603610ab35750600192915050565b80610abd81612058565b915050610a69565b50600092915050565b610ad6611406565b600c805460ff1916911515919091179055565b6109d883838360405180602001604052806000815250611033565b610b0c611406565b600a55565b610b19611406565b6010610b2582826120bf565b5050565b6000818152600260205260408120546001600160a01b0316806108045760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610937565b60606010805461081990611f63565b60006001600160a01b038216610c025760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610937565b506001600160a01b031660009081526003602052604090205490565b610c26611406565b610c30600061165b565b565b610c3a611406565b600855565b610c47611406565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b60606001805461081990611f63565b60008082118015610c8b5750600b548211155b610cd75760405162461bcd60e51b815260206004820152601760248201527f4572726f723a206d617820706172207478206c696d69740000000000000000006044820152606401610937565b60115482610ce460075490565b610cee919061217f565b1115610d345760405162461bcd60e51b815260206004820152601560248201527413585e1a5b5d5b4814dd5c1c1b1e48135a5b9d1959605a1b6044820152606401610937565b600a54610d4033610b98565b610d4b90600161217f565b1115610da45760405162461bcd60e51b815260206004820152602260248201527f4572726f723a6d6178204e465420706572206164647265737320657863656564604482015261195960f21b6064820152608401610937565b600c5460ff161515600103610ea357610dbc33610a65565b610e085760405162461bcd60e51b815260206004820152601760248201527f75736572206973206e6f742077686974656c69737465640000000000000000006044820152606401610937565b600082118015610e1a5750600d548211155b610e705760405162461bcd60e51b815260206004820152602160248201527f4572726f723a2057686974656c697374206d617820706172207478206c696d696044820152601d60fa1b6064820152608401610937565b81600e54610e7e9190612001565b341015610e9e5760405163356680b760e01b815260040160405180910390fd5b610f43565b60125460ff16610eee5760405162461bcd60e51b815260206004820152601660248201527526b4b73a34b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610937565b81600854610efc9190612001565b341015610f435760405162461bcd60e51b81526020600482015260156024820152742737ba1032b737bab3b41020ab20ac1039b2b73a1760591b6044820152606401610937565b6014546040516001600160a01b03909116903480156108fc02916000818181858888f19350505050158015610f7c573d6000803e3d6000fd5b5060005b82811015610fc0576000610f9360075490565b9050610f9f33826116ad565b610fad600780546001019055565b5080610fb881612058565b915050610f80565b5033600090815260136020526040902054610fdb90836117ef565b50600192915050565b610fec611406565b6006546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611025573d6000803e3d6000fd5b50565b610b25338383611802565b61103d3383611460565b6110595760405162461bcd60e51b815260040161093790611f9d565b611065848484846118d0565b50505050565b600f818154811061107b57600080fd5b6000918252602090912001546001600160a01b0316905081565b61109d611406565b600b55565b6000818152600260205260409020546060906001600160a01b03166111215760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610937565b611129610b89565b61113283611903565b604051602001611143929190612192565b6040516020818303038152906040529050919050565b611161611406565b600e55565b60006109e861117460075490565b60115490611a04565b611185611406565b600160115461119491906121c1565b60075411156111e55760405162461bcd60e51b815260206004820152601c60248201527f50726f6a6563742069732066696e6973686564206d696e74696e672e000000006044820152606401610937565b60006111f060075490565b90506111fc33826116ad565b611025600780546001019055565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b611240611406565b61124c600f6000611b11565b6109d8600f8383611b2f565b611260611406565b6012805460ff1916911515919091179055565b61127b611406565b6001600160a01b0381166112e05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610937565b6110258161165b565b60006001600160e01b031982166380ac58cd60e01b148061131a57506001600160e01b03198216635b5e139f60e01b145b8061080457506301ffc9a760e01b6001600160e01b0319831614610804565b6000818152600260205260409020546001600160a01b03166110255760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610937565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906113cd82610b29565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6006546001600160a01b03163314610c305760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610937565b60008061146c83610b29565b9050806001600160a01b0316846001600160a01b031614806114935750611493818561120a565b806114b75750836001600160a01b03166114ac8461089c565b6001600160a01b0316145b949350505050565b826001600160a01b03166114d282610b29565b6001600160a01b0316146115365760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610937565b6001600160a01b0382166115985760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610937565b6115a3600082611398565b6001600160a01b03831660009081526003602052604081208054600192906115cc9084906121c1565b90915550506001600160a01b03821660009081526003602052604081208054600192906115fa90849061217f565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166117035760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610937565b6000818152600260205260409020546001600160a01b0316156117685760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610937565b6001600160a01b038216600090815260036020526040812080546001929061179190849061217f565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006117fb828461217f565b9392505050565b816001600160a01b0316836001600160a01b0316036118635760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610937565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6118db8484846114bf565b6118e784848484611a10565b6110655760405162461bcd60e51b8152600401610937906121d4565b60608160000361192a5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611954578061193e81612058565b915061194d9050600a8361202e565b915061192e565b60008167ffffffffffffffff81111561196f5761196f611d40565b6040519080825280601f01601f191660200182016040528015611999576020820181803683370190505b5090505b84156114b7576119ae6001836121c1565b91506119bb600a86612226565b6119c690603061217f565b60f81b8183815181106119db576119db612042565b60200101906001600160f81b031916908160001a9053506119fd600a8661202e565b945061199d565b60006117fb82846121c1565b60006001600160a01b0384163b15611b0657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611a5490339089908890889060040161223a565b6020604051808303816000875af1925050508015611a8f575060408051601f3d908101601f19168201909252611a8c91810190612277565b60015b611aec573d808015611abd576040519150601f19603f3d011682016040523d82523d6000602084013e611ac2565b606091505b508051600003611ae45760405162461bcd60e51b8152600401610937906121d4565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506114b7565b506001949350505050565b50805460008255906000526020600020908101906110259190611b92565b828054828255906000526020600020908101928215611b82579160200282015b82811115611b825781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190611b4f565b50611b8e929150611b92565b5090565b5b80821115611b8e5760008155600101611b93565b6001600160e01b03198116811461102557600080fd5b600060208284031215611bcf57600080fd5b81356117fb81611ba7565b60005b83811015611bf5578181015183820152602001611bdd565b50506000910152565b60008151808452611c16816020860160208601611bda565b601f01601f19169290920160200192915050565b6020815260006117fb6020830184611bfe565b600060208284031215611c4f57600080fd5b5035919050565b80356001600160a01b0381168114611c6d57600080fd5b919050565b60008060408385031215611c8557600080fd5b611c8e83611c56565b946020939093013593505050565b600080600060608486031215611cb157600080fd5b611cba84611c56565b9250611cc860208501611c56565b9150604084013590509250925092565b60008060408385031215611ceb57600080fd5b50508035926020909101359150565b600060208284031215611d0c57600080fd5b6117fb82611c56565b80358015158114611c6d57600080fd5b600060208284031215611d3757600080fd5b6117fb82611d15565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611d7157611d71611d40565b604051601f8501601f19908116603f01168101908282118183101715611d9957611d99611d40565b81604052809350858152868686011115611db257600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611dde57600080fd5b813567ffffffffffffffff811115611df557600080fd5b8201601f81018413611e0657600080fd5b6114b784823560208401611d56565b60008060408385031215611e2857600080fd5b611e3183611c56565b9150611e3f60208401611d15565b90509250929050565b60008060008060808587031215611e5e57600080fd5b611e6785611c56565b9350611e7560208601611c56565b925060408501359150606085013567ffffffffffffffff811115611e9857600080fd5b8501601f81018713611ea957600080fd5b611eb887823560208401611d56565b91505092959194509250565b60008060408385031215611ed757600080fd5b611ee083611c56565b9150611e3f60208401611c56565b60008060208385031215611f0157600080fd5b823567ffffffffffffffff80821115611f1957600080fd5b818501915085601f830112611f2d57600080fd5b813581811115611f3c57600080fd5b8660208260051b8501011115611f5157600080fd5b60209290920196919550909350505050565b600181811c90821680611f7757607f821691505b602082108103611f9757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761080457610804611feb565b634e487b7160e01b600052601260045260246000fd5b60008261203d5761203d612018565b500490565b634e487b7160e01b600052603260045260246000fd5b60006001820161206a5761206a611feb565b5060010190565b601f8211156109d857600081815260208120601f850160051c810160208610156120985750805b601f850160051c820191505b818110156120b7578281556001016120a4565b505050505050565b815167ffffffffffffffff8111156120d9576120d9611d40565b6120ed816120e78454611f63565b84612071565b602080601f831160018114612122576000841561210a5750858301515b600019600386901b1c1916600185901b1785556120b7565b600085815260208120601f198616915b8281101561215157888601518255948401946001909101908401612132565b508582101561216f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8082018082111561080457610804611feb565b600083516121a4818460208801611bda565b8351908301906121b8818360208801611bda565b01949350505050565b8181038181111561080457610804611feb565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008261223557612235612018565b500690565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061226d90830184611bfe565b9695505050505050565b60006020828403121561228957600080fd5b81516117fb81611ba756fea264697066735822122028545cfdd7f8b1c454230b7721bce34246008e187c2aca8b85a8a1dcb08aa55e64736f6c63430008120033697066733a2f2f62616679626569636c357863747962686b7563616c62696d6a6d366a6135637a6c6e617432776c66706e65667671757373346b7965377a6a3768612f