[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "ApproveToCaller", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "MintERC2309QuantityExceedsLimit", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "OwnershipNotInitializedForExtraData", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "URIQueryForNonexistentToken", "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": "uint256", "name": "fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "toTokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "ConsecutiveTransfer", "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": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_addresses", "type": "address[]" } ], "name": "addAllowList", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "addressMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "allowList", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "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": "baseExtension", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cost", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "flipAllowList", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "flipPaused", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "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": "maxPerTx", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxPerWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "onlyAllowList", "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": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "royalty", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "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": "uint256", "name": "_newAmount", "type": "uint256" } ], "name": "setMaxPerTx", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newAmount", "type": "uint256" } ], "name": "setMaxPerWallet", "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": [ { "internalType": "string", "name": "_newExtension", "type": "string" } ], "name": "updateBaseExtension", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newURI", "type": "string" } ], "name": "updateBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newAmount", "type": "uint256" } ], "name": "updateCost", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newAmount", "type": "uint256" } ], "name": "updateRoyalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
61010060405260436080818152906200222e60a03980516200002a91600a9160209091019062000265565b5060408051808201909152600580825264173539b7b760d91b60209092019182526200005991600b9162000265565b50600c805461ffff1916905566470de4df820000600d556103e8600e55600a600f556101f46010553480156200008e57600080fd5b506040518060400160405280600c81526020016b6c696f6e736b726973686e6160a01b8152506040518060400160405280600c81526020016b4c494f4e534b524953484e4160a01b8152508160029080519060200190620000f192919062000265565b5080516200010790600390602084019062000265565b50506001600055506200011a3362000133565b60016009556200012d336107d062000185565b62000347565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000805490829003620001ab5760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b17831790558284019083908390600080516020620022718339815191528180a4600183015b8181146200023a578083600060008051602062002271833981519152600080a460010162000211565b50816000036200025c57604051622e076360e81b815260040160405180910390fd5b60005550505050565b82805462000273906200030b565b90600052602060002090601f016020900481019282620002975760008555620002e2565b82601f10620002b257805160ff1916838001178555620002e2565b82800160010185558215620002e2579182015b82811115620002e2578251825591602001919060010190620002c5565b50620002f0929150620002f4565b5090565b5b80821115620002f05760008155600101620002f5565b600181811c908216806200032057607f821691505b6020821081036200034157634e487b7160e01b600052602260045260246000fd5b50919050565b611ed780620003576000396000f3fe6080604052600436106102305760003560e01c80635c975abb1161012e578063a22cb465116100ab578063e268e4d31161006f578063e268e4d314610672578063e985e9c514610692578063f2fde38b146106db578063f968adbe146106fb578063fa30297e1461071157600080fd5b8063a22cb465146105dd578063b88d4fde146105fd578063c66828621461061d578063c6f6f21614610632578063c87b56dd1461065257600080fd5b80638da5cb5b116100f25780638da5cb5b146105575780638fffd8b514610575578063931688cb1461059557806395d89b41146105b5578063a0712d68146105ca57600080fd5b80635c975abb146104d35780636352211e146104ed5780636c0360eb1461050d57806370a0823114610522578063715018a61461054257600080fd5b8063252e3ab9116101bc5780633232c10b116101805780633232c10b1461045257806332cb6b0c14610472578063333171bb1461048857806342842e0e1461049d578063453c2310146104bd57600080fd5b8063252e3ab91461037c578063255323ff1461039b5780632848aeaf146103bb57806329ee566c146103fd5780632a55205a1461041357600080fd5b806313faede61161020357806313faede6146102e657806318160ddd1461030a57806320843e871461032757806323b872dd1461033c57806323c5a0881461035c57600080fd5b806301ffc9a71461023557806306fdde031461026a578063081812fc1461028c578063095ea7b3146102c4575b600080fd5b34801561024157600080fd5b5061025561025036600461187b565b61073e565b60405190151581526020015b60405180910390f35b34801561027657600080fd5b5061027f610769565b60405161026191906118f0565b34801561029857600080fd5b506102ac6102a7366004611903565b6107fb565b6040516001600160a01b039091168152602001610261565b3480156102d057600080fd5b506102e46102df366004611938565b61083f565b005b3480156102f257600080fd5b506102fc600d5481565b604051908152602001610261565b34801561031657600080fd5b5060015460005403600019016102fc565b34801561033357600080fd5b506102e46108df565b34801561034857600080fd5b506102e4610357366004611962565b610904565b34801561036857600080fd5b506102e4610377366004611903565b610a9c565b34801561038857600080fd5b50600c5461025590610100900460ff1681565b3480156103a757600080fd5b506102e46103b636600461199e565b610aa9565b3480156103c757600080fd5b506103eb6103d6366004611a13565b60116020526000908152604090205460ff1681565b60405160ff9091168152602001610261565b34801561040957600080fd5b506102fc600e5481565b34801561041f57600080fd5b5061043361042e366004611a2e565b610b2b565b604080516001600160a01b039093168352602083019190915201610261565b34801561045e57600080fd5b506102e461046d366004611adc565b610b66565b34801561047e57600080fd5b506102fc610fa081565b34801561049457600080fd5b506102e4610b85565b3480156104a957600080fd5b506102e46104b8366004611962565b610ba1565b3480156104c957600080fd5b506102fc60105481565b3480156104df57600080fd5b50600c546102559060ff1681565b3480156104f957600080fd5b506102ac610508366004611903565b610bbc565b34801561051957600080fd5b5061027f610bc7565b34801561052e57600080fd5b506102fc61053d366004611a13565b610c55565b34801561054e57600080fd5b506102e4610ca4565b34801561056357600080fd5b506008546001600160a01b03166102ac565b34801561058157600080fd5b506102e4610590366004611903565b610cb8565b3480156105a157600080fd5b506102e46105b0366004611b25565b610cc5565b3480156105c157600080fd5b5061027f610cd9565b6102e46105d8366004611903565b610ce8565b3480156105e957600080fd5b506102e46105f8366004611b85565b6110c2565b34801561060957600080fd5b506102e4610618366004611bc1565b611157565b34801561062957600080fd5b5061027f6111a1565b34801561063e57600080fd5b506102e461064d366004611903565b6111ae565b34801561065e57600080fd5b5061027f61066d366004611903565b6111bb565b34801561067e57600080fd5b506102e461068d366004611903565b611242565b34801561069e57600080fd5b506102556106ad366004611c3d565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b3480156106e757600080fd5b506102e46106f6366004611a13565b61124f565b34801561070757600080fd5b506102fc600f5481565b34801561071d57600080fd5b506102fc61072c366004611a13565b60126020526000908152604090205481565b60006001600160e01b0319821663152a902d60e11b14806107635750610763826112c8565b92915050565b60606002805461077890611c70565b80601f01602080910402602001604051908101604052809291908181526020018280546107a490611c70565b80156107f15780601f106107c6576101008083540402835291602001916107f1565b820191906000526020600020905b8154815290600101906020018083116107d457829003601f168201915b5050505050905090565b600061080682611316565b610823576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b600061084a82610bbc565b9050336001600160a01b038216146108835761086681336106ad565b610883576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6108e761134b565b600c805461ff001981166101009182900460ff1615909102179055565b600061090f826113a5565b9050836001600160a01b0316816001600160a01b0316146109425760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b0388169091141761098f5761097286336106ad565b61098f57604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b0385166109b657604051633a954ecd60e21b815260040160405180910390fd5b80156109c157600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b84169003610a5357600184016000818152600460205260408120549003610a51576000548114610a515760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050505050565b610aa461134b565b600d55565b610ab161134b565b60005b81811015610b2657600160116000858585818110610ad457610ad4611caa565b9050602002016020810190610ae99190611a13565b6001600160a01b031681526020810191909152604001600020805460ff191660ff9290921691909117905580610b1e81611cd6565b915050610ab4565b505050565b600080610b406008546001600160a01b031690565b612710600e5485610b519190611cef565b610b5b9190611d24565b915091509250929050565b610b6e61134b565b8051610b8190600b906020840190611758565b5050565b610b8d61134b565b600c805460ff19811660ff90911615179055565b610b2683838360405180602001604052806000815250611157565b6000610763826113a5565b600a8054610bd490611c70565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0090611c70565b8015610c4d5780601f10610c2257610100808354040283529160200191610c4d565b820191906000526020600020905b815481529060010190602001808311610c3057829003601f168201915b505050505081565b60006001600160a01b038216610c7e576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b610cac61134b565b610cb6600061141b565b565b610cc061134b565b600e55565b610ccd61134b565b610b26600a83836117dc565b60606003805461077890611c70565b600260095403610d3f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600955600154600054610fa09183910360001901610d5f9190611d38565b1115610da65760405162461bcd60e51b8152602060048201526016602482015275416d6f756e74206578636565647320737570706c792160501b6044820152606401610d36565b6008546001600160a01b03163314610fcb57600c54610100900460ff1615610e6b573360009081526011602052604090205460ff16600114610e6b5760405162461bcd60e51b815260206004820152605260248201527f596f75206172656e2774206f6e20416c6c6f77204c69737421204f6e6c79206660448201527f6f72206f776e657273206f6620536d6f6c20536172616d74756c6120417065736064820152711030b7321029b6b7b6102a30b635b2b9399760711b608482015260a401610d36565b600f548111158015610e99575060105433600090815260126020526040902054610e96908390611d38565b11155b610f315760405162461bcd60e51b815260206004820152605760248201527f596f752063616e2774206d696e742074686174206d616e7921204f6e6c79203160448201527f2046726565204d696e7421205761697420756e74696c205765646e657364617960648201527f2c204a756c7920323620746f206d696e74206d6f726521000000000000000000608482015260a401610d36565b600c5460ff1615610f795760405162461bcd60e51b81526020600482015260126024820152714d696e74696e67206973207061757365642160701b6044820152606401610d36565b80600d54610f879190611cef565b3414610fcb5760405162461bcd60e51b8152602060048201526013602482015272496e73756666696369656e742066756e64732160681b6044820152606401610d36565b6000610fdf6008546001600160a01b031690565b6001600160a01b03163460405160006040518083038185875af1925050503d8060008114611029576040519150601f19603f3d011682016040523d82523d6000602084013e61102e565b606091505b505090508061108a5760405162461bcd60e51b815260206004820152602260248201527f4661696c656420746f207472616e736665722066756e647320746f206f776e65604482015261722160f01b6064820152608401610d36565b33600090815260126020526040812080548492906110a9908490611d38565b909155506110b99050338361146d565b50506001600955565b336001600160a01b038316036110eb5760405163b06307db60e01b815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b611162848484610904565b6001600160a01b0383163b1561119b5761117e8484848461156b565b61119b576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b600b8054610bd490611c70565b6111b661134b565b600f55565b60606111c682611316565b6111e357604051630a14c4b560e41b815260040160405180910390fd5b600a80546111f090611c70565b905060000361120e5760405180602001604052806000815250610763565b600a61121983611657565b600b60405160200161122d93929190611de9565b60405160208183030381529060405292915050565b61124a61134b565b601055565b61125761134b565b6001600160a01b0381166112bc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610d36565b6112c58161141b565b50565b60006301ffc9a760e01b6001600160e01b0319831614806112f957506380ac58cd60e01b6001600160e01b03198316145b806107635750506001600160e01b031916635b5e139f60e01b1490565b60008160011115801561132a575060005482105b8015610763575050600090815260046020526040902054600160e01b161590565b6008546001600160a01b03163314610cb65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d36565b60008180600111611402576000548110156114025760008181526004602052604081205490600160e01b82169003611400575b806000036113f95750600019016000818152600460205260409020546113d8565b9392505050565b505b604051636f96cda160e11b815260040160405180910390fd5b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008054908290036114925760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461154157808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101611509565b508160000361156257604051622e076360e81b815260040160405180910390fd5b60005550505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906115a0903390899088908890600401611e1c565b6020604051808303816000875af19250505080156115db575060408051601f3d908101601f191682019092526115d891810190611e59565b60015b611639573d808015611609576040519150601f19603f3d011682016040523d82523d6000602084013e61160e565b606091505b508051600003611631576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b60608160000361167e5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156116a8578061169281611cd6565b91506116a19050600a83611d24565b9150611682565b60008167ffffffffffffffff8111156116c3576116c3611a50565b6040519080825280601f01601f1916602001820160405280156116ed576020820181803683370190505b5090505b841561164f57611702600183611e76565b915061170f600a86611e8d565b61171a906030611d38565b60f81b81838151811061172f5761172f611caa565b60200101906001600160f81b031916908160001a905350611751600a86611d24565b94506116f1565b82805461176490611c70565b90600052602060002090601f01602090048101928261178657600085556117cc565b82601f1061179f57805160ff19168380011785556117cc565b828001600101855582156117cc579182015b828111156117cc5782518255916020019190600101906117b1565b506117d8929150611850565b5090565b8280546117e890611c70565b90600052602060002090601f01602090048101928261180a57600085556117cc565b82601f106118235782800160ff198235161785556117cc565b828001600101855582156117cc579182015b828111156117cc578235825591602001919060010190611835565b5b808211156117d85760008155600101611851565b6001600160e01b0319811681146112c557600080fd5b60006020828403121561188d57600080fd5b81356113f981611865565b60005b838110156118b357818101518382015260200161189b565b8381111561119b5750506000910152565b600081518084526118dc816020860160208601611898565b601f01601f19169290920160200192915050565b6020815260006113f960208301846118c4565b60006020828403121561191557600080fd5b5035919050565b80356001600160a01b038116811461193357600080fd5b919050565b6000806040838503121561194b57600080fd5b6119548361191c565b946020939093013593505050565b60008060006060848603121561197757600080fd5b6119808461191c565b925061198e6020850161191c565b9150604084013590509250925092565b600080602083850312156119b157600080fd5b823567ffffffffffffffff808211156119c957600080fd5b818501915085601f8301126119dd57600080fd5b8135818111156119ec57600080fd5b8660208260051b8501011115611a0157600080fd5b60209290920196919550909350505050565b600060208284031215611a2557600080fd5b6113f98261191c565b60008060408385031215611a4157600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611a8157611a81611a50565b604051601f8501601f19908116603f01168101908282118183101715611aa957611aa9611a50565b81604052809350858152868686011115611ac257600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611aee57600080fd5b813567ffffffffffffffff811115611b0557600080fd5b8201601f81018413611b1657600080fd5b61164f84823560208401611a66565b60008060208385031215611b3857600080fd5b823567ffffffffffffffff80821115611b5057600080fd5b818501915085601f830112611b6457600080fd5b813581811115611b7357600080fd5b866020828501011115611a0157600080fd5b60008060408385031215611b9857600080fd5b611ba18361191c565b915060208301358015158114611bb657600080fd5b809150509250929050565b60008060008060808587031215611bd757600080fd5b611be08561191c565b9350611bee6020860161191c565b925060408501359150606085013567ffffffffffffffff811115611c1157600080fd5b8501601f81018713611c2257600080fd5b611c3187823560208401611a66565b91505092959194509250565b60008060408385031215611c5057600080fd5b611c598361191c565b9150611c676020840161191c565b90509250929050565b600181811c90821680611c8457607f821691505b602082108103611ca457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611ce857611ce8611cc0565b5060010190565b6000816000190483118215151615611d0957611d09611cc0565b500290565b634e487b7160e01b600052601260045260246000fd5b600082611d3357611d33611d0e565b500490565b60008219821115611d4b57611d4b611cc0565b500190565b8054600090600181811c9080831680611d6a57607f831692505b60208084108203611d8b57634e487b7160e01b600052602260045260246000fd5b818015611d9f5760018114611db057611ddd565b60ff19861689528489019650611ddd565b60008881526020902060005b86811015611dd55781548b820152908501908301611dbc565b505084890196505b50505050505092915050565b6000611df58286611d50565b8451611e05818360208901611898565b611e1181830186611d50565b979650505050505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611e4f908301846118c4565b9695505050505050565b600060208284031215611e6b57600080fd5b81516113f981611865565b600082821015611e8857611e88611cc0565b500390565b600082611e9c57611e9c611d0e565b50069056fea2646970667358221220e80bebf4b35b8d4cb26265acae44e03b0e5a65a503b8ea3699756cd42aa0982f64736f6c634300080d0033697066733a2f2f6261667962656961683537636e37696f79616176796b34347179666a7471657366326c6e676f7278327771796470686b32346a707568756a646b652fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef