ERC-721
Source Code
Overview
Max Total Supply
3,096 PETLE...
Holders
2,768
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
1 PETLETLoading...
Loading
Loading...
Loading
Loading...
Loading
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ECDSAInvalidSignature","type":"error"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"name":"ECDSAInvalidSignatureLength","type":"error"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"ECDSAInvalidSignatureS","type":"error"},{"inputs":[],"name":"ERC721EnumerableForbiddenBatchMint","type":"error"},{"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"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"ERC721OutOfBoundsIndex","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"DEAD_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allowOwnershipBasedMinting","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"burnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"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":"tokenId","type":"uint256"},{"internalType":"uint256","name":"minterFid","type":"uint256"},{"internalType":"string","name":"url","type":"string"},{"internalType":"string","name":"species","type":"string"},{"internalType":"uint256","name":"friend1","type":"uint256"},{"internalType":"uint256","name":"friend2","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintPrice","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":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"payoutAddress","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":"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":"bool","name":"_allowOwnershipBasedMinting","type":"bool"}],"name":"setAllowOwnershipBasedMinting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_burnAmount","type":"uint256"}],"name":"setBurnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_burnToken","type":"address"}],"name":"setBurnToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintPrice","type":"uint256"}],"name":"setMintPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_payoutAddress","type":"address"}],"name":"setPayoutAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_updatesFrozen","type":"bool"}],"name":"setUpdatesFrozen","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_verifierAddress","type":"address"}],"name":"setVerifierAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_warpletERC721","type":"address"}],"name":"setWarpletERC721","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":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"species","type":"string"},{"internalType":"uint256","name":"minterFid","type":"uint256"},{"internalType":"uint256","name":"friend1","type":"uint256"},{"internalType":"uint256","name":"friend2","type":"uint256"}],"name":"updateTokenMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"url","type":"string"}],"name":"updateTokenUrl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updatesFrozen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"verifierAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"warpletERC721","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawERC20Token","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawFundsToPayoutAddress","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561000f575f5ffd5b50336040518060400160405280600781526020017f5065746c657473000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f5045544c45540000000000000000000000000000000000000000000000000000815250815f908161008b9190610430565b50806001908161009b9190610430565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361010e575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610105919061053e565b60405180910390fd5b61011d8161013060201b60201c565b5065a6aedf3f7c00600f81905550610557565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061026e57607f821691505b6020821081036102815761028061022a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102e37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102a8565b6102ed86836102a8565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61033161032c61032784610305565b61030e565b610305565b9050919050565b5f819050919050565b61034a83610317565b61035e61035682610338565b8484546102b4565b825550505050565b5f5f905090565b610375610366565b610380818484610341565b505050565b5b818110156103a3576103985f8261036d565b600181019050610386565b5050565b601f8211156103e8576103b981610287565b6103c284610299565b810160208510156103d1578190505b6103e56103dd85610299565b830182610385565b50505b505050565b5f82821c905092915050565b5f6104085f19846008026103ed565b1980831691505092915050565b5f61042083836103f9565b9150826002028217905092915050565b610439826101f3565b67ffffffffffffffff811115610452576104516101fd565b5b61045c8254610257565b6104678282856103a7565b5f60209050601f831160018114610498575f8415610486578287015190505b6104908582610415565b8655506104f7565b601f1984166104a686610287565b5f5b828110156104cd578489015182556001820191506020850194506020810190506104a8565b868310156104ea57848901516104e6601f8916826103f9565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610528826104ff565b9050919050565b6105388161051e565b82525050565b5f6020820190506105515f83018461052f565b92915050565b615a4d806105645f395ff3fe60806040526004361061025b575f3560e01c80636817c76c11610143578063c364c0be116100b5578063e92d0e3b11610079578063e92d0e3b1461088b578063e985e9c5146108b3578063f2fde38b146108ef578063f4a0a52814610917578063f7bc440c1461093f578063faa0a264146109675761025b565b8063c364c0be146107bf578063c4c85ae0146107e7578063c54cf8b414610811578063c87b56dd14610827578063cc43f3d3146108635761025b565b80638da5cb5b116101075780638da5cb5b146106cb57806395d89b41146106f5578063a22cb4651461071f578063aa7c241f14610747578063b88d4fde1461076f578063c3587980146107975761025b565b80636817c76c1461060b5780636937dc62146106355780636cf3cb081461065d57806370a0823114610679578063715018a6146106b55761025b565b806323b872dd116101dc578063486a7e6b116101a0578063486a7e6b146104eb5780634e6fd6c4146105155780634f6ccce71461053f5780635b8d02d71461057b5780635c975abb146105a55780636352211e146105cf5761025b565b806323b872dd1461040d57806324106c3e146104355780632f745c591461045f57806333ea51a81461049b57806342842e0e146104c35761025b565b806317e955261161022357806317e955261461035157806318160ddd1461037957806318bdffbb146103a357806320524a77146103cd578063208b5059146103f75761025b565b806301ffc9a71461025f57806306fdde031461029b578063081812fc146102c5578063095ea7b31461030157806316c38b3c14610329575b5f5ffd5b34801561026a575f5ffd5b5061028560048036038101906102809190613c2b565b610991565b6040516102929190613c70565b60405180910390f35b3480156102a6575f5ffd5b506102af610a0a565b6040516102bc9190613cf9565b60405180910390f35b3480156102d0575f5ffd5b506102eb60048036038101906102e69190613d4c565b610a99565b6040516102f89190613db6565b60405180910390f35b34801561030c575f5ffd5b5061032760048036038101906103229190613df9565b610ab4565b005b348015610334575f5ffd5b5061034f600480360381019061034a9190613e61565b610aca565b005b34801561035c575f5ffd5b5061037760048036038101906103729190613e8c565b610af1565b005b348015610384575f5ffd5b5061038d610b3c565b60405161039a9190613ec6565b60405180910390f35b3480156103ae575f5ffd5b506103b7610b48565b6040516103c49190613db6565b60405180910390f35b3480156103d8575f5ffd5b506103e1610b6d565b6040516103ee9190613c70565b60405180910390f35b348015610402575f5ffd5b5061040b610b80565b005b348015610418575f5ffd5b50610433600480360381019061042e9190613edf565b610dd3565b005b348015610440575f5ffd5b50610449610ed2565b6040516104569190613f8a565b60405180910390f35b34801561046a575f5ffd5b5061048560048036038101906104809190613df9565b610ef7565b6040516104929190613ec6565b60405180910390f35b3480156104a6575f5ffd5b506104c160048036038101906104bc9190613e8c565b610f9b565b005b3480156104ce575f5ffd5b506104e960048036038101906104e49190613edf565b6110a3565b005b3480156104f6575f5ffd5b506104ff6110c2565b60405161050c9190613ec6565b60405180910390f35b348015610520575f5ffd5b506105296110c8565b6040516105369190613db6565b60405180910390f35b34801561054a575f5ffd5b5061056560048036038101906105609190613d4c565b6110ce565b6040516105729190613ec6565b60405180910390f35b348015610586575f5ffd5b5061058f611140565b60405161059c9190613db6565b60405180910390f35b3480156105b0575f5ffd5b506105b9611165565b6040516105c69190613c70565b60405180910390f35b3480156105da575f5ffd5b506105f560048036038101906105f09190613d4c565b61117b565b6040516106029190613db6565b60405180910390f35b348015610616575f5ffd5b5061061f61118c565b60405161062c9190613ec6565b60405180910390f35b348015610640575f5ffd5b5061065b60048036038101906106569190613e8c565b611192565b005b6106776004803603810190610672919061416d565b61122c565b005b348015610684575f5ffd5b5061069f600480360381019061069a9190613e8c565b6116ef565b6040516106ac9190613ec6565b60405180910390f35b3480156106c0575f5ffd5b506106c96117a5565b005b3480156106d6575f5ffd5b506106df6117b8565b6040516106ec9190613db6565b60405180910390f35b348015610700575f5ffd5b506107096117e0565b6040516107169190613cf9565b60405180910390f35b34801561072a575f5ffd5b506107456004803603810190610740919061425e565b611870565b005b348015610752575f5ffd5b5061076d60048036038101906107689190613e61565b611886565b005b34801561077a575f5ffd5b506107956004803603810190610790919061429c565b6118aa565b005b3480156107a2575f5ffd5b506107bd60048036038101906107b89190613e8c565b6118cf565b005b3480156107ca575f5ffd5b506107e560048036038101906107e0919061431c565b611969565b005b3480156107f2575f5ffd5b506107fb611a76565b6040516108089190613c70565b60405180910390f35b34801561081c575f5ffd5b50610825611a88565b005b348015610832575f5ffd5b5061084d60048036038101906108489190613d4c565b611beb565b60405161085a9190613cf9565b60405180910390f35b34801561086e575f5ffd5b5061088960048036038101906108849190613d4c565b611eef565b005b348015610896575f5ffd5b506108b160048036038101906108ac9190613e61565b611f50565b005b3480156108be575f5ffd5b506108d960048036038101906108d491906143af565b611fc4565b6040516108e69190613c70565b60405180910390f35b3480156108fa575f5ffd5b5061091560048036038101906109109190613e8c565b612052565b005b348015610922575f5ffd5b5061093d60048036038101906109389190613d4c565b6120d6565b005b34801561094a575f5ffd5b50610965600480360381019061096091906143ed565b612137565b005b348015610972575f5ffd5b5061097b6121f9565b6040516109889190614467565b60405180910390f35b5f7f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a035750610a028261221e565b5b9050919050565b60605f8054610a18906144ad565b80601f0160208091040260200160405190810160405280929190818152602001828054610a44906144ad565b8015610a8f5780601f10610a6657610100808354040283529160200191610a8f565b820191905f5260205f20905b815481529060010190602001808311610a7257829003601f168201915b5050505050905090565b5f610aa3826122ff565b50610aad82612385565b9050919050565b610ac68282610ac16123be565b6123c5565b5050565b610ad26123d7565b8015610ae557610ae061245e565b610aee565b610aed6124c1565b5b50565b610af96123d7565b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f600880549050905090565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060149054906101000a900460ff1681565b610b886123d7565b5f73ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0e90614527565b60405180910390fd5b5f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c729190613db6565b602060405180830381865afa158015610c8d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb19190614559565b90505f8111610cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cec906145ce565b60405180910390fd5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610d519291906145ec565b6020604051808303815f875af1158015610d6d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d919190614627565b610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc79061469c565b60405180910390fd5b50565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e43575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610e3a9190613db6565b60405180910390fd5b5f610e568383610e516123be565b612523565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ecc578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610ec3939291906146ba565b60405180910390fd5b50505050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610f01836116ef565b8210610f465782826040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610f3d9291906145ec565b60405180910390fd5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b610fa36123d7565b600e5f9054906101000a900460ff1615610ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe990614739565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611060576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611057906147a1565b60405180910390fd5b8060105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6110bd83838360405180602001604052805f8152506118aa565b505050565b600d5481565b61dead81565b5f6110d7610b3c565b821061111c575f826040517fa57d13dc0000000000000000000000000000000000000000000000000000000081526004016111139291906145ec565b60405180910390fd5b600882815481106111305761112f6147bf565b5b905f5260205f2001549050919050565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600a60149054906101000a900460ff16905090565b5f611185826122ff565b9050919050565b600f5481565b61119a6123d7565b600e5f9054906101000a900460ff16156111e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e090614739565b60405180910390fd5b8060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f85511161126f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126690614836565b60405180910390fd5b5f8451116112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a99061489e565b60405180910390fd5b5f5f9050601060149054906101000a900460ff16801561131f57505f73ffffffffffffffffffffffffffffffffffffffff1660115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b156113355761132e338961263d565b90506113a1565b5f73ffffffffffffffffffffffffffffffffffffffff16600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a0575f611399338a8989898989612717565b9050809150505b5b806113e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d890614906565b60405180910390fd5b6113ea886127c7565b1561142a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114219061496e565b60405180910390fd5b611432611165565b15611472576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611469906149d6565b60405180910390fd5b600f543410156114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae90614a3e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156115ae5750600d54600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161156c9190613db6565b602060405180830381865afa158015611587573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ab9190614559565b10155b1561165557600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead600d546040518363ffffffff1660e01b81526004016116139291906145ec565b6020604051808303815f875af115801561162f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116539190614627565b505b61165f3389612807565b8560125f8a81526020019081526020015f20908161167d9190614bf3565b5060405180608001604052808681526020018881526020018581526020018481525060135f8a81526020019081526020015f205f820151815f0190816116c39190614bf3565b506020820151816001015560408201518160020155606082015181600301559050505050505050505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611760575f6040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016117579190613db6565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6117ad6123d7565b6117b65f612824565b565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600180546117ef906144ad565b80601f016020809104026020016040519081016040528092919081815260200182805461181b906144ad565b80156118665780601f1061183d57610100808354040283529160200191611866565b820191905f5260205f20905b81548152906001019060200180831161184957829003601f168201915b5050505050905090565b61188261187b6123be565b83836128e7565b5050565b61188e6123d7565b80600e5f6101000a81548160ff02191690831515021790555050565b6118b5848484610dd3565b6118c96118c06123be565b85858585612a50565b50505050565b6118d76123d7565b600e5f9054906101000a900460ff1615611926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191d90614739565b60405180910390fd5b80600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6119716123d7565b600e5f9054906101000a900460ff16156119c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b790614739565b60405180910390fd5b6119c9856127c7565b611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ff90614d0c565b60405180910390fd5b60405180608001604052808581526020018481526020018381526020018281525060135f8781526020019081526020015f205f820151815f019081611a4d9190614bf3565b506020820151816001015560408201518160020155606082015181600301559050505050505050565b600e5f9054906101000a900460ff1681565b611a906123d7565b5f73ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1690614d74565b60405180910390fd5b5f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051611b6590614dbf565b5f6040518083038185875af1925050503d805f8114611b9f576040519150601f19603f3d011682016040523d82523d5f602084013e611ba4565b606091505b5050905080611be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdf9061469c565b60405180910390fd5b50565b6060611bf6826127c7565b611c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2c90614d0c565b60405180910390fd5b5f60125f8481526020019081526020015f208054611c52906144ad565b80601f0160208091040260200160405190810160405280929190818152602001828054611c7e906144ad565b8015611cc95780601f10611ca057610100808354040283529160200191611cc9565b820191905f5260205f20905b815481529060010190602001808311611cac57829003601f168201915b505050505090505f815111611d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0a90614e1d565b60405180910390fd5b5f60135f8581526020019081526020015f206040518060800160405290815f82018054611d3f906144ad565b80601f0160208091040260200160405190810160405280929190818152602001828054611d6b906144ad565b8015611db65780601f10611d8d57610100808354040283529160200191611db6565b820191905f5260205f20905b815481529060010190602001808311611d9957829003601f168201915b50505050508152602001600182015481526020016002820154815260200160038201548152505090505f815f0151611df18360200151612bfc565b604051602001611e02929190614fe9565b60405160208183030381529060405290505f82604001511115611e505780611e2d8360400151612bfc565b604051602001611e3e9291906150a8565b60405160208183030381529060405290505b5f82606001511115611e8d5780611e6a8360600151612bfc565b604051602001611e7b929190615151565b60405160208183030381529060405290505b5f611ec2611e9a87612bfc565b8584604051602001611eae93929190615433565b604051602081830303815290604052612d55565b905080604051602001611ed591906154d9565b604051602081830303815290604052945050505050919050565b611ef76123d7565b600e5f9054906101000a900460ff1615611f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3d90614739565b60405180910390fd5b80600d8190555050565b611f586123d7565b600e5f9054906101000a900460ff1615611fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9e90614739565b60405180910390fd5b80601060146101000a81548160ff02191690831515021790555050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b61205a6123d7565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120ca575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016120c19190613db6565b60405180910390fd5b6120d381612824565b50565b6120de6123d7565b600e5f9054906101000a900460ff161561212d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212490614739565b60405180910390fd5b80600f8190555050565b61213f6123d7565b600e5f9054906101000a900460ff161561218e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218590614739565b60405180910390fd5b612197826127c7565b6121d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121cd90614d0c565b60405180910390fd5b8060125f8481526020019081526020015f2090816121f49190614bf3565b505050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806122e857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806122f857506122f782612ee5565b5b9050919050565b5f5f61230a83612f4e565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361237c57826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016123739190613ec6565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6123d28383836001612f87565b505050565b6123df6123be565b73ffffffffffffffffffffffffffffffffffffffff166123fd6117b8565b73ffffffffffffffffffffffffffffffffffffffff161461245c576124206123be565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016124539190613db6565b60405180910390fd5b565b612466613146565b6001600a60146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124aa6123be565b6040516124b79190613db6565b60405180910390a1565b6124c9613187565b5f600a60146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61250c6123be565b6040516125199190613db6565b60405180910390a1565b5f5f6125308585856131c7565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036125735761256e846133d2565b6125b2565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146125b1576125b08185613416565b5b5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036125f3576125ee846134ed565b612632565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146126315761263085856135ad565b5b5b809150509392505050565b5f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004016126989190613ec6565b602060405180830381865afa9250505080156126d257506040513d601f19601f820116820180604052508101906126cf919061550e565b60015b6126de575f9050612711565b8373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16149150505b92915050565b5f5f8830898989898960405160200161273697969594939291906155e8565b6040516020818303038152906040528051906020012090505f61275882613631565b90505f6127658286613664565b9050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16149350505050979650505050505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff166127e883612f4e565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b612820828260405180602001604052805f81525061368e565b5050565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361295757816040517f5b08ba1800000000000000000000000000000000000000000000000000000000815260040161294e9190613db6565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612a439190613c70565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115612bf5578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401612aae94939291906156bd565b6020604051808303815f875af1925050508015612ae957506040513d601f19601f82011682018060405250810190612ae6919061571b565b60015b612b6a573d805f8114612b17576040519150601f19603f3d011682016040523d82523d5f602084013e612b1c565b606091505b505f815103612b6257836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612b599190613db6565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612bf357836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612bea9190613db6565b60405180910390fd5b505b5050505050565b60605f8203612c42576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612d50565b5f8290505f5b5f8214612c71578080612c5a90615773565b915050600a82612c6a91906157e7565b9150612c48565b5f8167ffffffffffffffff811115612c8c57612c8b613fab565b5b6040519080825280601f01601f191660200182016040528015612cbe5781602001600182028036833780820191505090505b5090505b5f8514612d4957600182612cd69190615817565b9150600a85612ce5919061584a565b6030612cf1919061587a565b60f81b818381518110612d0757612d066147bf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85612d4291906157e7565b9450612cc2565b8093505050505b919050565b60605f825190505f8103612d7a5760405180602001604052805f815250915050612ee0565b5f6003600283612d8a919061587a565b612d9491906157e7565b6004612da091906158ad565b90505f602082612db0919061587a565b67ffffffffffffffff811115612dc957612dc8613fab565b5b6040519080825280601f01601f191660200182016040528015612dfb5781602001600182028036833780820191505090505b5090505f6040518060600160405280604081526020016159d860409139905060018101602083015f5b86811015612e9d5760038101905062ffffff818a015116603f8160121c168401518060081b905060ff603f83600c1c1686015116810190508060081b905060ff603f8360061c1686015116810190508060081b905060ff603f831686015116810190508060e01b90508084526004840193505050612e24565b506003860660018114612eb75760028114612ec757612ed2565b613d3d60f01b6002830352612ed2565b603d60f81b60018303525b508484525050819450505050505b919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080612fbf57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156130f1575f612fce846122ff565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561303857508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561304b57506130498184611fc4565b155b1561308d57826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016130849190613db6565b60405180910390fd5b81156130ef57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b61314e611165565b15613185576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b61318f611165565b6131c5576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f5f6131d284612f4e565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614613213576132128184866136b1565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461329e576132525f855f5f612f87565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461331d57600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b60088054905060095f8381526020019081526020015f2081905550600881908060018154018082558091505060019003905f5260205f20015f909190919091505550565b5f613420836116ef565b90505f60075f8481526020019081526020015f205490505f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090508282146134bf575f815f8581526020019081526020015f2054905080825f8581526020019081526020015f20819055508260075f8381526020019081526020015f2081905550505b60075f8581526020019081526020015f205f9055805f8481526020019081526020015f205f90555050505050565b5f60016008805490506135009190615817565b90505f60095f8481526020019081526020015f205490505f6008838154811061352c5761352b6147bf565b5b905f5260205f2001549050806008838154811061354c5761354b6147bf565b5b905f5260205f2001819055508160095f8381526020019081526020015f208190555060095f8581526020019081526020015f205f90556008805480613594576135936158ee565b5b600190038181905f5260205f20015f9055905550505050565b5f60016135b9846116ef565b6135c39190615817565b90508160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20819055508060075f8481526020019081526020015f2081905550505050565b5f7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f5281601c52603c5f209050919050565b5f5f5f5f6136728686613774565b92509250925061368282826137c9565b82935050505092915050565b613698838361392b565b6136ac6136a36123be565b5f858585612a50565b505050565b6136bc838383613a1e565b61376f575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361373057806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016137279190613ec6565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016137669291906145ec565b60405180910390fd5b505050565b5f5f5f60418451036137b4575f5f5f602087015192506040870151915060608701515f1a90506137a688828585613ade565b9550955095505050506137c2565b5f600285515f1b9250925092505b9250925092565b5f60038111156137dc576137db61591b565b5b8260038111156137ef576137ee61591b565b5b031561392757600160038111156138095761380861591b565b5b82600381111561381c5761381b61591b565b5b03613853576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156138675761386661591b565b5b82600381111561387a5761387961591b565b5b036138be57805f1c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016138b59190613ec6565b60405180910390fd5b6003808111156138d1576138d061591b565b5b8260038111156138e4576138e361591b565b5b0361392657806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161391d9190615960565b60405180910390fd5b5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361399b575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016139929190613db6565b60405180910390fd5b5f6139a783835f612523565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613a19575f6040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401613a109190613db6565b60405180910390fd5b505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613ad557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480613a965750613a958484611fc4565b5b80613ad457508273ffffffffffffffffffffffffffffffffffffffff16613abc83612385565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c1115613b1a575f600385925092509250613bbb565b5f6001888888886040515f8152602001604052604051613b3d9493929190615994565b6020604051602081039080840390855afa158015613b5d573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613bae575f60015f5f1b93509350935050613bbb565b805f5f5f1b935093509350505b9450945094915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613c0a81613bd6565b8114613c14575f5ffd5b50565b5f81359050613c2581613c01565b92915050565b5f60208284031215613c4057613c3f613bce565b5b5f613c4d84828501613c17565b91505092915050565b5f8115159050919050565b613c6a81613c56565b82525050565b5f602082019050613c835f830184613c61565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f613ccb82613c89565b613cd58185613c93565b9350613ce5818560208601613ca3565b613cee81613cb1565b840191505092915050565b5f6020820190508181035f830152613d118184613cc1565b905092915050565b5f819050919050565b613d2b81613d19565b8114613d35575f5ffd5b50565b5f81359050613d4681613d22565b92915050565b5f60208284031215613d6157613d60613bce565b5b5f613d6e84828501613d38565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613da082613d77565b9050919050565b613db081613d96565b82525050565b5f602082019050613dc95f830184613da7565b92915050565b613dd881613d96565b8114613de2575f5ffd5b50565b5f81359050613df381613dcf565b92915050565b5f5f60408385031215613e0f57613e0e613bce565b5b5f613e1c85828601613de5565b9250506020613e2d85828601613d38565b9150509250929050565b613e4081613c56565b8114613e4a575f5ffd5b50565b5f81359050613e5b81613e37565b92915050565b5f60208284031215613e7657613e75613bce565b5b5f613e8384828501613e4d565b91505092915050565b5f60208284031215613ea157613ea0613bce565b5b5f613eae84828501613de5565b91505092915050565b613ec081613d19565b82525050565b5f602082019050613ed95f830184613eb7565b92915050565b5f5f5f60608486031215613ef657613ef5613bce565b5b5f613f0386828701613de5565b9350506020613f1486828701613de5565b9250506040613f2586828701613d38565b9150509250925092565b5f819050919050565b5f613f52613f4d613f4884613d77565b613f2f565b613d77565b9050919050565b5f613f6382613f38565b9050919050565b5f613f7482613f59565b9050919050565b613f8481613f6a565b82525050565b5f602082019050613f9d5f830184613f7b565b92915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613fe182613cb1565b810181811067ffffffffffffffff8211171561400057613fff613fab565b5b80604052505050565b5f614012613bc5565b905061401e8282613fd8565b919050565b5f67ffffffffffffffff82111561403d5761403c613fab565b5b61404682613cb1565b9050602081019050919050565b828183375f83830152505050565b5f61407361406e84614023565b614009565b90508281526020810184848401111561408f5761408e613fa7565b5b61409a848285614053565b509392505050565b5f82601f8301126140b6576140b5613fa3565b5b81356140c6848260208601614061565b91505092915050565b5f67ffffffffffffffff8211156140e9576140e8613fab565b5b6140f282613cb1565b9050602081019050919050565b5f61411161410c846140cf565b614009565b90508281526020810184848401111561412d5761412c613fa7565b5b614138848285614053565b509392505050565b5f82601f83011261415457614153613fa3565b5b81356141648482602086016140ff565b91505092915050565b5f5f5f5f5f5f5f60e0888a03121561418857614187613bce565b5b5f6141958a828b01613d38565b97505060206141a68a828b01613d38565b965050604088013567ffffffffffffffff8111156141c7576141c6613bd2565b5b6141d38a828b016140a2565b955050606088013567ffffffffffffffff8111156141f4576141f3613bd2565b5b6142008a828b016140a2565b94505060806142118a828b01613d38565b93505060a06142228a828b01613d38565b92505060c088013567ffffffffffffffff81111561424357614242613bd2565b5b61424f8a828b01614140565b91505092959891949750929550565b5f5f6040838503121561427457614273613bce565b5b5f61428185828601613de5565b925050602061429285828601613e4d565b9150509250929050565b5f5f5f5f608085870312156142b4576142b3613bce565b5b5f6142c187828801613de5565b94505060206142d287828801613de5565b93505060406142e387828801613d38565b925050606085013567ffffffffffffffff81111561430457614303613bd2565b5b61431087828801614140565b91505092959194509250565b5f5f5f5f5f60a0868803121561433557614334613bce565b5b5f61434288828901613d38565b955050602086013567ffffffffffffffff81111561436357614362613bd2565b5b61436f888289016140a2565b945050604061438088828901613d38565b935050606061439188828901613d38565b92505060806143a288828901613d38565b9150509295509295909350565b5f5f604083850312156143c5576143c4613bce565b5b5f6143d285828601613de5565b92505060206143e385828601613de5565b9150509250929050565b5f5f6040838503121561440357614402613bce565b5b5f61441085828601613d38565b925050602083013567ffffffffffffffff81111561443157614430613bd2565b5b61443d858286016140a2565b9150509250929050565b5f61445182613f59565b9050919050565b61446181614447565b82525050565b5f60208201905061447a5f830184614458565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806144c457607f821691505b6020821081036144d7576144d6614480565b5b50919050565b7f4275726e20746f6b656e206e6f742073657400000000000000000000000000005f82015250565b5f614511601283613c93565b915061451c826144dd565b602082019050919050565b5f6020820190508181035f83015261453e81614505565b9050919050565b5f8151905061455381613d22565b92915050565b5f6020828403121561456e5761456d613bce565b5b5f61457b84828501614545565b91505092915050565b7f4e6f2062616c616e636520746f207769746864726177000000000000000000005f82015250565b5f6145b8601683613c93565b91506145c382614584565b602082019050919050565b5f6020820190508181035f8301526145e5816145ac565b9050919050565b5f6040820190506145ff5f830185613da7565b61460c6020830184613eb7565b9392505050565b5f8151905061462181613e37565b92915050565b5f6020828403121561463c5761463b613bce565b5b5f61464984828501614613565b91505092915050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f614686600f83613c93565b915061469182614652565b602082019050919050565b5f6020820190508181035f8301526146b38161467a565b9050919050565b5f6060820190506146cd5f830186613da7565b6146da6020830185613eb7565b6146e76040830184613da7565b949350505050565b7f55706461746573206172652066726f7a656e00000000000000000000000000005f82015250565b5f614723601283613c93565b915061472e826146ef565b602082019050919050565b5f6020820190508181035f83015261475081614717565b9050919050565b7f5061796f757420616464726573732063616e6e6f74206265207a65726f0000005f82015250565b5f61478b601d83613c93565b915061479682614757565b602082019050919050565b5f6020820190508181035f8301526147b88161477f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f55524c2063616e6e6f7420626520656d707479000000000000000000000000005f82015250565b5f614820601383613c93565b915061482b826147ec565b602082019050919050565b5f6020820190508181035f83015261484d81614814565b9050919050565b7f537065636965732063616e6e6f7420626520656d7074790000000000000000005f82015250565b5f614888601783613c93565b915061489382614854565b602082019050919050565b5f6020820190508181035f8301526148b58161487c565b9050919050565b7f496e76616c6964207369676e6174757265206f72206f776e65727368697000005f82015250565b5f6148f0601e83613c93565b91506148fb826148bc565b602082019050919050565b5f6020820190508181035f83015261491d816148e4565b9050919050565b7f546f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f614958601483613c93565b915061496382614924565b602082019050919050565b5f6020820190508181035f8301526149858161494c565b9050919050565b7f4d696e74696e67206973207061757365640000000000000000000000000000005f82015250565b5f6149c0601183613c93565b91506149cb8261498c565b602082019050919050565b5f6020820190508181035f8301526149ed816149b4565b9050919050565b7f496e73756666696369656e74207061796d656e740000000000000000000000005f82015250565b5f614a28601483613c93565b9150614a33826149f4565b602082019050919050565b5f6020820190508181035f830152614a5581614a1c565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302614ab87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614a7d565b614ac28683614a7d565b95508019841693508086168417925050509392505050565b5f614af4614aef614aea84613d19565b613f2f565b613d19565b9050919050565b5f819050919050565b614b0d83614ada565b614b21614b1982614afb565b848454614a89565b825550505050565b5f5f905090565b614b38614b29565b614b43818484614b04565b505050565b5b81811015614b6657614b5b5f82614b30565b600181019050614b49565b5050565b601f821115614bab57614b7c81614a5c565b614b8584614a6e565b81016020851015614b94578190505b614ba8614ba085614a6e565b830182614b48565b50505b505050565b5f82821c905092915050565b5f614bcb5f1984600802614bb0565b1980831691505092915050565b5f614be38383614bbc565b9150826002028217905092915050565b614bfc82613c89565b67ffffffffffffffff811115614c1557614c14613fab565b5b614c1f82546144ad565b614c2a828285614b6a565b5f60209050601f831160018114614c5b575f8415614c49578287015190505b614c538582614bd8565b865550614cba565b601f198416614c6986614a5c565b5f5b82811015614c9057848901518255600182019150602085019450602081019050614c6b565b86831015614cad5784890151614ca9601f891682614bbc565b8355505b6001600288020188555050505b505050505050565b7f546f6b656e20646f6573206e6f742065786973740000000000000000000000005f82015250565b5f614cf6601483613c93565b9150614d0182614cc2565b602082019050919050565b5f6020820190508181035f830152614d2381614cea565b9050919050565b7f5061796f75742061646472657373206e6f7420736574000000000000000000005f82015250565b5f614d5e601683613c93565b9150614d6982614d2a565b602082019050919050565b5f6020820190508181035f830152614d8b81614d52565b9050919050565b5f81905092915050565b50565b5f614daa5f83614d92565b9150614db582614d9c565b5f82019050919050565b5f614dc982614d9f565b9150819050919050565b7f55524c206e6f742073657420666f7220746f6b656e00000000000000000000005f82015250565b5f614e07601583613c93565b9150614e1282614dd3565b602082019050919050565b5f6020820190508181035f830152614e3481614dfb565b9050919050565b5f81905092915050565b7f7b2274726169745f74797065223a202253706563696573222c202276616c75655f8201527f223a202200000000000000000000000000000000000000000000000000000000602082015250565b5f614e9f602483614e3b565b9150614eaa82614e45565b602482019050919050565b5f614ebf82613c89565b614ec98185614e3b565b9350614ed9818560208601613ca3565b80840191505092915050565b7f227d2c00000000000000000000000000000000000000000000000000000000005f82015250565b5f614f19600383614e3b565b9150614f2482614ee5565b600382019050919050565b7f7b2274726169745f74797065223a20224265737420467269656e64222c2022765f8201527f616c7565223a2000000000000000000000000000000000000000000000000000602082015250565b5f614f89602783614e3b565b9150614f9482614f2f565b602782019050919050565b7f7d000000000000000000000000000000000000000000000000000000000000005f82015250565b5f614fd3600183614e3b565b9150614fde82614f9f565b600182019050919050565b5f614ff382614e93565b9150614fff8285614eb5565b915061500a82614f0d565b915061501582614f7d565b91506150218284614eb5565b915061502c82614fc7565b91508190509392505050565b7f2c7b2274726169745f74797065223a2022467269656e642031222c202276616c5f8201527f7565223a20000000000000000000000000000000000000000000000000000000602082015250565b5f615092602583614e3b565b915061509d82615038565b602582019050919050565b5f6150b38285614eb5565b91506150be82615086565b91506150ca8284614eb5565b91506150d582614fc7565b91508190509392505050565b7f2c7b2274726169745f74797065223a2022467269656e642032222c202276616c5f8201527f7565223a20000000000000000000000000000000000000000000000000000000602082015250565b5f61513b602583614e3b565b9150615146826150e1565b602582019050919050565b5f61515c8285614eb5565b91506151678261512f565b91506151738284614eb5565b915061517e82614fc7565b91508190509392505050565b7f7b226e616d65223a20225065746c6574202300000000000000000000000000005f82015250565b5f6151be601283614e3b565b91506151c98261518a565b601282019050919050565b7f222c20226465736372697074696f6e223a20225065746c6574732061726520735f8201527f6d616c6c2c206d61676963616c20636f6d70616e696f6e732077686f2063686f60208201527f6f736520746865697220576172706c6574206261736564206f6e20737562746c60408201527f65207061747465726e73206f6620667269656e647368697020616e6420636f6e60608201527f6e656374696f6e2e2045616368205065746c657420697320756e69717565206160808201527f6e642061727269766573206f6e6c79207768656e20746865206d61746368206660a08201527f65656c732072696768742e205065746c657473206172652041492d67656e657260c08201527f617465642066726f6d2046617263617374657220736f6369616c20696e74657260e08201527f616374696f6e20646174612c206d657267696e67207472616974732066726f6d6101008201527f20796f757220636c6f7365737420667269656e647320696e746f20616e206f6e6101208201527f636861696e20636f6d70616e696f6e2e222c2022696d616765223a202200000061014082015250565b5f61538861015d83614e3b565b9150615393826151d4565b61015d82019050919050565b7f222c202261747472696275746573223a205b00000000000000000000000000005f82015250565b5f6153d3601283614e3b565b91506153de8261539f565b601282019050919050565b7f5d7d0000000000000000000000000000000000000000000000000000000000005f82015250565b5f61541d600283614e3b565b9150615428826153e9565b600282019050919050565b5f61543d826151b2565b91506154498286614eb5565b91506154548261537b565b91506154608285614eb5565b915061546b826153c7565b91506154778284614eb5565b915061548282615411565b9150819050949350505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000005f82015250565b5f6154c3601d83614e3b565b91506154ce8261548f565b601d82019050919050565b5f6154e3826154b7565b91506154ef8284614eb5565b915081905092915050565b5f8151905061550881613dcf565b92915050565b5f6020828403121561552357615522613bce565b5b5f615530848285016154fa565b91505092915050565b5f8160601b9050919050565b5f61554f82615539565b9050919050565b5f61556082615545565b9050919050565b61557861557382613d96565b615556565b82525050565b7f50455400000000000000000000000000000000000000000000000000000000005f82015250565b5f6155b2600383614e3b565b91506155bd8261557e565b600382019050919050565b5f819050919050565b6155e26155dd82613d19565b6155c8565b82525050565b5f6155f3828a615567565b6014820191506156038289615567565b601482019150615612826155a6565b915061561e82886155d1565b60208201915061562e8287614eb5565b915061563a8286614eb5565b915061564682856155d1565b60208201915061565682846155d1565b60208201915081905098975050505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f61568f8261566b565b6156998185615675565b93506156a9818560208601613ca3565b6156b281613cb1565b840191505092915050565b5f6080820190506156d05f830187613da7565b6156dd6020830186613da7565b6156ea6040830185613eb7565b81810360608301526156fc8184615685565b905095945050505050565b5f8151905061571581613c01565b92915050565b5f602082840312156157305761572f613bce565b5b5f61573d84828501615707565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61577d82613d19565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036157af576157ae615746565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6157f182613d19565b91506157fc83613d19565b92508261580c5761580b6157ba565b5b828204905092915050565b5f61582182613d19565b915061582c83613d19565b925082820390508181111561584457615843615746565b5b92915050565b5f61585482613d19565b915061585f83613d19565b92508261586f5761586e6157ba565b5b828206905092915050565b5f61588482613d19565b915061588f83613d19565b92508282019050808211156158a7576158a6615746565b5b92915050565b5f6158b782613d19565b91506158c283613d19565b92508282026158d081613d19565b915082820484148315176158e7576158e6615746565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f819050919050565b61595a81615948565b82525050565b5f6020820190506159735f830184615951565b92915050565b5f60ff82169050919050565b61598e81615979565b82525050565b5f6080820190506159a75f830187615951565b6159b46020830186615985565b6159c16040830185615951565b6159ce6060830184615951565b9594505050505056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa26469706673582212207638d92f8a362934fd778df5cfc979b33d2a6c40a91a74adb525d68175a585ba64736f6c634300081b0033
Deployed Bytecode
0x60806040526004361061025b575f3560e01c80636817c76c11610143578063c364c0be116100b5578063e92d0e3b11610079578063e92d0e3b1461088b578063e985e9c5146108b3578063f2fde38b146108ef578063f4a0a52814610917578063f7bc440c1461093f578063faa0a264146109675761025b565b8063c364c0be146107bf578063c4c85ae0146107e7578063c54cf8b414610811578063c87b56dd14610827578063cc43f3d3146108635761025b565b80638da5cb5b116101075780638da5cb5b146106cb57806395d89b41146106f5578063a22cb4651461071f578063aa7c241f14610747578063b88d4fde1461076f578063c3587980146107975761025b565b80636817c76c1461060b5780636937dc62146106355780636cf3cb081461065d57806370a0823114610679578063715018a6146106b55761025b565b806323b872dd116101dc578063486a7e6b116101a0578063486a7e6b146104eb5780634e6fd6c4146105155780634f6ccce71461053f5780635b8d02d71461057b5780635c975abb146105a55780636352211e146105cf5761025b565b806323b872dd1461040d57806324106c3e146104355780632f745c591461045f57806333ea51a81461049b57806342842e0e146104c35761025b565b806317e955261161022357806317e955261461035157806318160ddd1461037957806318bdffbb146103a357806320524a77146103cd578063208b5059146103f75761025b565b806301ffc9a71461025f57806306fdde031461029b578063081812fc146102c5578063095ea7b31461030157806316c38b3c14610329575b5f5ffd5b34801561026a575f5ffd5b5061028560048036038101906102809190613c2b565b610991565b6040516102929190613c70565b60405180910390f35b3480156102a6575f5ffd5b506102af610a0a565b6040516102bc9190613cf9565b60405180910390f35b3480156102d0575f5ffd5b506102eb60048036038101906102e69190613d4c565b610a99565b6040516102f89190613db6565b60405180910390f35b34801561030c575f5ffd5b5061032760048036038101906103229190613df9565b610ab4565b005b348015610334575f5ffd5b5061034f600480360381019061034a9190613e61565b610aca565b005b34801561035c575f5ffd5b5061037760048036038101906103729190613e8c565b610af1565b005b348015610384575f5ffd5b5061038d610b3c565b60405161039a9190613ec6565b60405180910390f35b3480156103ae575f5ffd5b506103b7610b48565b6040516103c49190613db6565b60405180910390f35b3480156103d8575f5ffd5b506103e1610b6d565b6040516103ee9190613c70565b60405180910390f35b348015610402575f5ffd5b5061040b610b80565b005b348015610418575f5ffd5b50610433600480360381019061042e9190613edf565b610dd3565b005b348015610440575f5ffd5b50610449610ed2565b6040516104569190613f8a565b60405180910390f35b34801561046a575f5ffd5b5061048560048036038101906104809190613df9565b610ef7565b6040516104929190613ec6565b60405180910390f35b3480156104a6575f5ffd5b506104c160048036038101906104bc9190613e8c565b610f9b565b005b3480156104ce575f5ffd5b506104e960048036038101906104e49190613edf565b6110a3565b005b3480156104f6575f5ffd5b506104ff6110c2565b60405161050c9190613ec6565b60405180910390f35b348015610520575f5ffd5b506105296110c8565b6040516105369190613db6565b60405180910390f35b34801561054a575f5ffd5b5061056560048036038101906105609190613d4c565b6110ce565b6040516105729190613ec6565b60405180910390f35b348015610586575f5ffd5b5061058f611140565b60405161059c9190613db6565b60405180910390f35b3480156105b0575f5ffd5b506105b9611165565b6040516105c69190613c70565b60405180910390f35b3480156105da575f5ffd5b506105f560048036038101906105f09190613d4c565b61117b565b6040516106029190613db6565b60405180910390f35b348015610616575f5ffd5b5061061f61118c565b60405161062c9190613ec6565b60405180910390f35b348015610640575f5ffd5b5061065b60048036038101906106569190613e8c565b611192565b005b6106776004803603810190610672919061416d565b61122c565b005b348015610684575f5ffd5b5061069f600480360381019061069a9190613e8c565b6116ef565b6040516106ac9190613ec6565b60405180910390f35b3480156106c0575f5ffd5b506106c96117a5565b005b3480156106d6575f5ffd5b506106df6117b8565b6040516106ec9190613db6565b60405180910390f35b348015610700575f5ffd5b506107096117e0565b6040516107169190613cf9565b60405180910390f35b34801561072a575f5ffd5b506107456004803603810190610740919061425e565b611870565b005b348015610752575f5ffd5b5061076d60048036038101906107689190613e61565b611886565b005b34801561077a575f5ffd5b506107956004803603810190610790919061429c565b6118aa565b005b3480156107a2575f5ffd5b506107bd60048036038101906107b89190613e8c565b6118cf565b005b3480156107ca575f5ffd5b506107e560048036038101906107e0919061431c565b611969565b005b3480156107f2575f5ffd5b506107fb611a76565b6040516108089190613c70565b60405180910390f35b34801561081c575f5ffd5b50610825611a88565b005b348015610832575f5ffd5b5061084d60048036038101906108489190613d4c565b611beb565b60405161085a9190613cf9565b60405180910390f35b34801561086e575f5ffd5b5061088960048036038101906108849190613d4c565b611eef565b005b348015610896575f5ffd5b506108b160048036038101906108ac9190613e61565b611f50565b005b3480156108be575f5ffd5b506108d960048036038101906108d491906143af565b611fc4565b6040516108e69190613c70565b60405180910390f35b3480156108fa575f5ffd5b5061091560048036038101906109109190613e8c565b612052565b005b348015610922575f5ffd5b5061093d60048036038101906109389190613d4c565b6120d6565b005b34801561094a575f5ffd5b50610965600480360381019061096091906143ed565b612137565b005b348015610972575f5ffd5b5061097b6121f9565b6040516109889190614467565b60405180910390f35b5f7f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a035750610a028261221e565b5b9050919050565b60605f8054610a18906144ad565b80601f0160208091040260200160405190810160405280929190818152602001828054610a44906144ad565b8015610a8f5780601f10610a6657610100808354040283529160200191610a8f565b820191905f5260205f20905b815481529060010190602001808311610a7257829003601f168201915b5050505050905090565b5f610aa3826122ff565b50610aad82612385565b9050919050565b610ac68282610ac16123be565b6123c5565b5050565b610ad26123d7565b8015610ae557610ae061245e565b610aee565b610aed6124c1565b5b50565b610af96123d7565b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f600880549050905090565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060149054906101000a900460ff1681565b610b886123d7565b5f73ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0e90614527565b60405180910390fd5b5f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c729190613db6565b602060405180830381865afa158015610c8d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb19190614559565b90505f8111610cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cec906145ce565b60405180910390fd5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610d519291906145ec565b6020604051808303815f875af1158015610d6d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d919190614627565b610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc79061469c565b60405180910390fd5b50565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e43575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610e3a9190613db6565b60405180910390fd5b5f610e568383610e516123be565b612523565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ecc578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610ec3939291906146ba565b60405180910390fd5b50505050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610f01836116ef565b8210610f465782826040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610f3d9291906145ec565b60405180910390fd5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b610fa36123d7565b600e5f9054906101000a900460ff1615610ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe990614739565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611060576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611057906147a1565b60405180910390fd5b8060105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6110bd83838360405180602001604052805f8152506118aa565b505050565b600d5481565b61dead81565b5f6110d7610b3c565b821061111c575f826040517fa57d13dc0000000000000000000000000000000000000000000000000000000081526004016111139291906145ec565b60405180910390fd5b600882815481106111305761112f6147bf565b5b905f5260205f2001549050919050565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600a60149054906101000a900460ff16905090565b5f611185826122ff565b9050919050565b600f5481565b61119a6123d7565b600e5f9054906101000a900460ff16156111e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e090614739565b60405180910390fd5b8060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f85511161126f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126690614836565b60405180910390fd5b5f8451116112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a99061489e565b60405180910390fd5b5f5f9050601060149054906101000a900460ff16801561131f57505f73ffffffffffffffffffffffffffffffffffffffff1660115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b156113355761132e338961263d565b90506113a1565b5f73ffffffffffffffffffffffffffffffffffffffff16600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a0575f611399338a8989898989612717565b9050809150505b5b806113e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d890614906565b60405180910390fd5b6113ea886127c7565b1561142a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114219061496e565b60405180910390fd5b611432611165565b15611472576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611469906149d6565b60405180910390fd5b600f543410156114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae90614a3e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156115ae5750600d54600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161156c9190613db6565b602060405180830381865afa158015611587573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ab9190614559565b10155b1561165557600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead600d546040518363ffffffff1660e01b81526004016116139291906145ec565b6020604051808303815f875af115801561162f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116539190614627565b505b61165f3389612807565b8560125f8a81526020019081526020015f20908161167d9190614bf3565b5060405180608001604052808681526020018881526020018581526020018481525060135f8a81526020019081526020015f205f820151815f0190816116c39190614bf3565b506020820151816001015560408201518160020155606082015181600301559050505050505050505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611760575f6040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016117579190613db6565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6117ad6123d7565b6117b65f612824565b565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600180546117ef906144ad565b80601f016020809104026020016040519081016040528092919081815260200182805461181b906144ad565b80156118665780601f1061183d57610100808354040283529160200191611866565b820191905f5260205f20905b81548152906001019060200180831161184957829003601f168201915b5050505050905090565b61188261187b6123be565b83836128e7565b5050565b61188e6123d7565b80600e5f6101000a81548160ff02191690831515021790555050565b6118b5848484610dd3565b6118c96118c06123be565b85858585612a50565b50505050565b6118d76123d7565b600e5f9054906101000a900460ff1615611926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191d90614739565b60405180910390fd5b80600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6119716123d7565b600e5f9054906101000a900460ff16156119c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b790614739565b60405180910390fd5b6119c9856127c7565b611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ff90614d0c565b60405180910390fd5b60405180608001604052808581526020018481526020018381526020018281525060135f8781526020019081526020015f205f820151815f019081611a4d9190614bf3565b506020820151816001015560408201518160020155606082015181600301559050505050505050565b600e5f9054906101000a900460ff1681565b611a906123d7565b5f73ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1690614d74565b60405180910390fd5b5f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051611b6590614dbf565b5f6040518083038185875af1925050503d805f8114611b9f576040519150601f19603f3d011682016040523d82523d5f602084013e611ba4565b606091505b5050905080611be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdf9061469c565b60405180910390fd5b50565b6060611bf6826127c7565b611c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2c90614d0c565b60405180910390fd5b5f60125f8481526020019081526020015f208054611c52906144ad565b80601f0160208091040260200160405190810160405280929190818152602001828054611c7e906144ad565b8015611cc95780601f10611ca057610100808354040283529160200191611cc9565b820191905f5260205f20905b815481529060010190602001808311611cac57829003601f168201915b505050505090505f815111611d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0a90614e1d565b60405180910390fd5b5f60135f8581526020019081526020015f206040518060800160405290815f82018054611d3f906144ad565b80601f0160208091040260200160405190810160405280929190818152602001828054611d6b906144ad565b8015611db65780601f10611d8d57610100808354040283529160200191611db6565b820191905f5260205f20905b815481529060010190602001808311611d9957829003601f168201915b50505050508152602001600182015481526020016002820154815260200160038201548152505090505f815f0151611df18360200151612bfc565b604051602001611e02929190614fe9565b60405160208183030381529060405290505f82604001511115611e505780611e2d8360400151612bfc565b604051602001611e3e9291906150a8565b60405160208183030381529060405290505b5f82606001511115611e8d5780611e6a8360600151612bfc565b604051602001611e7b929190615151565b60405160208183030381529060405290505b5f611ec2611e9a87612bfc565b8584604051602001611eae93929190615433565b604051602081830303815290604052612d55565b905080604051602001611ed591906154d9565b604051602081830303815290604052945050505050919050565b611ef76123d7565b600e5f9054906101000a900460ff1615611f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3d90614739565b60405180910390fd5b80600d8190555050565b611f586123d7565b600e5f9054906101000a900460ff1615611fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9e90614739565b60405180910390fd5b80601060146101000a81548160ff02191690831515021790555050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b61205a6123d7565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120ca575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016120c19190613db6565b60405180910390fd5b6120d381612824565b50565b6120de6123d7565b600e5f9054906101000a900460ff161561212d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212490614739565b60405180910390fd5b80600f8190555050565b61213f6123d7565b600e5f9054906101000a900460ff161561218e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218590614739565b60405180910390fd5b612197826127c7565b6121d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121cd90614d0c565b60405180910390fd5b8060125f8481526020019081526020015f2090816121f49190614bf3565b505050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806122e857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806122f857506122f782612ee5565b5b9050919050565b5f5f61230a83612f4e565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361237c57826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016123739190613ec6565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6123d28383836001612f87565b505050565b6123df6123be565b73ffffffffffffffffffffffffffffffffffffffff166123fd6117b8565b73ffffffffffffffffffffffffffffffffffffffff161461245c576124206123be565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016124539190613db6565b60405180910390fd5b565b612466613146565b6001600a60146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124aa6123be565b6040516124b79190613db6565b60405180910390a1565b6124c9613187565b5f600a60146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61250c6123be565b6040516125199190613db6565b60405180910390a1565b5f5f6125308585856131c7565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036125735761256e846133d2565b6125b2565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146125b1576125b08185613416565b5b5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036125f3576125ee846134ed565b612632565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146126315761263085856135ad565b5b5b809150509392505050565b5f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004016126989190613ec6565b602060405180830381865afa9250505080156126d257506040513d601f19601f820116820180604052508101906126cf919061550e565b60015b6126de575f9050612711565b8373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16149150505b92915050565b5f5f8830898989898960405160200161273697969594939291906155e8565b6040516020818303038152906040528051906020012090505f61275882613631565b90505f6127658286613664565b9050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16149350505050979650505050505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff166127e883612f4e565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b612820828260405180602001604052805f81525061368e565b5050565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361295757816040517f5b08ba1800000000000000000000000000000000000000000000000000000000815260040161294e9190613db6565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612a439190613c70565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115612bf5578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401612aae94939291906156bd565b6020604051808303815f875af1925050508015612ae957506040513d601f19601f82011682018060405250810190612ae6919061571b565b60015b612b6a573d805f8114612b17576040519150601f19603f3d011682016040523d82523d5f602084013e612b1c565b606091505b505f815103612b6257836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612b599190613db6565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612bf357836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612bea9190613db6565b60405180910390fd5b505b5050505050565b60605f8203612c42576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612d50565b5f8290505f5b5f8214612c71578080612c5a90615773565b915050600a82612c6a91906157e7565b9150612c48565b5f8167ffffffffffffffff811115612c8c57612c8b613fab565b5b6040519080825280601f01601f191660200182016040528015612cbe5781602001600182028036833780820191505090505b5090505b5f8514612d4957600182612cd69190615817565b9150600a85612ce5919061584a565b6030612cf1919061587a565b60f81b818381518110612d0757612d066147bf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85612d4291906157e7565b9450612cc2565b8093505050505b919050565b60605f825190505f8103612d7a5760405180602001604052805f815250915050612ee0565b5f6003600283612d8a919061587a565b612d9491906157e7565b6004612da091906158ad565b90505f602082612db0919061587a565b67ffffffffffffffff811115612dc957612dc8613fab565b5b6040519080825280601f01601f191660200182016040528015612dfb5781602001600182028036833780820191505090505b5090505f6040518060600160405280604081526020016159d860409139905060018101602083015f5b86811015612e9d5760038101905062ffffff818a015116603f8160121c168401518060081b905060ff603f83600c1c1686015116810190508060081b905060ff603f8360061c1686015116810190508060081b905060ff603f831686015116810190508060e01b90508084526004840193505050612e24565b506003860660018114612eb75760028114612ec757612ed2565b613d3d60f01b6002830352612ed2565b603d60f81b60018303525b508484525050819450505050505b919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080612fbf57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156130f1575f612fce846122ff565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561303857508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561304b57506130498184611fc4565b155b1561308d57826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016130849190613db6565b60405180910390fd5b81156130ef57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b61314e611165565b15613185576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b61318f611165565b6131c5576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f5f6131d284612f4e565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614613213576132128184866136b1565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461329e576132525f855f5f612f87565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461331d57600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b60088054905060095f8381526020019081526020015f2081905550600881908060018154018082558091505060019003905f5260205f20015f909190919091505550565b5f613420836116ef565b90505f60075f8481526020019081526020015f205490505f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090508282146134bf575f815f8581526020019081526020015f2054905080825f8581526020019081526020015f20819055508260075f8381526020019081526020015f2081905550505b60075f8581526020019081526020015f205f9055805f8481526020019081526020015f205f90555050505050565b5f60016008805490506135009190615817565b90505f60095f8481526020019081526020015f205490505f6008838154811061352c5761352b6147bf565b5b905f5260205f2001549050806008838154811061354c5761354b6147bf565b5b905f5260205f2001819055508160095f8381526020019081526020015f208190555060095f8581526020019081526020015f205f90556008805480613594576135936158ee565b5b600190038181905f5260205f20015f9055905550505050565b5f60016135b9846116ef565b6135c39190615817565b90508160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20819055508060075f8481526020019081526020015f2081905550505050565b5f7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f5281601c52603c5f209050919050565b5f5f5f5f6136728686613774565b92509250925061368282826137c9565b82935050505092915050565b613698838361392b565b6136ac6136a36123be565b5f858585612a50565b505050565b6136bc838383613a1e565b61376f575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361373057806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016137279190613ec6565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016137669291906145ec565b60405180910390fd5b505050565b5f5f5f60418451036137b4575f5f5f602087015192506040870151915060608701515f1a90506137a688828585613ade565b9550955095505050506137c2565b5f600285515f1b9250925092505b9250925092565b5f60038111156137dc576137db61591b565b5b8260038111156137ef576137ee61591b565b5b031561392757600160038111156138095761380861591b565b5b82600381111561381c5761381b61591b565b5b03613853576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156138675761386661591b565b5b82600381111561387a5761387961591b565b5b036138be57805f1c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016138b59190613ec6565b60405180910390fd5b6003808111156138d1576138d061591b565b5b8260038111156138e4576138e361591b565b5b0361392657806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161391d9190615960565b60405180910390fd5b5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361399b575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016139929190613db6565b60405180910390fd5b5f6139a783835f612523565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613a19575f6040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401613a109190613db6565b60405180910390fd5b505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613ad557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480613a965750613a958484611fc4565b5b80613ad457508273ffffffffffffffffffffffffffffffffffffffff16613abc83612385565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c1115613b1a575f600385925092509250613bbb565b5f6001888888886040515f8152602001604052604051613b3d9493929190615994565b6020604051602081039080840390855afa158015613b5d573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613bae575f60015f5f1b93509350935050613bbb565b805f5f5f1b935093509350505b9450945094915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613c0a81613bd6565b8114613c14575f5ffd5b50565b5f81359050613c2581613c01565b92915050565b5f60208284031215613c4057613c3f613bce565b5b5f613c4d84828501613c17565b91505092915050565b5f8115159050919050565b613c6a81613c56565b82525050565b5f602082019050613c835f830184613c61565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f613ccb82613c89565b613cd58185613c93565b9350613ce5818560208601613ca3565b613cee81613cb1565b840191505092915050565b5f6020820190508181035f830152613d118184613cc1565b905092915050565b5f819050919050565b613d2b81613d19565b8114613d35575f5ffd5b50565b5f81359050613d4681613d22565b92915050565b5f60208284031215613d6157613d60613bce565b5b5f613d6e84828501613d38565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613da082613d77565b9050919050565b613db081613d96565b82525050565b5f602082019050613dc95f830184613da7565b92915050565b613dd881613d96565b8114613de2575f5ffd5b50565b5f81359050613df381613dcf565b92915050565b5f5f60408385031215613e0f57613e0e613bce565b5b5f613e1c85828601613de5565b9250506020613e2d85828601613d38565b9150509250929050565b613e4081613c56565b8114613e4a575f5ffd5b50565b5f81359050613e5b81613e37565b92915050565b5f60208284031215613e7657613e75613bce565b5b5f613e8384828501613e4d565b91505092915050565b5f60208284031215613ea157613ea0613bce565b5b5f613eae84828501613de5565b91505092915050565b613ec081613d19565b82525050565b5f602082019050613ed95f830184613eb7565b92915050565b5f5f5f60608486031215613ef657613ef5613bce565b5b5f613f0386828701613de5565b9350506020613f1486828701613de5565b9250506040613f2586828701613d38565b9150509250925092565b5f819050919050565b5f613f52613f4d613f4884613d77565b613f2f565b613d77565b9050919050565b5f613f6382613f38565b9050919050565b5f613f7482613f59565b9050919050565b613f8481613f6a565b82525050565b5f602082019050613f9d5f830184613f7b565b92915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613fe182613cb1565b810181811067ffffffffffffffff8211171561400057613fff613fab565b5b80604052505050565b5f614012613bc5565b905061401e8282613fd8565b919050565b5f67ffffffffffffffff82111561403d5761403c613fab565b5b61404682613cb1565b9050602081019050919050565b828183375f83830152505050565b5f61407361406e84614023565b614009565b90508281526020810184848401111561408f5761408e613fa7565b5b61409a848285614053565b509392505050565b5f82601f8301126140b6576140b5613fa3565b5b81356140c6848260208601614061565b91505092915050565b5f67ffffffffffffffff8211156140e9576140e8613fab565b5b6140f282613cb1565b9050602081019050919050565b5f61411161410c846140cf565b614009565b90508281526020810184848401111561412d5761412c613fa7565b5b614138848285614053565b509392505050565b5f82601f83011261415457614153613fa3565b5b81356141648482602086016140ff565b91505092915050565b5f5f5f5f5f5f5f60e0888a03121561418857614187613bce565b5b5f6141958a828b01613d38565b97505060206141a68a828b01613d38565b965050604088013567ffffffffffffffff8111156141c7576141c6613bd2565b5b6141d38a828b016140a2565b955050606088013567ffffffffffffffff8111156141f4576141f3613bd2565b5b6142008a828b016140a2565b94505060806142118a828b01613d38565b93505060a06142228a828b01613d38565b92505060c088013567ffffffffffffffff81111561424357614242613bd2565b5b61424f8a828b01614140565b91505092959891949750929550565b5f5f6040838503121561427457614273613bce565b5b5f61428185828601613de5565b925050602061429285828601613e4d565b9150509250929050565b5f5f5f5f608085870312156142b4576142b3613bce565b5b5f6142c187828801613de5565b94505060206142d287828801613de5565b93505060406142e387828801613d38565b925050606085013567ffffffffffffffff81111561430457614303613bd2565b5b61431087828801614140565b91505092959194509250565b5f5f5f5f5f60a0868803121561433557614334613bce565b5b5f61434288828901613d38565b955050602086013567ffffffffffffffff81111561436357614362613bd2565b5b61436f888289016140a2565b945050604061438088828901613d38565b935050606061439188828901613d38565b92505060806143a288828901613d38565b9150509295509295909350565b5f5f604083850312156143c5576143c4613bce565b5b5f6143d285828601613de5565b92505060206143e385828601613de5565b9150509250929050565b5f5f6040838503121561440357614402613bce565b5b5f61441085828601613d38565b925050602083013567ffffffffffffffff81111561443157614430613bd2565b5b61443d858286016140a2565b9150509250929050565b5f61445182613f59565b9050919050565b61446181614447565b82525050565b5f60208201905061447a5f830184614458565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806144c457607f821691505b6020821081036144d7576144d6614480565b5b50919050565b7f4275726e20746f6b656e206e6f742073657400000000000000000000000000005f82015250565b5f614511601283613c93565b915061451c826144dd565b602082019050919050565b5f6020820190508181035f83015261453e81614505565b9050919050565b5f8151905061455381613d22565b92915050565b5f6020828403121561456e5761456d613bce565b5b5f61457b84828501614545565b91505092915050565b7f4e6f2062616c616e636520746f207769746864726177000000000000000000005f82015250565b5f6145b8601683613c93565b91506145c382614584565b602082019050919050565b5f6020820190508181035f8301526145e5816145ac565b9050919050565b5f6040820190506145ff5f830185613da7565b61460c6020830184613eb7565b9392505050565b5f8151905061462181613e37565b92915050565b5f6020828403121561463c5761463b613bce565b5b5f61464984828501614613565b91505092915050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f614686600f83613c93565b915061469182614652565b602082019050919050565b5f6020820190508181035f8301526146b38161467a565b9050919050565b5f6060820190506146cd5f830186613da7565b6146da6020830185613eb7565b6146e76040830184613da7565b949350505050565b7f55706461746573206172652066726f7a656e00000000000000000000000000005f82015250565b5f614723601283613c93565b915061472e826146ef565b602082019050919050565b5f6020820190508181035f83015261475081614717565b9050919050565b7f5061796f757420616464726573732063616e6e6f74206265207a65726f0000005f82015250565b5f61478b601d83613c93565b915061479682614757565b602082019050919050565b5f6020820190508181035f8301526147b88161477f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f55524c2063616e6e6f7420626520656d707479000000000000000000000000005f82015250565b5f614820601383613c93565b915061482b826147ec565b602082019050919050565b5f6020820190508181035f83015261484d81614814565b9050919050565b7f537065636965732063616e6e6f7420626520656d7074790000000000000000005f82015250565b5f614888601783613c93565b915061489382614854565b602082019050919050565b5f6020820190508181035f8301526148b58161487c565b9050919050565b7f496e76616c6964207369676e6174757265206f72206f776e65727368697000005f82015250565b5f6148f0601e83613c93565b91506148fb826148bc565b602082019050919050565b5f6020820190508181035f83015261491d816148e4565b9050919050565b7f546f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f614958601483613c93565b915061496382614924565b602082019050919050565b5f6020820190508181035f8301526149858161494c565b9050919050565b7f4d696e74696e67206973207061757365640000000000000000000000000000005f82015250565b5f6149c0601183613c93565b91506149cb8261498c565b602082019050919050565b5f6020820190508181035f8301526149ed816149b4565b9050919050565b7f496e73756666696369656e74207061796d656e740000000000000000000000005f82015250565b5f614a28601483613c93565b9150614a33826149f4565b602082019050919050565b5f6020820190508181035f830152614a5581614a1c565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302614ab87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614a7d565b614ac28683614a7d565b95508019841693508086168417925050509392505050565b5f614af4614aef614aea84613d19565b613f2f565b613d19565b9050919050565b5f819050919050565b614b0d83614ada565b614b21614b1982614afb565b848454614a89565b825550505050565b5f5f905090565b614b38614b29565b614b43818484614b04565b505050565b5b81811015614b6657614b5b5f82614b30565b600181019050614b49565b5050565b601f821115614bab57614b7c81614a5c565b614b8584614a6e565b81016020851015614b94578190505b614ba8614ba085614a6e565b830182614b48565b50505b505050565b5f82821c905092915050565b5f614bcb5f1984600802614bb0565b1980831691505092915050565b5f614be38383614bbc565b9150826002028217905092915050565b614bfc82613c89565b67ffffffffffffffff811115614c1557614c14613fab565b5b614c1f82546144ad565b614c2a828285614b6a565b5f60209050601f831160018114614c5b575f8415614c49578287015190505b614c538582614bd8565b865550614cba565b601f198416614c6986614a5c565b5f5b82811015614c9057848901518255600182019150602085019450602081019050614c6b565b86831015614cad5784890151614ca9601f891682614bbc565b8355505b6001600288020188555050505b505050505050565b7f546f6b656e20646f6573206e6f742065786973740000000000000000000000005f82015250565b5f614cf6601483613c93565b9150614d0182614cc2565b602082019050919050565b5f6020820190508181035f830152614d2381614cea565b9050919050565b7f5061796f75742061646472657373206e6f7420736574000000000000000000005f82015250565b5f614d5e601683613c93565b9150614d6982614d2a565b602082019050919050565b5f6020820190508181035f830152614d8b81614d52565b9050919050565b5f81905092915050565b50565b5f614daa5f83614d92565b9150614db582614d9c565b5f82019050919050565b5f614dc982614d9f565b9150819050919050565b7f55524c206e6f742073657420666f7220746f6b656e00000000000000000000005f82015250565b5f614e07601583613c93565b9150614e1282614dd3565b602082019050919050565b5f6020820190508181035f830152614e3481614dfb565b9050919050565b5f81905092915050565b7f7b2274726169745f74797065223a202253706563696573222c202276616c75655f8201527f223a202200000000000000000000000000000000000000000000000000000000602082015250565b5f614e9f602483614e3b565b9150614eaa82614e45565b602482019050919050565b5f614ebf82613c89565b614ec98185614e3b565b9350614ed9818560208601613ca3565b80840191505092915050565b7f227d2c00000000000000000000000000000000000000000000000000000000005f82015250565b5f614f19600383614e3b565b9150614f2482614ee5565b600382019050919050565b7f7b2274726169745f74797065223a20224265737420467269656e64222c2022765f8201527f616c7565223a2000000000000000000000000000000000000000000000000000602082015250565b5f614f89602783614e3b565b9150614f9482614f2f565b602782019050919050565b7f7d000000000000000000000000000000000000000000000000000000000000005f82015250565b5f614fd3600183614e3b565b9150614fde82614f9f565b600182019050919050565b5f614ff382614e93565b9150614fff8285614eb5565b915061500a82614f0d565b915061501582614f7d565b91506150218284614eb5565b915061502c82614fc7565b91508190509392505050565b7f2c7b2274726169745f74797065223a2022467269656e642031222c202276616c5f8201527f7565223a20000000000000000000000000000000000000000000000000000000602082015250565b5f615092602583614e3b565b915061509d82615038565b602582019050919050565b5f6150b38285614eb5565b91506150be82615086565b91506150ca8284614eb5565b91506150d582614fc7565b91508190509392505050565b7f2c7b2274726169745f74797065223a2022467269656e642032222c202276616c5f8201527f7565223a20000000000000000000000000000000000000000000000000000000602082015250565b5f61513b602583614e3b565b9150615146826150e1565b602582019050919050565b5f61515c8285614eb5565b91506151678261512f565b91506151738284614eb5565b915061517e82614fc7565b91508190509392505050565b7f7b226e616d65223a20225065746c6574202300000000000000000000000000005f82015250565b5f6151be601283614e3b565b91506151c98261518a565b601282019050919050565b7f222c20226465736372697074696f6e223a20225065746c6574732061726520735f8201527f6d616c6c2c206d61676963616c20636f6d70616e696f6e732077686f2063686f60208201527f6f736520746865697220576172706c6574206261736564206f6e20737562746c60408201527f65207061747465726e73206f6620667269656e647368697020616e6420636f6e60608201527f6e656374696f6e2e2045616368205065746c657420697320756e69717565206160808201527f6e642061727269766573206f6e6c79207768656e20746865206d61746368206660a08201527f65656c732072696768742e205065746c657473206172652041492d67656e657260c08201527f617465642066726f6d2046617263617374657220736f6369616c20696e74657260e08201527f616374696f6e20646174612c206d657267696e67207472616974732066726f6d6101008201527f20796f757220636c6f7365737420667269656e647320696e746f20616e206f6e6101208201527f636861696e20636f6d70616e696f6e2e222c2022696d616765223a202200000061014082015250565b5f61538861015d83614e3b565b9150615393826151d4565b61015d82019050919050565b7f222c202261747472696275746573223a205b00000000000000000000000000005f82015250565b5f6153d3601283614e3b565b91506153de8261539f565b601282019050919050565b7f5d7d0000000000000000000000000000000000000000000000000000000000005f82015250565b5f61541d600283614e3b565b9150615428826153e9565b600282019050919050565b5f61543d826151b2565b91506154498286614eb5565b91506154548261537b565b91506154608285614eb5565b915061546b826153c7565b91506154778284614eb5565b915061548282615411565b9150819050949350505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000005f82015250565b5f6154c3601d83614e3b565b91506154ce8261548f565b601d82019050919050565b5f6154e3826154b7565b91506154ef8284614eb5565b915081905092915050565b5f8151905061550881613dcf565b92915050565b5f6020828403121561552357615522613bce565b5b5f615530848285016154fa565b91505092915050565b5f8160601b9050919050565b5f61554f82615539565b9050919050565b5f61556082615545565b9050919050565b61557861557382613d96565b615556565b82525050565b7f50455400000000000000000000000000000000000000000000000000000000005f82015250565b5f6155b2600383614e3b565b91506155bd8261557e565b600382019050919050565b5f819050919050565b6155e26155dd82613d19565b6155c8565b82525050565b5f6155f3828a615567565b6014820191506156038289615567565b601482019150615612826155a6565b915061561e82886155d1565b60208201915061562e8287614eb5565b915061563a8286614eb5565b915061564682856155d1565b60208201915061565682846155d1565b60208201915081905098975050505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f61568f8261566b565b6156998185615675565b93506156a9818560208601613ca3565b6156b281613cb1565b840191505092915050565b5f6080820190506156d05f830187613da7565b6156dd6020830186613da7565b6156ea6040830185613eb7565b81810360608301526156fc8184615685565b905095945050505050565b5f8151905061571581613c01565b92915050565b5f602082840312156157305761572f613bce565b5b5f61573d84828501615707565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61577d82613d19565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036157af576157ae615746565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6157f182613d19565b91506157fc83613d19565b92508261580c5761580b6157ba565b5b828204905092915050565b5f61582182613d19565b915061582c83613d19565b925082820390508181111561584457615843615746565b5b92915050565b5f61585482613d19565b915061585f83613d19565b92508261586f5761586e6157ba565b5b828206905092915050565b5f61588482613d19565b915061588f83613d19565b92508282019050808211156158a7576158a6615746565b5b92915050565b5f6158b782613d19565b91506158c283613d19565b92508282026158d081613d19565b915082820484148315176158e7576158e6615746565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f819050919050565b61595a81615948565b82525050565b5f6020820190506159735f830184615951565b92915050565b5f60ff82169050919050565b61598e81615979565b82525050565b5f6080820190506159a75f830187615951565b6159b46020830186615985565b6159c16040830185615951565b6159ce6060830184615951565b9594505050505056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa26469706673582212207638d92f8a362934fd778df5cfc979b33d2a6c40a91a74adb525d68175a585ba64736f6c634300081b0033
🤖 Code Reader
Generate instant answers for your smart contract questions using Al Models. Read more.
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.