[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferStarted", "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": "acceptOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_allowedTransferTimeInSeconds", "type": "uint256" } ], "name": "approveTransfer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "approvedTransfers", "outputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "transferExpiryDate", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseUri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "batchMintInFibonacci", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "controlledTransfers", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "core", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "disableControlledTransfers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "enableControlledTransfers", "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": [], "name": "initialMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initialMintCalled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC721Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "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": "pendingOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "previousFibonacci", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "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": "address", "name": "_core", "type": "address" } ], "name": "setCoreContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_treasury", "type": "address" } ], "name": "setTreasuryContract", "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": [], "name": "tokenId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "totalTokensBurnt", "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": "uint256[]", "name": "_tokenIds", "type": "uint256[]" }, { "internalType": "address", "name": "_recipient", "type": "address" } ], "name": "transferNFTs", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "treasury", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b503360405180604001604052806006815260200165141cde53919560d21b8152506040518060400160405280600381526020016250535960e81b81525081600090816200005f9190620001e4565b5060016200006e8282620001e4565b5050506001600160a01b038116620000a057604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000ab81620000cf565b506001600855600d805460ff60a81b1916600160a81b1790556002600a55620002b0565b600780546001600160a01b0319169055620000ea81620000ed565b50565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200016a57607f821691505b6020821081036200018b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001df57600081815260208120601f850160051c81016020861015620001ba5750805b601f850160051c820191505b81811015620001db57828155600101620001c6565b5050505b505050565b81516001600160401b038111156200020057620002006200013f565b620002188162000211845462000155565b8462000191565b602080601f831160018114620002505760008415620002375750858301515b600019600386901b1c1916600185901b178555620001db565b600085815260208120601f198616915b82811015620002815788860151825594840194600190910190840162000260565b5085821015620002a05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b612fb580620002c06000396000f3fe608060405234801561001057600080fd5b50600436106102925760003560e01c80638da5cb5b11610160578063c44010b9116100d8578063e985e9c51161008c578063f2f4eb2611610071578063f2f4eb2614610648578063f2fde38b14610668578063fbf6b7801461067b57600080fd5b8063e985e9c5146105f7578063ef530a921461064057600080fd5b8063c87b56dd116100bd578063c87b56dd146105b3578063e30c3978146105c6578063e75125a1146105e457600080fd5b8063c44010b91461052a578063c6266693146105a057600080fd5b8063a0bcfc7f1161012f578063a681c2e911610114578063a681c2e9146104e9578063b88d4fde146104f2578063bb3d33b71461050557600080fd5b8063a0bcfc7f146104c3578063a22cb465146104d657600080fd5b80638da5cb5b1461048d57806395d89b41146104ab5780639abc8320146104b35780639fc5ce2a146104bb57600080fd5b806342966c681161020e578063715018a6116101c257806374594e7d116101a757806374594e7d1461044c57806379ba5097146104725780637b3aba2a1461047a57600080fd5b8063715018a61461043c578063739cd9ff1461044457600080fd5b806361d027b3116101f357806361d027b3146103f65780636352211e1461041657806370a082311461042957600080fd5b806342966c68146103da578063455f6f31146103ed57600080fd5b8063150b7a02116102655780631ed651101161024a5780631ed65110146103a157806323b872dd146103b457806342842e0e146103c757600080fd5b8063150b7a021461032157806317d70f7c1461038a57600080fd5b806301ffc9a71461029757806306fdde03146102bf578063081812fc146102d4578063095ea7b31461030c575b600080fd5b6102aa6102a5366004612779565b610683565b60405190151581526020015b60405180910390f35b6102c7610768565b6040516102b69190612804565b6102e76102e2366004612817565b6107fa565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102b6565b61031f61031a366004612859565b610830565b005b61035961032f366004612883565b7f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016102b6565b61039360095481565b6040519081526020016102b6565b61031f6103af36600461291e565b61083f565b61031f6103c2366004612939565b610936565b61031f6103d5366004612939565b610aa2565b61031f6103e8366004612817565b610abd565b610393600b5481565b600d546102e79073ffffffffffffffffffffffffffffffffffffffff1681565b6102e7610424366004612817565b610b5f565b61039361043736600461291e565b610b6a565b61031f610be5565b61031f610bf9565b600d546102aa907501000000000000000000000000000000000000000000900460ff1681565b61031f610cef565b61031f610488366004612975565b610d63565b60065473ffffffffffffffffffffffffffffffffffffffff166102e7565b6102c7610fa7565b6102c7610fb6565b61031f611044565b61031f6104d1366004612a8e565b6111ec565b61031f6104e4366004612ad7565b611200565b610393600a5481565b61031f610500366004612b13565b61120b565b600d546102aa9074010000000000000000000000000000000000000000900460ff1681565b61056f610538366004612817565b600f6020526000908152604090208054600182015460029092015490919073ffffffffffffffffffffffffffffffffffffffff1683565b60408051938452602084019290925273ffffffffffffffffffffffffffffffffffffffff16908201526060016102b6565b61031f6105ae36600461291e565b611228565b6102c76105c1366004612817565b61131a565b60075473ffffffffffffffffffffffffffffffffffffffff166102e7565b61031f6105f2366004612b8f565b611382565b6102aa610605366004612c47565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b61031f611579565b600c546102e79073ffffffffffffffffffffffffffffffffffffffff1681565b61031f61067636600461291e565b611722565b61031f6117d2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061071657507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061076257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60606000805461077790612c7a565b80601f01602080910402602001604051908101604052809291908181526020018280546107a390612c7a565b80156107f05780601f106107c5576101008083540402835291602001916107f0565b820191906000526020600020905b8154815290600101906020018083116107d357829003601f168201915b5050505050905090565b6000610805826118af565b5060008281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff16610762565b61083b82823361190e565b5050565b61084761191b565b73ffffffffffffffffffffffffffffffffffffffff81166108ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f5073794e46543a2054726561737572792043616e6e6f74204265205a65726f2060448201527f416464726573730000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b600d80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600d547501000000000000000000000000000000000000000000900460ff16801561097f57503061096682610b5f565b73ffffffffffffffffffffffffffffffffffffffff1614155b15610a92576000818152600f602052604090206002015473ffffffffffffffffffffffffffffffffffffffff838116911614610a17576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5073794e46543a20496e636f727265637420526563656976657200000000000060448201526064016108e6565b6000818152600f6020526040902060010154421115610a92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5073794e46543a20417070726f76616c2045787069726564000000000000000060448201526064016108e6565b610a9d83838361196e565b505050565b610a9d8383836040518060200160405280600081525061120b565b600d5473ffffffffffffffffffffffffffffffffffffffff163314610b3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f5073794e46543a2043616c6c6572204973204e6f74205472656173757279000060448201526064016108e6565b600b8054906000610b4e83612cfc565b9190505550610b5c81611a59565b50565b6000610762826118af565b600073ffffffffffffffffffffffffffffffffffffffff8216610bbc576040517f89c62b64000000000000000000000000000000000000000000000000000000008152600060048201526024016108e6565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b610bed61191b565b610bf76000611aba565b565b610c0161191b565b600d547501000000000000000000000000000000000000000000900460ff1615610cad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5073794e46543a20436f6e74726f6c6c6564205472616e736665727320416c7260448201527f6561647920456e61626c6564000000000000000000000000000000000000000060648201526084016108e6565b600d80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055565b600754339073ffffffffffffffffffffffffffffffffffffffff168114610d5a576040517f118cdaa700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016108e6565b610b5c81611aba565b600c5473ffffffffffffffffffffffffffffffffffffffff163314610e0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f5073794e46543a2043616c6c6572204e6f7420436f72654c6f67696320436f6e60448201527f747261637400000000000000000000000000000000000000000000000000000060648201526084016108e6565b6009548310610e75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5073794e46543a204e6f6e204578697374656e7420546f6b656e00000000000060448201526064016108e6565b6000838152600f60205260409020600101544211610f15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5073794e46543a205472616e7366657220526571756573742043757272656e7460448201527f6c7920416374697665000000000000000000000000000000000000000000000060648201526084016108e6565b60405180606001604052808481526020018242610f329190612d34565b815273ffffffffffffffffffffffffffffffffffffffff9384166020918201526000948552600f815260409485902082518155908201516001820155930151600290930180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169390921692909217905550565b60606001805461077790612c7a565b600e8054610fc390612c7a565b80601f0160208091040260200160405190810160405280929190818152602001828054610fef90612c7a565b801561103c5780601f106110115761010080835404028352916020019161103c565b820191906000526020600020905b81548152906001019060200180831161101f57829003601f168201915b505050505081565b600c5473ffffffffffffffffffffffffffffffffffffffff1633146110eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f5073794e46543a2043616c6c6572204e6f7420436f72654c6f67696320436f6e60448201527f747261637400000000000000000000000000000000000000000000000000000060648201526084016108e6565b6110f3611aeb565b600d5474010000000000000000000000000000000000000000900460ff1615611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f5073794e46543a20496e697469616c204d696e7420436f6d706c65746500000060448201526064016108e6565b600d80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905560005b60038110156111df576111cd3082611b2e565b806111d781612cfc565b9150506111ba565b600955610bf76001600855565b6111f461191b565b600e61083b8282612d95565b61083b338383611b48565b611216848484610936565b61122284848484611c45565b50505050565b61123061191b565b73ffffffffffffffffffffffffffffffffffffffff81166112d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f5073794e46543a20436f72654c6f6769632043616e6e6f74204265205a65726f60448201527f204164647265737300000000000000000000000000000000000000000000000060648201526084016108e6565b600c80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6060611325826118af565b506000611330611e3c565b90506000815111611350576040518060200160405280600081525061137b565b8061135a84611e4b565b60405160200161136b929190612eaf565b6040516020818303038152906040525b9392505050565b600c5473ffffffffffffffffffffffffffffffffffffffff163314611429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f5073794e46543a2043616c6c6572204e6f7420436f72654c6f67696320436f6e60448201527f747261637400000000000000000000000000000000000000000000000000000060648201526084016108e6565b73ffffffffffffffffffffffffffffffffffffffff81166114cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f5073794e46543a20526563697069656e742043616e6e6f74204265205a65726f60448201527f204164647265737300000000000000000000000000000000000000000000000060648201526084016108e6565b8151600003611537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5073794e46543a20546f6b656e20417272617920456d7074790000000000000060448201526064016108e6565b60005b8251811015610a9d57611567308385848151811061155a5761155a612ede565b6020026020010151611f09565b8061157181612cfc565b91505061153a565b600c5473ffffffffffffffffffffffffffffffffffffffff163314611620576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f5073794e46543a2043616c6c6572204e6f7420436f72654c6f67696320436f6e60448201527f747261637400000000000000000000000000000000000000000000000000000060648201526084016108e6565b611628611aeb565b600d5474010000000000000000000000000000000000000000900460ff166116d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f5073794e46543a20496e697469616c204d696e74204e6f7420436f6d706c657460448201527f656400000000000000000000000000000000000000000000000000000000000060648201526084016108e6565b600a80546009549091555b8015611717576116ef30600954611b2e565b600980549060006116ff83612cfc565b9190505550808061170f90612f0d565b9150506116dd565b50610bf76001600855565b61172a61191b565b6007805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915561178d60065473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6117da61191b565b600d547501000000000000000000000000000000000000000000900460ff16611885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f5073794e46543a20436f6e74726f6c6c6564205472616e736665727320416c7260448201527f656164792044697361626c65640000000000000000000000000000000000000060648201526084016108e6565b600d80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610762576040517f7e273289000000000000000000000000000000000000000000000000000000008152600481018490526024016108e6565b610a9d8383836001611f24565b60065473ffffffffffffffffffffffffffffffffffffffff163314610bf7576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016108e6565b73ffffffffffffffffffffffffffffffffffffffff82166119be576040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600060048201526024016108e6565b60006119cb8383336120ef565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611222576040517f64283d7b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808616600483015260248201849052821660448201526064016108e6565b6000611a6860008360006120ef565b905073ffffffffffffffffffffffffffffffffffffffff811661083b576040517f7e273289000000000000000000000000000000000000000000000000000000008152600481018390526024016108e6565b600780547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055610b5c8161226c565b600260085403611b27576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600855565b61083b8282604051806020016040528060008152506122e3565b73ffffffffffffffffffffffffffffffffffffffff8216611bad576040517f5b08ba1800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526024016108e6565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83163b15611222576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063150b7a0290611cba903390889087908790600401612f42565b6020604051808303816000875af1925050508015611d13575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611d1091810190612f8b565b60015b611da2573d808015611d41576040519150601f19603f3d011682016040523d82523d6000602084013e611d46565b606091505b508051600003611d9a576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016108e6565b805181602001fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167f150b7a020000000000000000000000000000000000000000000000000000000014611e35576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016108e6565b5050505050565b6060600e805461077790612c7a565b60606000611e58836122fa565b600101905060008167ffffffffffffffff811115611e7857611e7861299a565b6040519080825280601f01601f191660200182016040528015611ea2576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611eac57509392505050565b610a9d838383604051806020016040528060008152506123dc565b8080611f45575073ffffffffffffffffffffffffffffffffffffffff821615155b1561209a576000611f55846118af565b905073ffffffffffffffffffffffffffffffffffffffff831615801590611fa857508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611fe7575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209387168352929052205460ff16155b15612036576040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024016108e6565b811561209857838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008281526002602052604081205473ffffffffffffffffffffffffffffffffffffffff90811690831615612129576121298184866123e7565b73ffffffffffffffffffffffffffffffffffffffff81161561219f57612153600085600080611f24565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190555b73ffffffffffffffffffffffffffffffffffffffff8516156121e85773ffffffffffffffffffffffffffffffffffffffff85166000908152600360205260409020805460010190555b60008481526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff89811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6006805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6122ed8383612497565b610a9d6000848484611c45565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612343577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061236f576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061238d57662386f26fc10000830492506010015b6305f5e10083106123a5576305f5e100830492506008015b61271083106123b957612710830492506004015b606483106123cb576064830492506002015b600a83106107625760010192915050565b611216848484612548565b6123f2838383612684565b610a9d5773ffffffffffffffffffffffffffffffffffffffff8316612446576040517f7e273289000000000000000000000000000000000000000000000000000000008152600481018290526024016108e6565b6040517f177e802f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602481018290526044016108e6565b73ffffffffffffffffffffffffffffffffffffffff82166124e7576040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600060048201526024016108e6565b60006124f5838360006120ef565b905073ffffffffffffffffffffffffffffffffffffffff811615610a9d576040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600060048201526024016108e6565b73ffffffffffffffffffffffffffffffffffffffff8216612598576040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600060048201526024016108e6565b60006125a6838360006120ef565b905073ffffffffffffffffffffffffffffffffffffffff81166125f8576040517f7e273289000000000000000000000000000000000000000000000000000000008152600481018390526024016108e6565b8373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611222576040517f64283d7b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808616600483015260248201849052821660448201526064016108e6565b600073ffffffffffffffffffffffffffffffffffffffff83161580159061274357508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612712575073ffffffffffffffffffffffffffffffffffffffff80851660009081526005602090815260408083209387168352929052205460ff165b80612743575060008281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff8481169116145b949350505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b5c57600080fd5b60006020828403121561278b57600080fd5b813561137b8161274b565b60005b838110156127b1578181015183820152602001612799565b50506000910152565b600081518084526127d2816020860160208601612796565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061137b60208301846127ba565b60006020828403121561282957600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461285457600080fd5b919050565b6000806040838503121561286c57600080fd5b61287583612830565b946020939093013593505050565b60008060008060006080868803121561289b57600080fd5b6128a486612830565b94506128b260208701612830565b935060408601359250606086013567ffffffffffffffff808211156128d657600080fd5b818801915088601f8301126128ea57600080fd5b8135818111156128f957600080fd5b89602082850101111561290b57600080fd5b9699959850939650602001949392505050565b60006020828403121561293057600080fd5b61137b82612830565b60008060006060848603121561294e57600080fd5b61295784612830565b925061296560208501612830565b9150604084013590509250925092565b60008060006060848603121561298a57600080fd5b8335925061296560208501612830565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612a1057612a1061299a565b604052919050565b600067ffffffffffffffff831115612a3257612a3261299a565b612a6360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f860116016129c9565b9050828152838383011115612a7757600080fd5b828260208301376000602084830101529392505050565b600060208284031215612aa057600080fd5b813567ffffffffffffffff811115612ab757600080fd5b8201601f81018413612ac857600080fd5b61274384823560208401612a18565b60008060408385031215612aea57600080fd5b612af383612830565b915060208301358015158114612b0857600080fd5b809150509250929050565b60008060008060808587031215612b2957600080fd5b612b3285612830565b9350612b4060208601612830565b925060408501359150606085013567ffffffffffffffff811115612b6357600080fd5b8501601f81018713612b7457600080fd5b612b8387823560208401612a18565b91505092959194509250565b60008060408385031215612ba257600080fd5b823567ffffffffffffffff80821115612bba57600080fd5b818501915085601f830112612bce57600080fd5b8135602082821115612be257612be261299a565b8160051b9250612bf38184016129c9565b8281529284018101928181019089851115612c0d57600080fd5b948201945b84861015612c2b57853582529482019490820190612c12565b9650612c3a9050878201612830565b9450505050509250929050565b60008060408385031215612c5a57600080fd5b612c6383612830565b9150612c7160208401612830565b90509250929050565b600181811c90821680612c8e57607f821691505b602082108103612cc7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d2d57612d2d612ccd565b5060010190565b8082018082111561076257610762612ccd565b601f821115610a9d57600081815260208120601f850160051c81016020861015612d6e5750805b601f850160051c820191505b81811015612d8d57828155600101612d7a565b505050505050565b815167ffffffffffffffff811115612daf57612daf61299a565b612dc381612dbd8454612c7a565b84612d47565b602080601f831160018114612e165760008415612de05750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555612d8d565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015612e6357888601518255948401946001909101908401612e44565b5085821015612e9f57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60008351612ec1818460208801612796565b835190830190612ed5818360208801612796565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081612f1c57612f1c612ccd565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152612f8160808301846127ba565b9695505050505050565b600060208284031215612f9d57600080fd5b815161137b8161274b56fea164736f6c6343000814000a