[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "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": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "bridgeMint", "outputs": [], "stateMutability": "nonpayable", "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": [ { "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": "maxNFT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintedNFT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "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": "payable", "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": "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": [ { "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": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526127106009556000600a553480156200001c57600080fd5b50604080518082018252600c8082526b115d9bde0810d85c1a5d185b60a21b6020808401828152855180870190965292855284015281519192916200006491600291620001d0565b5080516200007a906003906020840190620001d0565b505060008055506200008c336200009d565b6200009732620000ef565b620002b3565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b620000f962000172565b6001600160a01b038116620001645760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6200016f816200009d565b50565b6008546001600160a01b03163314620001ce5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200015b565b565b828054620001de9062000276565b90600052602060002090601f0160209004810192826200020257600085556200024d565b82601f106200021d57805160ff19168380011785556200024d565b828001600101855582156200024d579182015b828111156200024d57825182559160200191906001019062000230565b506200025b9291506200025f565b5090565b5b808211156200025b576000815560010162000260565b600181811c908216806200028b57607f821691505b60208210811415620002ad57634e487b7160e01b600052602260045260246000fd5b50919050565b611e5880620002c36000396000f3fe6080604052600436106101965760003560e01c8063715018a6116100e1578063a22cb4651161008a578063c87b56dd11610064578063c87b56dd14610440578063e456b01c14610460578063e985e9c514610476578063f2fde38b146104bf57600080fd5b8063a22cb465146103e0578063b88d4fde14610400578063c23dc68f1461041357600080fd5b80638da5cb5b116100bb5780638da5cb5b1461038d57806395d89b41146103ab57806399a2557a146103c057600080fd5b8063715018a61461032b5780638462151c146103405780638c2a993e1461036d57600080fd5b806342842e0e116101435780636352211e1161011d5780636352211e146102d55780636f0b7871146102f557806370a082311461030b57600080fd5b806342842e0e1461027557806355f804b3146102885780635bbb2177146102a857600080fd5b8063095ea7b311610174578063095ea7b31461022a57806318160ddd1461023f57806323b872dd1461026257600080fd5b806301ffc9a71461019b57806306fdde03146101d0578063081812fc146101f2575b600080fd5b3480156101a757600080fd5b506101bb6101b63660046117e2565b6104df565b60405190151581526020015b60405180910390f35b3480156101dc57600080fd5b506101e56105c4565b6040516101c79190611857565b3480156101fe57600080fd5b5061021261020d36600461186a565b610656565b6040516001600160a01b0390911681526020016101c7565b61023d61023836600461189f565b6106b3565b005b34801561024b57600080fd5b50600154600054035b6040519081526020016101c7565b61023d6102703660046118c9565b610784565b61023d6102833660046118c9565b610993565b34801561029457600080fd5b5061023d6102a3366004611905565b6109b3565b3480156102b457600080fd5b506102c86102c3366004611977565b6109c7565b6040516101c791906119da565b3480156102e157600080fd5b506102126102f036600461186a565b610a93565b34801561030157600080fd5b50610254600a5481565b34801561031757600080fd5b50610254610326366004611a57565b610a9e565b34801561033757600080fd5b5061023d610b06565b34801561034c57600080fd5b5061036061035b366004611a57565b610b1a565b6040516101c79190611a72565b34801561037957600080fd5b5061023d61038836600461189f565b610c22565b34801561039957600080fd5b506008546001600160a01b0316610212565b3480156103b757600080fd5b506101e5610cb3565b3480156103cc57600080fd5b506103606103db366004611aaa565b610cc2565b3480156103ec57600080fd5b5061023d6103fb366004611add565b610e59565b61023d61040e366004611b2f565b610ec5565b34801561041f57600080fd5b5061043361042e36600461186a565b610f28565b6040516101c79190611c0b565b34801561044c57600080fd5b506101e561045b36600461186a565b610fa0565b34801561046c57600080fd5b5061025460095481565b34801561048257600080fd5b506101bb610491366004611c50565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b3480156104cb57600080fd5b5061023d6104da366004611a57565b611078565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061057257507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b806105be57507f5b5e139f000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600280546105d390611c83565b80601f01602080910402602001604051908101604052809291908181526020018280546105ff90611c83565b801561064c5780601f106106215761010080835404028352916020019161064c565b820191906000526020600020905b81548152906001019060200180831161062f57829003601f168201915b5050505050905090565b600061066182611108565b610697576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b60006106be82610a93565b9050336001600160a01b03821614610710576106da8133610491565b610710576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b600061078f8261112f565b9050836001600160a01b0316816001600160a01b0316146107dc576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b038816909114176108425761080c8633610491565b610842576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038516610882576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801561088d57600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b177c0200000000000000000000000000000000000000000000000000000000176000858152600460205260409020557c0200000000000000000000000000000000000000000000000000000000831661094a57600184016000818152600460205260409020546109485760005481146109485760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050505050565b6109ae83838360405180602001604052806000815250610ec5565b505050565b6109bb6111a9565b6109ae600b838361171b565b60608160008167ffffffffffffffff8111156109e5576109e5611b19565b604051908082528060200260200182016040528015610a3757816020015b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181610a035790505b50905060005b828114610a8a57610a65868683818110610a5957610a59611cbe565b90506020020135610f28565b828281518110610a7757610a77611cbe565b6020908102919091010152600101610a3d565b50949350505050565b60006105be8261112f565b60006001600160a01b038216610ae0576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b610b0e6111a9565b610b186000611203565b565b60606000806000610b2a85610a9e565b905060008167ffffffffffffffff811115610b4757610b47611b19565b604051908082528060200260200182016040528015610b70578160200160208202803683370190505b5060408051608081018252600080825260208201819052918101829052606081018290529192505b838614610c1657610ba88161126d565b9150816040015115610bb957610c0e565b81516001600160a01b031615610bce57815194505b876001600160a01b0316856001600160a01b03161415610c0e5780838780600101985081518110610c0157610c01611cbe565b6020026020010181815250505b600101610b98565b50909695505050505050565b610c2a6111a9565b60095481600a54610c3b9190611cea565b1115610c8e5760405162461bcd60e51b815260206004820152601d60248201527f45766f784361706974616c4572633732313a204d617820737570706c7900000060448201526064015b60405180910390fd5b610c9882826112ec565b80600a6000828254610caa9190611cea565b90915550505050565b6060600380546105d390611c83565b6060818310610cfd576040517f32c1995a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610d0960005490565b905080841115610d17578093505b6000610d2287610a9e565b905084861015610d415785850381811015610d3b578091505b50610d45565b5060005b60008167ffffffffffffffff811115610d6057610d60611b19565b604051908082528060200260200182016040528015610d89578160200160208202803683370190505b50905081610d9c579350610e5292505050565b6000610da788610f28565b905060008160400151610db8575080515b885b888114158015610dca5750848714155b15610e4657610dd88161126d565b9250826040015115610de957610e3e565b82516001600160a01b031615610dfe57825191505b8a6001600160a01b0316826001600160a01b03161415610e3e5780848880600101995081518110610e3157610e31611cbe565b6020026020010181815250505b600101610dba565b50505092835250909150505b9392505050565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610ed0848484610784565b6001600160a01b0383163b15610f2257610eec84848484611416565b610f22576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6040805160808082018352600080835260208084018290528385018290526060808501839052855193840186528284529083018290529382018190529281018390529091506000548310610f7c5792915050565b610f858361126d565b9050806040015115610f975792915050565b610e5283611562565b6060610fab82611108565b61101d5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610c85565b60006110276115da565b905060008151116110475760405180602001604052806000815250610e52565b80611051846115e9565b604051602001611062929190611d02565b6040516020818303038152906040529392505050565b6110806111a9565b6001600160a01b0381166110fc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610c85565b61110581611203565b50565b60008054821080156105be575050600090815260046020526040902054600160e01b161590565b60008160005481101561117757600081815260046020526040902054600160e01b8116611175575b80610e52575060001901600081815260046020526040902054611157565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6008546001600160a01b03163314610b185760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c85565b600880546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040805160808101825260008082526020820181905291810182905260608101919091526000828152600460205260409020546105be90604080516080810182526001600160a01b038316815260a083901c67ffffffffffffffff166020820152600160e01b831615159181019190915260e89190911c606082015290565b60005481611326576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146113d557808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a460010161139d565b508161140d576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005550505050565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081526000906001600160a01b0385169063150b7a0290611464903390899088908890600401611d59565b6020604051808303816000875af192505050801561149f575060408051601f3d908101601f1916820190925261149c91810190611d95565b60015b611513573d8080156114cd576040519150601f19603f3d011682016040523d82523d6000602084013e6114d2565b606091505b50805161150b576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490505b949350505050565b6040805160808101825260008082526020820181905291810182905260608101919091526105be6115928361112f565b604080516080810182526001600160a01b038316815260a083901c67ffffffffffffffff166020820152600160e01b831615159181019190915260e89190911c606082015290565b6060600b80546105d390611c83565b60608161162957505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611653578061163d81611db2565b915061164c9050600a83611de3565b915061162d565b60008167ffffffffffffffff81111561166e5761166e611b19565b6040519080825280601f01601f191660200182016040528015611698576020820181803683370190505b5090505b841561155a576116ad600183611df7565b91506116ba600a86611e0e565b6116c5906030611cea565b60f81b8183815181106116da576116da611cbe565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611714600a86611de3565b945061169c565b82805461172790611c83565b90600052602060002090601f016020900481019282611749576000855561178f565b82601f106117625782800160ff1982351617855561178f565b8280016001018555821561178f579182015b8281111561178f578235825591602001919060010190611774565b5061179b92915061179f565b5090565b5b8082111561179b57600081556001016117a0565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461110557600080fd5b6000602082840312156117f457600080fd5b8135610e52816117b4565b60005b8381101561181a578181015183820152602001611802565b83811115610f225750506000910152565b600081518084526118438160208601602086016117ff565b601f01601f19169290920160200192915050565b602081526000610e52602083018461182b565b60006020828403121561187c57600080fd5b5035919050565b80356001600160a01b038116811461189a57600080fd5b919050565b600080604083850312156118b257600080fd5b6118bb83611883565b946020939093013593505050565b6000806000606084860312156118de57600080fd5b6118e784611883565b92506118f560208501611883565b9150604084013590509250925092565b6000806020838503121561191857600080fd5b823567ffffffffffffffff8082111561193057600080fd5b818501915085601f83011261194457600080fd5b81358181111561195357600080fd5b86602082850101111561196557600080fd5b60209290920196919550909350505050565b6000806020838503121561198a57600080fd5b823567ffffffffffffffff808211156119a257600080fd5b818501915085601f8301126119b657600080fd5b8135818111156119c557600080fd5b8660208260051b850101111561196557600080fd5b6020808252825182820181905260009190848201906040850190845b81811015610c1657611a448385516001600160a01b03815116825267ffffffffffffffff602082015116602083015260408101511515604083015262ffffff60608201511660608301525050565b92840192608092909201916001016119f6565b600060208284031215611a6957600080fd5b610e5282611883565b6020808252825182820181905260009190848201906040850190845b81811015610c1657835183529284019291840191600101611a8e565b600080600060608486031215611abf57600080fd5b611ac884611883565b95602085013595506040909401359392505050565b60008060408385031215611af057600080fd5b611af983611883565b915060208301358015158114611b0e57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215611b4557600080fd5b611b4e85611883565b9350611b5c60208601611883565b925060408501359150606085013567ffffffffffffffff80821115611b8057600080fd5b818701915087601f830112611b9457600080fd5b813581811115611ba657611ba6611b19565b604051601f8201601f19908116603f01168101908382118183101715611bce57611bce611b19565b816040528281528a6020848701011115611be757600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b81516001600160a01b0316815260208083015167ffffffffffffffff169082015260408083015115159082015260608083015162ffffff1690820152608081016105be565b60008060408385031215611c6357600080fd5b611c6c83611883565b9150611c7a60208401611883565b90509250929050565b600181811c90821680611c9757607f821691505b60208210811415611cb857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115611cfd57611cfd611cd4565b500190565b60008351611d148184602088016117ff565b835190830190611d288183602088016117ff565b7f2e6a736f6e0000000000000000000000000000000000000000000000000000009101908152600501949350505050565b60006001600160a01b03808716835280861660208401525083604083015260806060830152611d8b608083018461182b565b9695505050505050565b600060208284031215611da757600080fd5b8151610e52816117b4565b6000600019821415611dc657611dc6611cd4565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082611df257611df2611dcd565b500490565b600082821015611e0957611e09611cd4565b500390565b600082611e1d57611e1d611dcd565b50069056fea2646970667358221220052488232089dc164785290120a30c3ff973ca3fca2652f8754e1978d656936764736f6c634300080a0033