[ { "inputs": [ { "internalType": "address", "name": "originalOwner", "type": "address" } ], "stateMutability": "payable", "type": "constructor" }, { "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": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "birdId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "string", "name": "speciesName", "type": "string" } ], "name": "BirdIdentification", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "collections", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "collectionId", "type": "uint256" }, { "internalType": "bytes32", "name": "merkleTreeRoot", "type": "bytes32" } ], "name": "publicGenerateBirds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "publicGetBaseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "publicGetNumBirds", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "birdId", "type": "uint256" }, { "internalType": "bytes32[]", "name": "speciesProof", "type": "bytes32[]" }, { "internalType": "string", "name": "speciesName", "type": "string" } ], "name": "publicMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "bool", "name": "isUriFrozen", "type": "bool" } ], "name": "publicSetBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "publicWithdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "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" } ]
60806040526000600c60006101000a81548160ff02191690831515021790555060405180602001604052806000815250600d90816200003f9190620004ce565b50604051620040f5380380620040f583398181016040528101906200006591906200061f565b806040518060400160405280600981526020017f536f6e67626972647a00000000000000000000000000000000000000000000008152506040518060400160405280600981526020017f536f6e67426972647a00000000000000000000000000000000000000000000008152508160009081620000e39190620004ce565b508060019081620000f59190620004ce565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200016d5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000164919062000662565b60405180910390fd5b6200017e816200018e60201b60201c565b506001600b81905550506200067f565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002d657607f821691505b602082108103620002ec57620002eb6200028e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000317565b62000362868362000317565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003af620003a9620003a3846200037a565b62000384565b6200037a565b9050919050565b6000819050919050565b620003cb836200038e565b620003e3620003da82620003b6565b84845462000324565b825550505050565b600090565b620003fa620003eb565b62000407818484620003c0565b505050565b5b818110156200042f5762000423600082620003f0565b6001810190506200040d565b5050565b601f8211156200047e576200044881620002f2565b620004538462000307565b8101602085101562000463578190505b6200047b620004728562000307565b8301826200040c565b50505b505050565b600082821c905092915050565b6000620004a36000198460080262000483565b1980831691505092915050565b6000620004be838362000490565b9150826002028217905092915050565b620004d98262000254565b67ffffffffffffffff811115620004f557620004f46200025f565b5b620005018254620002bd565b6200050e82828562000433565b600060209050601f83116001811462000546576000841562000531578287015190505b6200053d8582620004b0565b865550620005ad565b601f1984166200055686620002f2565b60005b82811015620005805784890151825560018201915060208501945060208101905062000559565b86831015620005a057848901516200059c601f89168262000490565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005e782620005ba565b9050919050565b620005f981620005da565b81146200060557600080fd5b50565b6000815190506200061981620005ee565b92915050565b600060208284031215620006385762000637620005b5565b5b6000620006488482850162000608565b91505092915050565b6200065c81620005da565b82525050565b600060208201905062000679600083018462000651565b92915050565b613a66806200068f6000396000f3fe6080604052600436106101815760003560e01c806370a08231116100d1578063ba00660f1161008a578063cf02dc3911610064578063cf02dc3914610571578063e985e9c51461059c578063f2fde38b146105d9578063fdbda0ec1461060257610181565b8063ba00660f14610501578063c87b56dd14610518578063cc0e61261461055557610181565b806370a0823114610405578063715018a6146104425780638da5cb5b1461045957806395d89b4114610484578063a22cb465146104af578063b88d4fde146104d857610181565b806323b872dd1161013e57806342842e0e1161011857806342842e0e146103395780634399ee7e146103625780634f6ccce71461038b5780636352211e146103c857610181565b806323b872dd146102aa5780632ca4f0e7146102d35780632f745c59146102fc57610181565b806301ffc9a71461018657806306fdde03146101c3578063081812fc146101ee578063095ea7b31461022b57806318160ddd14610254578063218c28721461027f575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a89190612832565b61063f565b6040516101ba919061287a565b60405180910390f35b3480156101cf57600080fd5b506101d86106b9565b6040516101e59190612925565b60405180910390f35b3480156101fa57600080fd5b506102156004803603810190610210919061297d565b61074b565b60405161022291906129eb565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d9190612a32565b610767565b005b34801561026057600080fd5b5061026961077d565b6040516102769190612a81565b60405180910390f35b34801561028b57600080fd5b5061029461078a565b6040516102a19190612a81565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190612a9c565b6107a4565b005b3480156102df57600080fd5b506102fa60048036038101906102f59190612c50565b6108a6565b005b34801561030857600080fd5b50610323600480360381019061031e9190612a32565b610934565b6040516103309190612a81565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190612a9c565b6109dd565b005b34801561036e57600080fd5b5061038960048036038101906103849190612ce2565b6109fd565b005b34801561039757600080fd5b506103b260048036038101906103ad919061297d565b610aca565b6040516103bf9190612a81565b60405180910390f35b3480156103d457600080fd5b506103ef60048036038101906103ea919061297d565b610b40565b6040516103fc91906129eb565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190612d22565b610b52565b6040516104399190612a81565b60405180910390f35b34801561044e57600080fd5b50610457610c0c565b005b34801561046557600080fd5b5061046e610c20565b60405161047b91906129eb565b60405180910390f35b34801561049057600080fd5b50610499610c4a565b6040516104a69190612925565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d19190612d4f565b610cdc565b005b3480156104e457600080fd5b506104ff60048036038101906104fa9190612e30565b610cf2565b005b34801561050d57600080fd5b50610516610d0f565b005b34801561052457600080fd5b5061053f600480360381019061053a919061297d565b610d66565b60405161054c9190612925565b60405180910390f35b61056f600480360381019061056a9190612f7b565b610dcf565b005b34801561057d57600080fd5b506105866110b5565b6040516105939190612925565b60405180910390f35b3480156105a857600080fd5b506105c360048036038101906105be9190613006565b611147565b6040516105d0919061287a565b60405180910390f35b3480156105e557600080fd5b5061060060048036038101906105fb9190612d22565b6111db565b005b34801561060e57600080fd5b506106296004803603810190610624919061297d565b611261565b6040516106369190613055565b60405180910390f35b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106b257506106b182611285565b5b9050919050565b6060600080546106c89061309f565b80601f01602080910402602001604051908101604052809291908181526020018280546106f49061309f565b80156107415780601f1061071657610100808354040283529160200191610741565b820191906000526020600020905b81548152906001019060200180831161072457829003601f168201915b5050505050905090565b600061075682611367565b50610760826113ef565b9050919050565b610779828261077461142c565b611434565b5050565b6000600880549050905090565b60006103e8600e8054905061079f91906130ff565b905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108165760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161080d91906129eb565b60405180910390fd5b600061082a838361082561142c565b611446565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108a0578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161089793929190613141565b60405180910390fd5b50505050565b6108ae611563565b600c60009054906101000a900460ff16156108fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f5906131c4565b60405180910390fd5b81600d908161090d9190613390565b508015610930576001600c60006101000a81548160ff0219169083151502179055505b5050565b600061093f83610b52565b82106109845782826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161097b929190613462565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6109f883838360405180602001604052806000815250610cf2565b505050565b610a05611563565b600e805490508214610a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a43906134d7565b60405180910390fd5b6127106103e883610a5d91906130ff565b10610a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9490613543565b60405180910390fd5b600e8190806001815401808255809150506001900390600052602060002001600090919091909150555050565b6000610ad461077d565b8210610b1a576000826040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610b11929190613462565b60405180910390fd5b60088281548110610b2e57610b2d613563565b5b90600052602060002001549050919050565b6000610b4b82611367565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bc55760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610bbc91906129eb565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c14611563565b610c1e60006115ea565b565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610c599061309f565b80601f0160208091040260200160405190810160405280929190818152602001828054610c859061309f565b8015610cd25780601f10610ca757610100808354040283529160200191610cd2565b820191906000526020600020905b815481529060010190602001808311610cb557829003601f168201915b5050505050905090565b610cee610ce761142c565b83836116b0565b5050565b610cfd8484846107a4565b610d098484848461181f565b50505050565b610d17611563565b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d62573d6000803e3d6000fd5b5050565b6060610d7182611367565b506000610d7c6119d6565b90506000815111610d9c5760405180602001604052806000815250610dc7565b80610da684611a68565b604051602001610db79291906135ce565b6040516020818303038152906040525b915050919050565b610dd7611b36565b346605543df729c00014610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e179061363e565b60405180910390fd5b826000600e8054905011610e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e60906136aa565b60405180910390fd5b6103e8600e80549050610e7c91906130ff565b8110610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb490613716565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16610ede82611b7c565b73ffffffffffffffffffffffffffffffffffffffff1614610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b90613782565b60405180910390fd5b60006103e885610f4491906137d1565b90506000600e8281548110610f5c57610f5b613563565b5b906000526020600020015490506000848051906020012090506000610f8088611a68565b604051602001610f909190613828565b604051602081830303815290604052905060008282604051602001610fb692919061384e565b60405160208183030381529060405280519060200120604051602001610fdc919061389f565b6040516020818303038152906040528051906020012090506000611001898684611bb9565b9050897ff329517bcb29943d3d97081036491491c21ee09d23e28471554ccbea8b3e05f4338a6040516110359291906138ba565b60405180910390a280156110525761104d338b611bd0565b6110a1565b3373ffffffffffffffffffffffffffffffffffffffff166108fc660470de4df820009081150290604051600060405180830381858888f1935050505015801561109f573d6000803e3d6000fd5b505b505050505050506110b0611bee565b505050565b6060600d80546110c49061309f565b80601f01602080910402602001604051908101604052809291908181526020018280546110f09061309f565b801561113d5780601f106111125761010080835404028352916020019161113d565b820191906000526020600020905b81548152906001019060200180831161112057829003601f168201915b5050505050905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6111e3611563565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112555760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161124c91906129eb565b60405180910390fd5b61125e816115ea565b50565b600e818154811061127157600080fd5b906000526020600020016000915090505481565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061135057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611360575061135f82611bf8565b5b9050919050565b60008061137383611b7c565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113e657826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016113dd9190612a81565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6114418383836001611c62565b505050565b600080611454858585611e27565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114985761149384612041565b6114d7565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146114d6576114d5818561208a565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361151957611514846121eb565b611558565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146115575761155685856122bc565b5b5b809150509392505050565b61156b61142c565b73ffffffffffffffffffffffffffffffffffffffff16611589610c20565b73ffffffffffffffffffffffffffffffffffffffff16146115e8576115ac61142c565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016115df91906129eb565b60405180910390fd5b565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361172157816040517f5b08ba1800000000000000000000000000000000000000000000000000000000815260040161171891906129eb565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611812919061287a565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b11156119d0578273ffffffffffffffffffffffffffffffffffffffff1663150b7a0261186361142c565b8685856040518563ffffffff1660e01b8152600401611885949392919061393f565b6020604051808303816000875af19250505080156118c157506040513d601f19601f820116820180604052508101906118be91906139a0565b60015b611945573d80600081146118f1576040519150601f19603f3d011682016040523d82523d6000602084013e6118f6565b606091505b50600081510361193d57836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161193491906129eb565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146119ce57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016119c591906129eb565b60405180910390fd5b505b50505050565b6060600d80546119e59061309f565b80601f0160208091040260200160405190810160405280929190818152602001828054611a119061309f565b8015611a5e5780601f10611a3357610100808354040283529160200191611a5e565b820191906000526020600020905b815481529060010190602001808311611a4157829003601f168201915b5050505050905090565b606060006001611a7784612347565b01905060008167ffffffffffffffff811115611a9657611a95612af9565b5b6040519080825280601f01601f191660200182016040528015611ac85781602001600182028036833780820191505090505b509050600082602001820190505b600115611b2b578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611b1f57611b1e6137a2565b5b04945060008503611ad6575b819350505050919050565b6002600b5403611b72576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600b81905550565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600082611bc6858461249a565b1490509392505050565b611bea8282604051806020016040528060008152506124ea565b5050565b6001600b81905550565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b8080611c9b5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611dcf576000611cab84611367565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d1657508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611d295750611d278184611147565b155b15611d6b57826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611d6291906129eb565b60405180910390fd5b8115611dcd57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b600080611e3384611b7c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e7557611e74818486612506565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611f0657611eb7600085600080611c62565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611f89576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b600061209583610b52565b905060006007600084815260200190815260200160002054905081811461217a576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506121ff91906139cd565b905060006009600084815260200190815260200160002054905060006008838154811061222f5761222e613563565b5b90600052602060002001549050806008838154811061225157612250613563565b5b9060005260206000200181905550816009600083815260200190815260200160002081905550600960008581526020019081526020016000206000905560088054806122a05761229f613a01565b5b6001900381819060005260206000200160009055905550505050565b600060016122c984610b52565b6122d391906139cd565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106123a5577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161239b5761239a6137a2565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106123e2576d04ee2d6d415b85acef810000000083816123d8576123d76137a2565b5b0492506020810190505b662386f26fc10000831061241157662386f26fc100008381612407576124066137a2565b5b0492506010810190505b6305f5e100831061243a576305f5e10083816124305761242f6137a2565b5b0492506008810190505b612710831061245f576127108381612455576124546137a2565b5b0492506004810190505b606483106124825760648381612478576124776137a2565b5b0492506002810190505b600a8310612491576001810190505b80915050919050565b60008082905060005b84518110156124df576124d0828683815181106124c3576124c2613563565b5b60200260200101516125ca565b915080806001019150506124a3565b508091505092915050565b6124f483836125f5565b612501600084848461181f565b505050565b6125118383836126ee565b6125c557600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361258657806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161257d9190612a81565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016125bc929190613462565b60405180910390fd5b505050565b60008183106125e2576125dd82846127af565b6125ed565b6125ec83836127af565b5b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126675760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161265e91906129eb565b60405180910390fd5b600061267583836000611446565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146126e95760006040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016126e091906129eb565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156127a657508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061276757506127668484611147565b5b806127a557508273ffffffffffffffffffffffffffffffffffffffff1661278d836113ef565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600082600052816020526040600020905092915050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61280f816127da565b811461281a57600080fd5b50565b60008135905061282c81612806565b92915050565b600060208284031215612848576128476127d0565b5b60006128568482850161281d565b91505092915050565b60008115159050919050565b6128748161285f565b82525050565b600060208201905061288f600083018461286b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128cf5780820151818401526020810190506128b4565b60008484015250505050565b6000601f19601f8301169050919050565b60006128f782612895565b61290181856128a0565b93506129118185602086016128b1565b61291a816128db565b840191505092915050565b6000602082019050818103600083015261293f81846128ec565b905092915050565b6000819050919050565b61295a81612947565b811461296557600080fd5b50565b60008135905061297781612951565b92915050565b600060208284031215612993576129926127d0565b5b60006129a184828501612968565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129d5826129aa565b9050919050565b6129e5816129ca565b82525050565b6000602082019050612a0060008301846129dc565b92915050565b612a0f816129ca565b8114612a1a57600080fd5b50565b600081359050612a2c81612a06565b92915050565b60008060408385031215612a4957612a486127d0565b5b6000612a5785828601612a1d565b9250506020612a6885828601612968565b9150509250929050565b612a7b81612947565b82525050565b6000602082019050612a966000830184612a72565b92915050565b600080600060608486031215612ab557612ab46127d0565b5b6000612ac386828701612a1d565b9350506020612ad486828701612a1d565b9250506040612ae586828701612968565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612b31826128db565b810181811067ffffffffffffffff82111715612b5057612b4f612af9565b5b80604052505050565b6000612b636127c6565b9050612b6f8282612b28565b919050565b600067ffffffffffffffff821115612b8f57612b8e612af9565b5b612b98826128db565b9050602081019050919050565b82818337600083830152505050565b6000612bc7612bc284612b74565b612b59565b905082815260208101848484011115612be357612be2612af4565b5b612bee848285612ba5565b509392505050565b600082601f830112612c0b57612c0a612aef565b5b8135612c1b848260208601612bb4565b91505092915050565b612c2d8161285f565b8114612c3857600080fd5b50565b600081359050612c4a81612c24565b92915050565b60008060408385031215612c6757612c666127d0565b5b600083013567ffffffffffffffff811115612c8557612c846127d5565b5b612c9185828601612bf6565b9250506020612ca285828601612c3b565b9150509250929050565b6000819050919050565b612cbf81612cac565b8114612cca57600080fd5b50565b600081359050612cdc81612cb6565b92915050565b60008060408385031215612cf957612cf86127d0565b5b6000612d0785828601612968565b9250506020612d1885828601612ccd565b9150509250929050565b600060208284031215612d3857612d376127d0565b5b6000612d4684828501612a1d565b91505092915050565b60008060408385031215612d6657612d656127d0565b5b6000612d7485828601612a1d565b9250506020612d8585828601612c3b565b9150509250929050565b600067ffffffffffffffff821115612daa57612da9612af9565b5b612db3826128db565b9050602081019050919050565b6000612dd3612dce84612d8f565b612b59565b905082815260208101848484011115612def57612dee612af4565b5b612dfa848285612ba5565b509392505050565b600082601f830112612e1757612e16612aef565b5b8135612e27848260208601612dc0565b91505092915050565b60008060008060808587031215612e4a57612e496127d0565b5b6000612e5887828801612a1d565b9450506020612e6987828801612a1d565b9350506040612e7a87828801612968565b925050606085013567ffffffffffffffff811115612e9b57612e9a6127d5565b5b612ea787828801612e02565b91505092959194509250565b600067ffffffffffffffff821115612ece57612ecd612af9565b5b602082029050602081019050919050565b600080fd5b6000612ef7612ef284612eb3565b612b59565b90508083825260208201905060208402830185811115612f1a57612f19612edf565b5b835b81811015612f435780612f2f8882612ccd565b845260208401935050602081019050612f1c565b5050509392505050565b600082601f830112612f6257612f61612aef565b5b8135612f72848260208601612ee4565b91505092915050565b600080600060608486031215612f9457612f936127d0565b5b6000612fa286828701612968565b935050602084013567ffffffffffffffff811115612fc357612fc26127d5565b5b612fcf86828701612f4d565b925050604084013567ffffffffffffffff811115612ff057612fef6127d5565b5b612ffc86828701612bf6565b9150509250925092565b6000806040838503121561301d5761301c6127d0565b5b600061302b85828601612a1d565b925050602061303c85828601612a1d565b9150509250929050565b61304f81612cac565b82525050565b600060208201905061306a6000830184613046565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806130b757607f821691505b6020821081036130ca576130c9613070565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061310a82612947565b915061311583612947565b925082820261312381612947565b9150828204841483151761313a576131396130d0565b5b5092915050565b600060608201905061315660008301866129dc565b6131636020830185612a72565b61317060408301846129dc565b949350505050565b7f7468652062617365207572692063616e6e6f74206265206368616e6765640000600082015250565b60006131ae601e836128a0565b91506131b982613178565b602082019050919050565b600060208201905081810360008301526131dd816131a1565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026132467fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613209565b6132508683613209565b95508019841693508086168417925050509392505050565b6000819050919050565b600061328d61328861328384612947565b613268565b612947565b9050919050565b6000819050919050565b6132a783613272565b6132bb6132b382613294565b848454613216565b825550505050565b600090565b6132d06132c3565b6132db81848461329e565b505050565b5b818110156132ff576132f46000826132c8565b6001810190506132e1565b5050565b601f82111561334457613315816131e4565b61331e846131f9565b8101602085101561332d578190505b613341613339856131f9565b8301826132e0565b50505b505050565b600082821c905092915050565b600061336760001984600802613349565b1980831691505092915050565b60006133808383613356565b9150826002028217905092915050565b61339982612895565b67ffffffffffffffff8111156133b2576133b1612af9565b5b6133bc825461309f565b6133c7828285613303565b600060209050601f8311600181146133fa57600084156133e8578287015190505b6133f28582613374565b86555061345a565b601f198416613408866131e4565b60005b828110156134305784890151825560018201915060208501945060208101905061340b565b8683101561344d5784890151613449601f891682613356565b8355505b6001600288020188555050505b505050505050565b600060408201905061347760008301856129dc565b6134846020830184612a72565b9392505050565b7f636f6c6c656374696f6e20696420697320696e76616c69640000000000000000600082015250565b60006134c16018836128a0565b91506134cc8261348b565b602082019050919050565b600060208201905081810360008301526134f0816134b4565b9050919050565b7f746f74616c206c696d6974206973203130303030000000000000000000000000600082015250565b600061352d6014836128a0565b9150613538826134f7565b602082019050919050565b6000602082019050818103600083015261355c81613520565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081905092915050565b60006135a882612895565b6135b28185613592565b93506135c28185602086016128b1565b80840191505092915050565b60006135da828561359d565b91506135e6828461359d565b91508190509392505050565b7f696e636f7272656374204554482076616c75652073656e740000000000000000600082015250565b60006136286018836128a0565b9150613633826135f2565b602082019050919050565b600060208201905081810360008301526136578161361b565b9050919050565b7f6e6f2062697264732079657420746f206d696e74000000000000000000000000600082015250565b60006136946014836128a0565b915061369f8261365e565b602082019050919050565b600060208201905081810360008301526136c381613687565b9050919050565b7f696e76616c696420626972642049440000000000000000000000000000000000600082015250565b6000613700600f836128a0565b915061370b826136ca565b602082019050919050565b6000602082019050818103600083015261372f816136f3565b9050919050565b7f746865206269726420697320616c7265616479206f776e656400000000000000600082015250565b600061376c6019836128a0565b915061377782613736565b602082019050919050565b6000602082019050818103600083015261379b8161375f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137dc82612947565b91506137e783612947565b9250826137f7576137f66137a2565b5b828204905092915050565b7f2d73706563696573000000000000000000000000000000000000000000000000815250565b6000613834828461359d565b915061383f82613802565b60088201915081905092915050565b60006040820190506138636000830185613046565b818103602083015261387581846128ec565b90509392505050565b6000819050919050565b61389961389482612cac565b61387e565b82525050565b60006138ab8284613888565b60208201915081905092915050565b60006040820190506138cf60008301856129dc565b81810360208301526138e181846128ec565b90509392505050565b600081519050919050565b600082825260208201905092915050565b6000613911826138ea565b61391b81856138f5565b935061392b8185602086016128b1565b613934816128db565b840191505092915050565b600060808201905061395460008301876129dc565b61396160208301866129dc565b61396e6040830185612a72565b81810360608301526139808184613906565b905095945050505050565b60008151905061399a81612806565b92915050565b6000602082840312156139b6576139b56127d0565b5b60006139c48482850161398b565b91505092915050565b60006139d882612947565b91506139e383612947565b92508282039050818111156139fb576139fa6130d0565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220b3ec1f561ed88a89819d9fc1ca8aec9288963098185eb26aa2e855d5977ecb3a64736f6c634300081600330000000000000000000000003fb4920e09493b2bc7e9b7e14ea7585ca8babf21
0x0000000000000000000000003fb4920e09493b2bc7e9b7e14ea7585ca8babf21
----Decoded View------------Arg [0] : originalOwner (address): 0x3fb4920e09493b2bC7e9b7e14EA7585Ca8bAbF21
----Encoded View------------Arg [0] : 0x0000000000000000000000003fb4920e09493b2bc7e9b7e14ea7585ca8babf21