[ { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "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": false, "internalType": "uint256", "name": "_fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_toTokenId", "type": "uint256" } ], "name": "BatchMetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "MetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "tokenURI", "type": "string" } ], "name": "Mint", "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": "oldSigner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newSigner", "type": "address" } ], "name": "SignerUpdated", "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": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "address", "name": "owner_", "type": "address" }, { "internalType": "address", "name": "signer_", "type": "address" }, { "internalType": "string", "name": "baseUri_", "type": "string" } ], "name": "initilize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "msgHash", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "blockExpiry", "type": "uint256" } ], "name": "prepareHash", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "uint256", "name": "expiry", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "safeMint", "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": "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": "address", "name": "newSigner", "type": "address" } ], "name": "setSigner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "signer", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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" } ]
608060405234801561000f575f80fd5b50611cb48061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061013d575f3560e01c8063715018a6116100b4578063b88d4fde11610079578063b88d4fde146102b5578063c87b56dd146102c8578063cd42b04b146102db578063e985e9c5146102ee578063f2fde38b14610301578063f9a7ea3714610314575f80fd5b8063715018a61461024f5780638da5cb5b1461025757806395d89b4114610287578063a22cb4651461028f578063b086b4b5146102a2575f80fd5b806323b872dd1161010557806323b872dd146101cf57806342842e0e146101e25780635958aea7146101f55780636352211e146102165780636c19e7831461022957806370a082311461023c575f80fd5b806301ffc9a71461014157806306fdde0314610169578063081812fc1461017e578063095ea7b3146101a9578063238ac933146101be575b5f80fd5b61015461014f3660046116b2565b610336565b60405190151581526020015b60405180910390f35b610171610346565b604051610160919061171a565b61019161018c36600461172c565b6103e7565b6040516001600160a01b039091168152602001610160565b6101bc6101b736600461175e565b6103fb565b005b6002546001600160a01b0316610191565b6101bc6101dd366004611786565b61040a565b6101bc6101f0366004611786565b610498565b61020861020336600461175e565b6104b7565b604051908152602001610160565b61019161022436600461172c565b61056e565b6101bc6102373660046117bf565b610578565b61020861024a3660046117bf565b6105d1565b6101bc610629565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610191565b61017161063c565b6101bc61029d3660046117d8565b61067a565b6101bc6102b03660046118b6565b610685565b6101bc6102c3366004611959565b6107c9565b6101716102d636600461172c565b6107e0565b6101bc6102e93660046119d0565b6107eb565b6101546102fc366004611a4c565b610973565b6101bc61030f3660046117bf565b6109bf565b61015461032236600461172c565b5f6020819052908152604090205460ff1681565b5f610340826109fc565b92915050565b5f80516020611c5f833981519152805460609190819061036590611a7d565b80601f016020809104026020016040519081016040528092919081815260200182805461039190611a7d565b80156103dc5780601f106103b3576101008083540402835291602001916103dc565b820191905f5260205f20905b8154815290600101906020018083116103bf57829003601f168201915b505050505091505090565b5f6103f182610a20565b5061034082610a57565b610406828233610a90565b5050565b6001600160a01b03821661043857604051633250574960e11b81525f60048201526024015b60405180910390fd5b5f610444838333610a9d565b9050836001600160a01b0316816001600160a01b031614610492576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161042f565b50505050565b6104b283838360405180602001604052805f8152506107c9565b505050565b6040516bffffffffffffffffffffffff1930606090811b8216602084015284901b166034820152604881018290525f9060680160408051601f198184030181529082905261050791602001611ab5565b60408051601f198184030181529082905280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000091830191909152603c820152605c0160405160208183030381529060405280519060200120905092915050565b5f61034082610a20565b610580610b9f565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f2d025324f0a785e8c12d0a0d91a9caa49df4ef20ff87e0df7213a1d4f3157beb905f90a35050565b5f5f80516020611c5f8339815191526001600160a01b038316610609576040516322718ad960e21b81525f600482015260240161042f565b6001600160a01b039092165f908152600390920160205250604090205490565b610631610b9f565b61063a5f610bfa565b565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060915f80516020611c5f8339815191529161036590611a7d565b610406338383610c6a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156106ca5750825b90505f8267ffffffffffffffff1660011480156106e65750303b155b9050811580156106f4575080155b156107125760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561073c57845460ff60401b1916600160401b1785555b6107468a8a610d19565b61074f88610d2b565b600280546001600160a01b0319166001600160a01b03891617905560036107768782611b1d565b5083156107bd57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b6107d484848461040a565b61049284848484610d3c565b606061034082610e62565b4384101561082f5760405162461bcd60e51b81526020600482015260116024820152701cda59db985d1d5c9948195e1c1a5c9959607a1b604482015260640161042f565b61083c8685858585610f85565b6108885760405162461bcd60e51b815260206004820152601860248201527f496e76616c6964207369676e6174757265204552433732310000000000000000604482015260640161042f565b5f61089387866104b7565b5f8181526020819052604090205490915060ff16156108e65760405162461bcd60e51b815260206004820152600f60248201526e4f72646572206475706c696361746560881b604482015260640161042f565b5f6108f060015490565b5f838152602081905260409020805460ff19166001908117909155805481019055905061091d888261105a565b6109278188611073565b80886001600160a01b03167f85a66b9141978db9980f7e0ce3b468cebf4f7999f32b23091c5c03e798b1ba7a89604051610961919061171a565b60405180910390a35050505050505050565b6001600160a01b039182165f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b6109c7610b9f565b6001600160a01b0381166109f057604051631e4fbdf760e01b81525f600482015260240161042f565b6109f981610bfa565b50565b5f6001600160e01b03198216632483248360e11b14806103405750610340826110e5565b5f80610a2b83611134565b90506001600160a01b03811661034057604051637e27328960e01b81526004810184905260240161042f565b5f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b6104b2838383600161116d565b5f5f80516020611c5f83398151915281610ab685611134565b90506001600160a01b03841615610ad257610ad2818587611280565b6001600160a01b03811615610b0e57610aed5f865f8061116d565b6001600160a01b0381165f908152600383016020526040902080545f190190555b6001600160a01b03861615610b3e576001600160a01b0386165f9081526003830160205260409020805460010190555b5f85815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b33610bd17f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461063a5760405163118cdaa760e01b815233600482015260240161042f565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f80516020611c5f8339815191526001600160a01b038316610caa57604051630b61174360e31b81526001600160a01b038416600482015260240161042f565b6001600160a01b038481165f818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b610d216112e4565b610406828261132d565b610d336112e4565b6109f98161135d565b6001600160a01b0383163b1561049257604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610d7e903390889087908790600401611bd9565b6020604051808303815f875af1925050508015610db8575060408051601f3d908101601f19168201909252610db591810190611c15565b60015b610e1f573d808015610de5576040519150601f19603f3d011682016040523d82523d5f602084013e610dea565b606091505b5080515f03610e1757604051633250574960e11b81526001600160a01b038516600482015260240161042f565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610e5b57604051633250574960e11b81526001600160a01b038516600482015260240161042f565b5050505050565b60607f0542a41881ee128a365a727b282c86fa859579490b9bb45aab8503648c8e7900610e8e83610a20565b505f8381526020829052604081208054610ea790611a7d565b80601f0160208091040260200160405190810160405280929190818152602001828054610ed390611a7d565b8015610f1e5780601f10610ef557610100808354040283529160200191610f1e565b820191905f5260205f20905b815481529060010190602001808311610f0157829003601f168201915b505050505090505f610f2e611365565b905080515f03610f4057509392505050565b815115610f73578082604051602001610f5a929190611c30565b6040516020818303038152906040529350505050919050565b610f7c856113f5565b95945050505050565b5f80610f9187876104b7565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018290529091505f90605c0160408051601f1981840301815282825280516020918201205f80855291840180845281905260ff8a169284019290925260608301889052608083018790529092509060019060a0016020604051602081039080840390855afa158015611031573d5f803e3d5ffd5b5050604051601f1901516002546001600160a01b039182169116149a9950505050505050505050565b610406828260405180602001604052805f81525061145a565b5f8281527f0542a41881ee128a365a727b282c86fa859579490b9bb45aab8503648c8e7900602081905260409091206110ac8382611b1d565b506040518381527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a1505050565b5f6001600160e01b031982166380ac58cd60e01b148061111557506001600160e01b03198216635b5e139f60e01b145b8061034057506301ffc9a760e01b6001600160e01b0319831614610340565b5f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b5f80516020611c5f833981519152818061118f57506001600160a01b03831615155b15611250575f61119e85610a20565b90506001600160a01b038416158015906111ca5750836001600160a01b0316816001600160a01b031614155b80156111dd57506111db8185610973565b155b156112065760405163a9fbf51f60e01b81526001600160a01b038516600482015260240161042f565b821561124e5784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5f93845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b61128b838383611470565b6104b2576001600160a01b0383166112b957604051637e27328960e01b81526004810182905260240161042f565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161042f565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661063a57604051631afcd79f60e31b815260040160405180910390fd5b6113356112e4565b5f80516020611c5f8339815191528061134e8482611b1d565b50600181016104928382611b1d565b6109c76112e4565b60606003805461137490611a7d565b80601f01602080910402602001604051908101604052809291908181526020018280546113a090611a7d565b80156113eb5780601f106113c2576101008083540402835291602001916113eb565b820191905f5260205f20905b8154815290600101906020018083116113ce57829003601f168201915b5050505050905090565b606061140082610a20565b505f61140a611365565b90505f8151116114285760405180602001604052805f815250611453565b80611432846114d5565b604051602001611443929190611c30565b6040516020818303038152906040525b9392505050565b6114648383611565565b6104b25f848484610d3c565b5f6001600160a01b038316158015906114cd5750826001600160a01b0316846001600160a01b031614806114a957506114a98484610973565b806114cd5750826001600160a01b03166114c283610a57565b6001600160a01b0316145b949350505050565b60605f6114e1836115c6565b60010190505f8167ffffffffffffffff81111561150057611500611811565b6040519080825280601f01601f19166020018201604052801561152a576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461153457509392505050565b6001600160a01b03821661158e57604051633250574960e11b81525f600482015260240161042f565b5f61159a83835f610a9d565b90506001600160a01b038116156104b2576040516339e3563760e11b81525f600482015260240161042f565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106116045772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611630576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061164e57662386f26fc10000830492506010015b6305f5e1008310611666576305f5e100830492506008015b612710831061167a57612710830492506004015b6064831061168c576064830492506002015b600a83106103405760010192915050565b6001600160e01b0319811681146109f9575f80fd5b5f602082840312156116c2575f80fd5b81356114538161169d565b5f5b838110156116e75781810151838201526020016116cf565b50505f910152565b5f81518084526117068160208601602086016116cd565b601f01601f19169290920160200192915050565b602081525f61145360208301846116ef565b5f6020828403121561173c575f80fd5b5035919050565b80356001600160a01b0381168114611759575f80fd5b919050565b5f806040838503121561176f575f80fd5b61177883611743565b946020939093013593505050565b5f805f60608486031215611798575f80fd5b6117a184611743565b92506117af60208501611743565b9150604084013590509250925092565b5f602082840312156117cf575f80fd5b61145382611743565b5f80604083850312156117e9575f80fd5b6117f283611743565b915060208301358015158114611806575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561183f5761183f611811565b604051601f8501601f19908116603f0116810190828211818310171561186757611867611811565b8160405280935085815286868601111561187f575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f8301126118a7575f80fd5b61145383833560208501611825565b5f805f805f60a086880312156118ca575f80fd5b853567ffffffffffffffff808211156118e1575f80fd5b6118ed89838a01611898565b96506020880135915080821115611902575f80fd5b61190e89838a01611898565b955061191c60408901611743565b945061192a60608901611743565b9350608088013591508082111561193f575f80fd5b5061194c88828901611898565b9150509295509295909350565b5f805f806080858703121561196c575f80fd5b61197585611743565b935061198360208601611743565b925060408501359150606085013567ffffffffffffffff8111156119a5575f80fd5b8501601f810187136119b5575f80fd5b6119c487823560208401611825565b91505092959194509250565b5f805f805f8060c087890312156119e5575f80fd5b6119ee87611743565b9550602087013567ffffffffffffffff811115611a09575f80fd5b611a1589828a01611898565b95505060408701359350606087013560ff81168114611a32575f80fd5b9598949750929560808101359460a0909101359350915050565b5f8060408385031215611a5d575f80fd5b611a6683611743565b9150611a7460208401611743565b90509250929050565b600181811c90821680611a9157607f821691505b602082108103611aaf57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f8251611ac68184602087016116cd565b9190910192915050565b601f8211156104b2575f81815260208120601f850160051c81016020861015611af65750805b601f850160051c820191505b81811015611b1557828155600101611b02565b505050505050565b815167ffffffffffffffff811115611b3757611b37611811565b611b4b81611b458454611a7d565b84611ad0565b602080601f831160018114611b7e575f8415611b675750858301515b5f19600386901b1c1916600185901b178555611b15565b5f85815260208120601f198616915b82811015611bac57888601518255948401946001909101908401611b8d565b5085821015611bc957878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90611c0b908301846116ef565b9695505050505050565b5f60208284031215611c25575f80fd5b81516114538161169d565b5f8351611c418184602088016116cd565b835190830190611c558183602088016116cd565b0194935050505056fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300a2646970667358221220a4745db11db0b3fb0a0ed9cf3a86dd288e16d904244fa8743ade1e7592473ed564736f6c63430008140033