[ { "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": "InvalidQueryRange", "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_PURCHASABLE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_SUPPLY", "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": "baseURIExtended", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "explicitOwnershipOf", "outputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "uint64", "name": "startTimestamp", "type": "uint64" }, { "internalType": "bool", "name": "burned", "type": "bool" }, { "internalType": "uint24", "name": "extraData", "type": "uint24" } ], "internalType": "struct IERC721A.TokenOwnership", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "name": "explicitOwnershipsOf", "outputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "uint64", "name": "startTimestamp", "type": "uint64" }, { "internalType": "bool", "name": "burned", "type": "bool" }, { "internalType": "uint24", "name": "extraData", "type": "uint24" } ], "internalType": "struct IERC721A.TokenOwnership[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "extension", "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": "uint256", "name": "numberOfTokens", "type": "uint256" } ], "name": "mint", "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": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "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": "string", "name": "_uri", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_extension", "type": "string" } ], "name": "setExtension", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_payoutAddress", "type": "address" } ], "name": "setRoyaltyPayoutAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "setStartTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newPrice", "type": "uint256" } ], "name": "setTokenPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint96", "name": "_royalties", "type": "uint96" } ], "name": "setTokenRoyalties", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "startTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "tokenPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenRoyalties", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "tokensOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "start", "type": "uint256" }, { "internalType": "uint256", "name": "stop", "type": "uint256" } ], "name": "tokensOfOwnerIn", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6703782dace9d90000600a556000600b556101006040526043608081815290620028ce60a03980516200003b91600c916020909101906200045a565b5060408051808201909152600580825264173539b7b760d91b60209092019182526200006a91600d916200045a565b507fb1c423342bb4f11cdb5b9119c61fb430832c223d0000000000000000000003e8600e55600f80546001600160a01b03191673b1c423342bb4f11cdb5b9119c61fb430832c223d179055348015620000c257600080fd5b50604080518082018252600d81526c4176617820466967687465727360981b60208083019182528351808501909452600684526541564158465360d01b90840152815191929162000116916002916200045a565b5080516200012c9060039060208401906200045a565b505060008055506200013e3362000191565b6001600955620001626200015a6008546001600160a01b031690565b601d620001e3565b600e546200018b906c0100000000000000000000000090046001600160a01b0316600b620001e3565b620005eb565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b620002058282604051806020016040528060008152506200020960201b60201c565b5050565b62000215838362000280565b6001600160a01b0383163b156200027b576000548281035b6001810190620002439060009087908662000359565b62000261576040516368d2bf6b60e11b815260040160405180910390fd5b8181106200022d5781600054146200027857600080fd5b50505b505050565b60005481620002a25760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b17831790558284019083908390600080516020620028ae8339815191528180a4600183015b818114620003315780836000600080516020620028ae833981519152600080a460010162000308565b50816200035057604051622e076360e81b815260040160405180910390fd5b60005550505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906200039090339089908890889060040162000533565b602060405180830381600087803b158015620003ab57600080fd5b505af1925050508015620003de575060408051601f3d908101601f19168201909252620003db9181019062000500565b60015b6200043d573d8080156200040f576040519150601f19603f3d011682016040523d82523d6000602084013e62000414565b606091505b50805162000435576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b8280546200046890620005ae565b90600052602060002090601f0160209004810192826200048c5760008555620004d7565b82601f10620004a757805160ff1916838001178555620004d7565b82800160010185558215620004d7579182015b82811115620004d7578251825591602001919060010190620004ba565b50620004e5929150620004e9565b5090565b5b80821115620004e55760008155600101620004ea565b6000602082840312156200051357600080fd5b81516001600160e01b0319811681146200052c57600080fd5b9392505050565b600060018060a01b038087168352602081871681850152856040850152608060608501528451915081608085015260005b82811015620005825785810182015185820160a00152810162000564565b828111156200059557600060a084870101525b5050601f01601f19169190910160a00195945050505050565b600181811c90821680620005c357607f821691505b60208210811415620005e557634e487b7160e01b600052602260045260246000fd5b50919050565b6122b380620005fb6000396000f3fe60806040526004361061020f5760003560e01c80636a61e5fc1161011857806399a2557a116100a0578063c23dc68f1161006f578063c23dc68f14610624578063c87b56dd14610651578063e4d3d44814610671578063e985e9c514610686578063f2fde38b146106cf57600080fd5b806399a2557a146105b1578063a0712d68146105d1578063a22cb465146105e4578063b88d4fde1461060457600080fd5b80637e2285aa116100e75780637e2285aa1461051b5780637ff9b5961461053b5780638462151c146105515780638da5cb5b1461057e57806395d89b411461059c57600080fd5b80636a61e5fc146104b057806370a08231146104d0578063715018a6146104f057806378e979251461050557600080fd5b80632d5537b01161019b57806342842e0e1161016a57806342842e0e1461040357806345aeefde1461042357806355f804b3146104435780635bbb2177146104635780636352211e1461049057600080fd5b80632d5537b0146103805780632dff84231461039557806332cb6b0c146103cd5780633e0a322d146103e357600080fd5b8063119e4398116101e2578063119e4398146102c557806318160ddd146102e85780631ebdcaae1461030157806323b872dd146103215780632a55205a1461034157600080fd5b806301ffc9a71461021457806306fdde0314610249578063081812fc1461026b578063095ea7b3146102a3575b600080fd5b34801561022057600080fd5b5061023461022f366004611e2b565b6106ef565b60405190151581526020015b60405180910390f35b34801561025557600080fd5b5061025e61071a565b60405161024091906120f6565b34801561027757600080fd5b5061028b610286366004611eae565b6107ac565b6040516001600160a01b039091168152602001610240565b3480156102af57600080fd5b506102c36102be366004611d59565b6107f0565b005b3480156102d157600080fd5b506102da600681565b604051908152602001610240565b3480156102f457600080fd5b50600154600054036102da565b34801561030d57600080fd5b506102c361031c366004611ee9565b610890565b34801561032d57600080fd5b506102c361033c366004611c65565b6108bf565b34801561034d57600080fd5b5061036161035c366004611ec7565b610a50565b604080516001600160a01b039093168352602083019190915201610240565b34801561038c57600080fd5b5061025e610a93565b3480156103a157600080fd5b50600e546103b5906001600160601b031681565b6040516001600160601b039091168152602001610240565b3480156103d957600080fd5b506102da61029a81565b3480156103ef57600080fd5b506102c36103fe366004611eae565b610b21565b34801561040f57600080fd5b506102c361041e366004611c65565b610b2e565b34801561042f57600080fd5b506102c361043e366004611c17565b610b4e565b34801561044f57600080fd5b506102c361045e366004611e65565b610b78565b34801561046f57600080fd5b5061048361047e366004611db6565b610b97565b604051610240919061207c565b34801561049c57600080fd5b5061028b6104ab366004611eae565b610c63565b3480156104bc57600080fd5b506102c36104cb366004611eae565b610c6e565b3480156104dc57600080fd5b506102da6104eb366004611c17565b610c7b565b3480156104fc57600080fd5b506102c3610cca565b34801561051157600080fd5b506102da600b5481565b34801561052757600080fd5b506102c3610536366004611e65565b610cde565b34801561054757600080fd5b506102da600a5481565b34801561055d57600080fd5b5061057161056c366004611c17565b610cf9565b60405161024091906120be565b34801561058a57600080fd5b506008546001600160a01b031661028b565b3480156105a857600080fd5b5061025e610e09565b3480156105bd57600080fd5b506105716105cc366004611d83565b610e18565b6102c36105df366004611eae565b610f96565b3480156105f057600080fd5b506102c36105ff366004611d1d565b61129b565b34801561061057600080fd5b506102c361061f366004611ca1565b611331565b34801561063057600080fd5b5061064461063f366004611eae565b61137b565b6040516102409190612109565b34801561065d57600080fd5b5061025e61066c366004611eae565b6113f3565b34801561067d57600080fd5b5061025e6114a8565b34801561069257600080fd5b506102346106a1366004611c32565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b3480156106db57600080fd5b506102c36106ea366004611c17565b6114b5565b60006001600160e01b0319821663152a902d60e11b148061071457506107148261152e565b92915050565b606060028054610729906121a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610755906121a5565b80156107a25780601f10610777576101008083540402835291602001916107a2565b820191906000526020600020905b81548152906001019060200180831161078557829003601f168201915b5050505050905090565b60006107b78261157c565b6107d4576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b60006107fb82610c63565b9050336001600160a01b038216146108345761081781336106a1565b610834576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6108986115a3565b600e80546bffffffffffffffffffffffff19166001600160601b0392909216919091179055565b60006108ca826115fd565b9050836001600160a01b0316816001600160a01b0316146108fd5760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b0388169091141761094a5761092d86336106a1565b61094a57604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b03851661097157604051633a954ecd60e21b815260040160405180910390fd5b801561097c57600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040902055600160e11b8316610a075760018401600081815260046020526040902054610a05576000548114610a055760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050505050565b600f54600e5460009182916001600160a01b039091169061271090610a7e906001600160601b031686612143565b610a88919061212f565b915091509250929050565b600d8054610aa0906121a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610acc906121a5565b8015610b195780601f10610aee57610100808354040283529160200191610b19565b820191906000526020600020905b815481529060010190602001808311610afc57829003601f168201915b505050505081565b610b296115a3565b600b55565b610b4983838360405180602001604052806000815250611331565b505050565b610b566115a3565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b610b806115a3565b8051610b9390600c906020840190611aec565b5050565b60608160008167ffffffffffffffff811115610bb557610bb5612251565b604051908082528060200260200182016040528015610c0757816020015b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181610bd35790505b50905060005b828114610c5a57610c35868683818110610c2957610c2961223b565b9050602002013561137b565b828281518110610c4757610c4761223b565b6020908102919091010152600101610c0d565b50949350505050565b6000610714826115fd565b610c766115a3565b600a55565b60006001600160a01b038216610ca4576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b610cd26115a3565b610cdc600061165e565b565b610ce66115a3565b8051610b9390600d906020840190611aec565b60606000806000610d0985610c7b565b905060008167ffffffffffffffff811115610d2657610d26612251565b604051908082528060200260200182016040528015610d4f578160200160208202803683370190505b509050610d7c60408051608081018252600080825260208201819052918101829052606081019190915290565b60005b838614610dfd57610d8f816116b0565b9150816040015115610da057610df5565b81516001600160a01b031615610db557815194505b876001600160a01b0316856001600160a01b03161415610df55780838780600101985081518110610de857610de861223b565b6020026020010181815250505b600101610d7f565b50909695505050505050565b606060038054610729906121a5565b6060818310610e3a57604051631960ccad60e11b815260040160405180910390fd5b600080610e4660005490565b905080841115610e54578093505b6000610e5f87610c7b565b905084861015610e7e5785850381811015610e78578091505b50610e82565b5060005b60008167ffffffffffffffff811115610e9d57610e9d612251565b604051908082528060200260200182016040528015610ec6578160200160208202803683370190505b50905081610ed9579350610f8f92505050565b6000610ee48861137b565b905060008160400151610ef5575080515b885b888114158015610f075750848714155b15610f8357610f15816116b0565b9250826040015115610f2657610f7b565b82516001600160a01b031615610f3b57825191505b8a6001600160a01b0316826001600160a01b03161415610f7b5780848880600101995081518110610f6e57610f6e61223b565b6020026020010181815250505b600101610ef7565b50505092835250909150505b9392505050565b323314610ff95760405162461bcd60e51b815260206004820152602660248201527f4156415846533a205468652063616c6c657220697320616e6f7468657220636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b6002600954141561104c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ff0565b6002600955600b544210156110a35760405162461bcd60e51b815260206004820152601a60248201527f4156415846533a2053616c65206973206e6f74206163746976650000000000006044820152606401610ff0565b600081116110f35760405162461bcd60e51b815260206004820152601f60248201527f4156415846533a204d696e696d756d206d696e74206973203120746f6b656e006044820152606401610ff0565b60068111156111505760405162461bcd60e51b8152602060048201526024808201527f4156415846533a2050757263686173652065786365656473206d617820616c6c6044820152631bddd95960e21b6064820152608401610ff0565b61029a816111616001546000540390565b61116b9190612117565b11156111ca5760405162461bcd60e51b815260206004820152602860248201527f4156415846533a20507572636861736520776f756c6420657863656564204d41604482015267585f535550504c5960c01b6064820152608401610ff0565b60006111de6008546001600160a01b031690565b6001600160a01b03163460405160006040518083038185875af1925050503d8060008114611228576040519150601f19603f3d011682016040523d82523d6000602084013e61122d565b606091505b50509050806112885760405162461bcd60e51b815260206004820152602160248201527f4156415846533a204661696c656420746f207472616e736665722066756e64736044820152601760f91b6064820152608401610ff0565b61129233836116ec565b50506001600955565b6001600160a01b0382163314156112c55760405163b06307db60e01b815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61133c8484846108bf565b6001600160a01b0383163b156113755761135884848484611706565b611375576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845290830182905293820181905292810183905290915060005483106113cf5792915050565b6113d8836116b0565b90508060400151156113ea5792915050565b610f8f836117fe565b60606113fe8261157c565b61144a5760405162461bcd60e51b815260206004820152601c60248201527f4156415846533a20546f6b656e20646f6573206e6f74206578697374000000006044820152606401610ff0565b6000611454611833565b905060008151116114745760405180602001604052806000815250610f8f565b8061147e84611842565b600d60405160200161149293929190611f7b565b6040516020818303038152906040529392505050565b600c8054610aa0906121a5565b6114bd6115a3565b6001600160a01b0381166115225760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ff0565b61152b8161165e565b50565b60006301ffc9a760e01b6001600160e01b03198316148061155f57506380ac58cd60e01b6001600160e01b03198316145b806107145750506001600160e01b031916635b5e139f60e01b1490565b6000805482108015610714575050600090815260046020526040902054600160e01b161590565b6008546001600160a01b03163314610cdc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ff0565b60008160005481101561164557600081815260046020526040902054600160e01b8116611643575b80610f8f575060001901600081815260046020526040902054611625565b505b604051636f96cda160e11b815260040160405180910390fd5b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60408051608081018252600080825260208201819052918101829052606081019190915260008281526004602052604090205461071490611940565b610b93828260405180602001604052806000815250611988565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a029061173b90339089908890889060040161203f565b602060405180830381600087803b15801561175557600080fd5b505af1925050508015611785575060408051601f3d908101601f1916820190925261178291810190611e48565b60015b6117e0573d8080156117b3576040519150601f19603f3d011682016040523d82523d6000602084013e6117b8565b606091505b5080516117d8576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b60408051608081018252600080825260208201819052918101829052606081019190915261071461182e836115fd565b611940565b6060600c8054610729906121a5565b6060816118665750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611890578061187a816121e0565b91506118899050600a8361212f565b915061186a565b60008167ffffffffffffffff8111156118ab576118ab612251565b6040519080825280601f01601f1916602001820160405280156118d5576020820181803683370190505b5090505b84156117f6576118ea600183612162565b91506118f7600a866121fb565b611902906030612117565b60f81b8183815181106119175761191761223b565b60200101906001600160f81b031916908160001a905350611939600a8661212f565b94506118d9565b604080516080810182526001600160a01b038316815260a083901c67ffffffffffffffff166020820152600160e01b831615159181019190915260e89190911c606082015290565b61199283836119f5565b6001600160a01b0383163b15610b49576000548281035b6119bc6000868380600101945086611706565b6119d9576040516368d2bf6b60e11b815260040160405180910390fd5b8181106119a95781600054146119ee57600080fd5b5050505050565b60005481611a165760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b818114611ac557808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101611a8d565b5081611ae357604051622e076360e81b815260040160405180910390fd5b60005550505050565b828054611af8906121a5565b90600052602060002090601f016020900481019282611b1a5760008555611b60565b82601f10611b3357805160ff1916838001178555611b60565b82800160010185558215611b60579182015b82811115611b60578251825591602001919060010190611b45565b50611b6c929150611b70565b5090565b5b80821115611b6c5760008155600101611b71565b600067ffffffffffffffff80841115611ba057611ba0612251565b604051601f8501601f19908116603f01168101908282118183101715611bc857611bc8612251565b81604052809350858152868686011115611be157600080fd5b858560208301376000602087830101525050509392505050565b80356001600160a01b0381168114611c1257600080fd5b919050565b600060208284031215611c2957600080fd5b610f8f82611bfb565b60008060408385031215611c4557600080fd5b611c4e83611bfb565b9150611c5c60208401611bfb565b90509250929050565b600080600060608486031215611c7a57600080fd5b611c8384611bfb565b9250611c9160208501611bfb565b9150604084013590509250925092565b60008060008060808587031215611cb757600080fd5b611cc085611bfb565b9350611cce60208601611bfb565b925060408501359150606085013567ffffffffffffffff811115611cf157600080fd5b8501601f81018713611d0257600080fd5b611d1187823560208401611b85565b91505092959194509250565b60008060408385031215611d3057600080fd5b611d3983611bfb565b915060208301358015158114611d4e57600080fd5b809150509250929050565b60008060408385031215611d6c57600080fd5b611d7583611bfb565b946020939093013593505050565b600080600060608486031215611d9857600080fd5b611da184611bfb565b95602085013595506040909401359392505050565b60008060208385031215611dc957600080fd5b823567ffffffffffffffff80821115611de157600080fd5b818501915085601f830112611df557600080fd5b813581811115611e0457600080fd5b8660208260051b8501011115611e1957600080fd5b60209290920196919550909350505050565b600060208284031215611e3d57600080fd5b8135610f8f81612267565b600060208284031215611e5a57600080fd5b8151610f8f81612267565b600060208284031215611e7757600080fd5b813567ffffffffffffffff811115611e8e57600080fd5b8201601f81018413611e9f57600080fd5b6117f684823560208401611b85565b600060208284031215611ec057600080fd5b5035919050565b60008060408385031215611eda57600080fd5b50508035926020909101359150565b600060208284031215611efb57600080fd5b81356001600160601b0381168114610f8f57600080fd5b60008151808452611f2a816020860160208601612179565b601f01601f19169290920160200192915050565b80516001600160a01b0316825260208082015167ffffffffffffffff169083015260408082015115159083015260609081015162ffffff16910152565b600084516020611f8e8285838a01612179565b855191840191611fa18184848a01612179565b8554920191600090600181811c9080831680611fbe57607f831692505b858310811415611fdc57634e487b7160e01b85526022600452602485fd5b808015611ff057600181146120015761202e565b60ff1985168852838801955061202e565b60008b81526020902060005b858110156120265781548a82015290840190880161200d565b505083880195505b50939b9a5050505050505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061207290830184611f12565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610dfd576120ab838551611f3e565b9284019260809290920191600101612098565b6020808252825182820181905260009190848201906040850190845b81811015610dfd578351835292840192918401916001016120da565b602081526000610f8f6020830184611f12565b608081016107148284611f3e565b6000821982111561212a5761212a61220f565b500190565b60008261213e5761213e612225565b500490565b600081600019048311821515161561215d5761215d61220f565b500290565b6000828210156121745761217461220f565b500390565b60005b8381101561219457818101518382015260200161217c565b838111156113755750506000910152565b600181811c908216806121b957607f821691505b602082108114156121da57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156121f4576121f461220f565b5060010190565b60008261220a5761220a612225565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461152b57600080fdfea264697066735822122095ee1268c6b8f78e545c3bdb05a7ff471bb611e89d237d9f12983278b8e8f99a64736f6c63430008070033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef697066733a2f2f62616679626569636533616261706e6477706161736a3434656362366c693536747371737570716a7975357a697a7261617572766d767167646b342f