// This file was autogenerated by Hardhat, do not edit it. // prettier-ignore // tslint:disable // eslint-disable // biome-ignore format: see above export interface EnclaveToken$Type { readonly _format: "hh3-artifact-1"; readonly contractName: "EnclaveToken"; readonly sourceName: "contracts/token/EnclaveToken.sol"; readonly abi: [{"inputs":[{"internalType":"address","name":"initialOwner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ArrayLengthMismatch","type":"error"},{"inputs":[],"name":"CheckpointUnorderedInsertion","type":"error"},{"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":[{"internalType":"uint256","name":"increasedSupply","type":"uint256"},{"internalType":"uint256","name":"cap","type":"uint256"}],"name":"ERC20ExceededSafeSupply","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"ERC2612ExpiredSignature","type":"error"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC2612InvalidSigner","type":"error"},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"},{"internalType":"uint48","name":"clock","type":"uint48"}],"name":"ERC5805FutureLookup","type":"error"},{"inputs":[],"name":"ERC6372InconsistentClock","type":"error"},{"inputs":[],"name":"ExceedsTotalSupply","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"name":"InvalidAccountNonce","type":"error"},{"inputs":[],"name":"InvalidShortString","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":"RenounceOwnershipDisabled","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"name":"StringTooLong","type":"error"},{"inputs":[],"name":"TransferNotAllowed","type":"error"},{"inputs":[{"internalType":"uint256","name":"expiry","type":"uint256"}],"name":"VotesExpiredSignature","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"inputs":[],"name":"ZeroAmount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"allocation","type":"string"}],"name":"AllocationMinted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousVotes","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotes","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[],"name":"EIP712DomainChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"restricted","type":"bool"}],"name":"TransferRestrictionUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"whitelisted","type":"bool"}],"name":"TransferWhitelistUpdated","type":"event"},{"inputs":[],"name":"CLOCK_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"string[]","name":"allocations","type":"string[]"}],"name":"batchMintAllocations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint32","name":"pos","type":"uint32"}],"name":"checkpoints","outputs":[{"components":[{"internalType":"uint48","name":"_key","type":"uint48"},{"internalType":"uint208","name":"_value","type":"uint208"}],"internalType":"struct Checkpoints.Checkpoint208","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clock","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"}],"name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"timepoint","type":"uint256"}],"name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"allocation","type":"string"}],"name":"mintAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","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":"address","name":"account","type":"address"}],"name":"toggleTransferWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"transferWhitelisted","outputs":[{"internalType":"bool","name":"allowed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transfersRestricted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"bondingManager","type":"address"},{"internalType":"address","name":"vestingEscrow","type":"address"}],"name":"whitelistContracts","outputs":[],"stateMutability":"nonpayable","type":"function"}]; readonly bytecode: "0x61016060405234801561001157600080fd5b5060405161334438038061334483398101604081905261003091610567565b8060405180604001604052806007815260200166456e636c61766560c81b81525080604051806040016040528060018152602001603160f81b81525060405180604001604052806007815260200166456e636c61766560c81b81525060405180604001604052806004815260200163115390d360e21b81525081600390816100b89190610635565b5060046100c58282610635565b506100d59150839050600561029d565b610120526100e481600661029d565b61014052815160208084019190912060e052815190820120610100524660a05261017160e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c052506001600160a01b0381166101aa57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101b3816102d0565b506101bf60008261038f565b506101d86000805160206133248339815191528261038f565b506101f16000805160206133048339815191528261038f565b5060108054600160ff1991821681179092556001600160a01b0383166000908152600f602090815260409182902080549093168417909255519182527f2da74f794b62c41386dee79743b63d866355e0e0ae2a8d97aacb2ff5b7e1549b910160405180910390a1604051600181526001600160a01b038216907fe3b4918d2544570f4fd920ce69294772100c0d60360c88d94c56fadbbef76cb19060200160405180910390a250610765565b60006020835110156102b9576102b283610423565b90506102ca565b816102c48482610635565b5060ff90505b92915050565b60006102e4600b546001600160a01b031690565b90506102ef82610461565b6001600160a01b0381161561033d5761030960008261047d565b506103226000805160206133248339815191528261047d565b5061033b6000805160206133048339815191528261047d565b505b6001600160a01b0382161561038b5761035760008361038f565b506103706000805160206133248339815191528361038f565b506103896000805160206133048339815191528361038f565b505b5050565b600061039b83836104ea565b61041b576000838152600d602090815260408083206001600160a01b03861684529091529020805460ff191660011790556103d33390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016102ca565b5060006102ca565b600080829050601f8151111561044e578260405163305a27a960e01b81526004016101a191906106f3565b805161045982610741565b179392505050565b600c80546001600160a01b031916905561047a81610515565b50565b600061048983836104ea565b1561041b576000838152600d602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016102ca565b6000918252600d602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006020828403121561057957600080fd5b81516001600160a01b038116811461059057600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806105c157607f821691505b6020821081036105e157634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561038957806000526020600020601f840160051c8101602085101561060e5750805b601f840160051c820191505b8181101561062e576000815560010161061a565b5050505050565b81516001600160401b0381111561064e5761064e610597565b6106628161065c84546105ad565b846105e7565b6020601f821160018114610696576000831561067e5750848201515b600019600385901b1c1916600184901b17845561062e565b600084815260208120601f198516915b828110156106c657878501518255602094850194600190920191016106a6565b50848210156106e45786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b602081526000825180602084015260005b818110156107215760208186018101516040868401015201610704565b506000604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156105e15760001960209190910360031b1b16919050565b60805160a05160c05160e051610100516101205161014051612b456107bf60003960006115ed015260006115c00152600061122c015260006112040152600061115f01526000611189015260006111b30152612b456000f3fe608060405234801561001057600080fd5b506004361061021a5760003560e01c806301ffc9a71461021f57806306fdde0314610247578063095ea7b31461025c57806318160ddd1461026f57806323b872dd14610281578063248a9ca3146102945780632f2ff15d146102a7578063306c6637146102bc578063313ce567146102cf57806332cb6b0c146102de5780633644e515146102f057806336568abe146102f85780633a46b1a81461030b5780634bf5d7e91461031e578063587cde1e146103485780635c19a95c146103685780636fcfff451461037b57806370a08231146103a3578063715018a6146103b65780637323223f146103be57806379ba5097146103d15780637a997ab7146103d95780637ecebe00146103ee5780638423df791461040157806384b0196e1461040e5780638da5cb5b146104295780638e539e8c1461043157806391d148541461044457806391ddadf41461045757806395d89b411461046d5780639ab24eb0146104755780639ff7664c14610488578063a217fddf1461049b578063a2309ff8146104a3578063a9059cbb146104ac578063acd7cf13146104bf578063c3cda520146104e2578063d505accf146104f5578063d539139314610508578063d547741f1461051d578063dd62ed3e14610530578063e30c397814610543578063eb415f451461054b578063f1127ed814610553578063f2fde38b14610592578063f79d877c146105a5575b600080fd5b61023261022d366004612372565b6105b8565b60405190151581526020015b60405180910390f35b61024f6105c9565b60405161023e91906123e2565b61023261026a366004612411565b61065b565b6002545b60405190815260200161023e565b61023261028f36600461243b565b610673565b6102736102a2366004612478565b610697565b6102ba6102b5366004612491565b6106ac565b005b6102ba6102ca3660046124bd565b6106ce565b6040516012815260200161023e565b610273673e09de2596099e2b601c1b81565b61027361073b565b6102ba610306366004612491565b61074a565b610273610319366004612411565b610782565b60408051808201909152600e81526d06d6f64653d74696d657374616d760941b602082015261024f565b61035b6103563660046124bd565b6107be565b60405161023e91906124d8565b6102ba6103763660046124bd565b6107dc565b61038e6103893660046124bd565b6107eb565b60405163ffffffff909116815260200161023e565b6102736103b13660046124bd565b6107f6565b6102ba610811565b6102ba6103cc366004612537565b610835565b6102ba6109d3565b610273600080516020612a9983398151915281565b6102736103fc3660046124bd565b610a1b565b6010546102329060ff1681565b610416610a26565b60405161023e97969594939291906125da565b61035b610a6c565b61027361043f366004612478565b610a7b565b610232610452366004612491565b610aa0565b60405165ffffffffffff4216815260200161023e565b61024f610acb565b6102736104833660046124bd565b610ada565b6102ba610496366004612688565b610afb565b610273600081565b610273600e5481565b6102326104ba366004612411565b610bee565b6102326104cd3660046124bd565b600f6020526000908152604090205460ff1681565b6102ba6104f0366004612769565b610bfc565b6102ba6105033660046127c1565b610cb9565b610273600080516020612ab983398151915281565b6102ba61052b366004612491565b610dd5565b61027361053e36600461282c565b610df1565b61035b610e1c565b6102ba610e2b565b610566610561366004612856565b610e82565b60408051825165ffffffffffff1681526020928301516001600160d01b0316928101929092520161023e565b6102ba6105a03660046124bd565b610e9b565b6102ba6105b336600461282c565b610f01565b60006105c382610fc5565b92915050565b6060600380546105d890612896565b80601f016020809104026020016040519081016040528092919081815260200182805461060490612896565b80156106515780601f1061062657610100808354040283529160200191610651565b820191906000526020600020905b81548152906001019060200180831161063457829003601f168201915b5050505050905090565b600033610669818585610ffa565b5060019392505050565b600033610681858285611007565b61068c858585611055565b506001949350505050565b6000908152600d602052604090206001015490565b6106b582610697565b6106be816110b4565b6106c883836110be565b50505050565b600080516020612a998339815191526106e6816110b4565b6001600160a01b0382166000818152600f6020908152604091829020805460ff81161560ff1990911681179091559151828152919291600080516020612b1983398151915291015b60405180910390a2505050565b6000610745611152565b905090565b6001600160a01b03811633146107735760405163334bd91960e11b815260040160405180910390fd5b61077d828261127d565b505050565b60006107ae610790836112ea565b6001600160a01b03851660009081526009602052604090209061132f565b6001600160d01b03169392505050565b6001600160a01b039081166000908152600860205260409020541690565b336107e781836113e5565b5050565b60006105c382611460565b6001600160a01b031660009081526020819052604090205490565b610819611482565b6040516001623f026d60e01b0319815260040160405180910390fd5b600080516020612ab983398151915261084d816110b4565b85848114158061085d5750828114155b1561087b5760405163512509d360e11b815260040160405180910390fd5b600e5460005b828110156109c55760008a8a8381811061089d5761089d6128d0565b90506020020160208101906108b291906124bd565b905060008989848181106108c8576108c86128d0565b60200291909101359150506001600160a01b0382166108fa5760405163d92e233d60e01b815260040160405180910390fd5b8060000361091b57604051631f2a200560e01b815260040160405180910390fd5b61093084673e09de2596099e2b601c1b6128fc565b8111156109505760405163177e3fc360e01b815260040160405180910390fd5b61095a818561290f565b935061096682826114b6565b816001600160a01b0316600080516020612ad9833981519152828a8a87818110610992576109926128d0565b90506020028101906109a49190612922565b6040516109b393929190612968565b60405180910390a25050600101610881565b50600e555050505050505050565b33806109dd610e1c565b6001600160a01b031614610a0f578060405163118cdaa760e01b8152600401610a0691906124d8565b60405180910390fd5b610a18816114ec565b50565b60006105c38261159b565b600060608060008060006060610a3a6115b9565b610a426115e6565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b600b546001600160a01b031690565b6000610a91610a89836112ea565b600a9061132f565b6001600160d01b031692915050565b6000918252600d602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6060600480546105d890612896565b6001600160a01b0381166000908152600960205260408120610a9190611613565b600080516020612ab9833981519152610b13816110b4565b6001600160a01b038416610b3a5760405163d92e233d60e01b815260040160405180910390fd5b82600003610b5b57604051631f2a200560e01b815260040160405180910390fd5b673e09de2596099e2b601c1b83600e54610b75919061290f565b1115610b945760405163177e3fc360e01b815260040160405180910390fd5b610b9e84846114b6565b82600e6000828254610bb0919061290f565b92505081905550836001600160a01b0316600080516020612ad98339815191528484604051610be092919061299e565b60405180910390a250505050565b600033610669818585611055565b83421115610c2057604051632341d78760e11b815260048101859052602401610a06565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610c9a90610c929060a0016040516020818303038152906040528051906020012061164c565b858585611679565b9050610ca681876116a7565b610cb081886113e5565b50505050505050565b83421115610cdd5760405163313c898160e11b815260048101859052602401610a06565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610d0c8c6116d8565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610d678261164c565b90506000610d7782878787611679565b9050896001600160a01b0316816001600160a01b031614610dbe576040516325c0072360e11b81526001600160a01b0380831660048301528b166024820152604401610a06565b610dc98a8a8a610ffa565b50505050505050505050565b610dde82610697565b610de7816110b4565b6106c8838361127d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600c546001600160a01b031690565b6000610e36816110b4565b60105460ff1615610a18576010805460ff19169055604051600081527f2da74f794b62c41386dee79743b63d866355e0e0ae2a8d97aacb2ff5b7e1549b9060200160405180910390a150565b610e8a61235b565b610e9483836116fb565b9392505050565b610ea3611482565b600c80546001600160a01b0319166001600160a01b038316908117909155610ec9610a6c565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020612a99833981519152610f19816110b4565b6001600160a01b03831615610f71576001600160a01b0383166000818152600f6020908152604091829020805460ff191660019081179091559151918252600080516020612b19833981519152910160405180910390a25b6001600160a01b0382161561077d576001600160a01b0382166000818152600f6020908152604091829020805460ff191660019081179091559151918252600080516020612b19833981519152910161072e565b60006001600160e01b03198216637965db0b60e01b14806105c357506301ffc9a760e01b6001600160e01b03198316146105c3565b61077d8383836001611725565b60006110138484610df1565b90506000198110156106c8578181101561104657828183604051637dc7a0d960e11b8152600401610a06939291906129bf565b6106c884848484036000611725565b6001600160a01b03831661107f576000604051634b637e8f60e11b8152600401610a0691906124d8565b6001600160a01b0382166110a957600060405163ec442f0560e01b8152600401610a0691906124d8565b61077d8383836117fa565b610a188133611898565b60006110ca8383610aa0565b61114a576000838152600d602090815260408083206001600160a01b03861684529091529020805460ff191660011790556111023390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016105c3565b5060006105c3565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156111ab57507f000000000000000000000000000000000000000000000000000000000000000046145b156111d557507f000000000000000000000000000000000000000000000000000000000000000090565b610745604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60006112898383610aa0565b1561114a576000838152600d602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016105c3565b60004265ffffffffffff8116831061132657604051637669fc0f60e11b81526004810184905265ffffffffffff82166024820152604401610a06565b610e94836118c3565b81546000908181600581111561138e57600061134a846118f5565b61135490856128fc565b60008881526020902090915081015465ffffffffffff908116908716101561137e5780915061138c565b61138981600161290f565b92505b505b600061139c87878585611a48565b905080156113d7576113c1876113b36001846128fc565b600091825260209091200190565b54600160301b90046001600160d01b03166113da565b60005b979650505050505050565b60006113f0836107be565b6001600160a01b0384811660008181526008602052604080822080546001600160a01b031916888616908117909155905194955093928516927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a461077d818361145b86611aaa565b611ab5565b6001600160a01b0381166000908152600960205260408120546105c390611bfd565b3361148b610a6c565b6001600160a01b0316146114b4573360405163118cdaa760e01b8152600401610a0691906124d8565b565b6001600160a01b0382166114e057600060405163ec442f0560e01b8152600401610a0691906124d8565b6107e7600083836117fa565b60006114f6610a6c565b905061150182611c29565b6001600160a01b0381161561154f5761151b60008261127d565b50611534600080516020612ab98339815191528261127d565b5061154d600080516020612a998339815191528261127d565b505b6001600160a01b038216156107e7576115696000836110be565b50611582600080516020612ab9833981519152836110be565b5061077d600080516020612a99833981519152836110be565b6001600160a01b0381166000908152600760205260408120546105c3565b60606107457f00000000000000000000000000000000000000000000000000000000000000006005611c42565b60606107457f00000000000000000000000000000000000000000000000000000000000000006006611c42565b805460009080156116435761162d836113b36001846128fc565b54600160301b90046001600160d01b0316610e94565b60009392505050565b60006105c3611659611152565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060008061168b88888888611ced565b92509250925061169b8282611db2565b50909695505050505050565b60006116b2836116d8565b905080821461077d5782816040516301d4b62360e61b8152600401610a069291906129e0565b6001600160a01b0316600090815260076020526040902080546001810190915590565b61170361235b565b6001600160a01b0383166000908152600960205260409020610e949083611e6b565b6001600160a01b03841661174f57600060405163e602df0560e01b8152600401610a0691906124d8565b6001600160a01b038316611779576000604051634a1406b160e11b8152600401610a0691906124d8565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156106c857826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516117ec91815260200190565b60405180910390a350505050565b6001600160a01b0383161580159061181a57506001600160a01b03821615155b8015611828575060105460ff165b1561188d576001600160a01b0383166000908152600f602052604090205460ff1615801561186f57506001600160a01b0382166000908152600f602052604090205460ff16155b1561188d57604051638cd22d1960e01b815260040160405180910390fd5b61077d838383611ecf565b6118a28282610aa0565b6107e757808260405163e2517d3f60e01b8152600401610a069291906129e0565b600065ffffffffffff8211156118f1576030826040516306dfcc6560e41b8152600401610a069291906129f9565b5090565b600060018211611903575090565b816001600160801b821061191c5760809190911c9060401b5b600160401b82106119325760409190911c9060201b5b600160201b82106119485760209190911c9060101b5b62010000821061195d5760109190911c9060081b5b61010082106119715760089190911c9060041b5b601082106119845760049190911c9060021b5b600482106119905760011b5b600302600190811c908185816119a8576119a8612a0c565b048201901c905060018185816119c0576119c0612a0c565b048201901c905060018185816119d8576119d8612a0c565b048201901c905060018185816119f0576119f0612a0c565b048201901c90506001818581611a0857611a08612a0c565b048201901c90506001818581611a2057611a20612a0c565b048201901c9050611a3f818581611a3957611a39612a0c565b04821190565b90039392505050565b60005b81831015611aa2576000611a5f8484611f36565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff161115611a8e57809250611a9c565b611a9981600161290f565b93505b50611a4b565b509392505050565b60006105c3826107f6565b816001600160a01b0316836001600160a01b031614158015611ad75750600081115b1561077d576001600160a01b03831615611b6d576001600160a01b03831660009081526009602052604081208190611b1a90611f51611b1586611f5d565b611f8c565b6001600160d01b031691506001600160d01b03169150846001600160a01b0316600080516020612af98339815191528383604051611b62929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161561077d576001600160a01b03821660009081526009602052604081208190611ba690611fbe611b1586611f5d565b6001600160d01b031691506001600160d01b03169150836001600160a01b0316600080516020612af98339815191528383604051611bee929190918252602082015260400190565b60405180910390a25050505050565b600063ffffffff8211156118f1576020826040516306dfcc6560e41b8152600401610a069291906129f9565b600c80546001600160a01b0319169055610a1881611fca565b606060ff8314611c5c57611c558361201c565b90506105c3565b818054611c6890612896565b80601f0160208091040260200160405190810160405280929190818152602001828054611c9490612896565b8015611ce15780601f10611cb657610100808354040283529160200191611ce1565b820191906000526020600020905b815481529060010190602001808311611cc457829003601f168201915b505050505090506105c3565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115611d1e5750600091506003905082611da8565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611d72573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611d9e57506000925060019150829050611da8565b9250600091508190505b9450945094915050565b6000826003811115611dc657611dc6612a22565b03611dcf575050565b6001826003811115611de357611de3612a22565b03611e015760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115611e1557611e15612a22565b03611e365760405163fce698f760e01b815260048101829052602401610a06565b6003826003811115611e4a57611e4a612a22565b036107e7576040516335e2f38360e21b815260048101829052602401610a06565b611e7361235b565b826000018263ffffffff1681548110611e8e57611e8e6128d0565b60009182526020918290206040805180820190915291015465ffffffffffff81168252600160301b90046001600160d01b0316918101919091529392505050565b611eda83838361205b565b6001600160a01b038316611f2b576000611ef360025490565b90506001600160d01b0380821115611f2857604051630e58ae9360e11b81526004810183905260248101829052604401610a06565b50505b61077d838383612172565b6000611f456002848418612a38565b610e949084841661290f565b6000610e948284612a5a565b60006001600160d01b038211156118f15760d0826040516306dfcc6560e41b8152600401610a069291906129f9565b600080611fb142611fa9611f9f88611613565b868863ffffffff16565b8791906121d1565b915091505b935093915050565b6000610e948284612a79565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60606000612029836121df565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6001600160a01b03831661208657806002600082825461207b919061290f565b909155506120e59050565b6001600160a01b038316600090815260208190526040902054818110156120c65783818360405163391434e360e21b8152600401610a06939291906129bf565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661210157600280548290039055612120565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161216591815260200190565b60405180910390a3505050565b6001600160a01b03831661219457612191600a611fbe611b1584611f5d565b50505b6001600160a01b0382166121b6576121b3600a611f51611b1584611f5d565b50505b61077d6121c2846107be565b6121cb846107be565b83611ab5565b600080611fb1858585612207565b600060ff8216601f8111156105c357604051632cd44ac360e21b815260040160405180910390fd5b825460009081908015612300576000612225876113b36001856128fc565b805490915065ffffffffffff80821691600160301b90046001600160d01b031690881682111561226857604051632520601d60e01b815260040160405180910390fd5b8765ffffffffffff168265ffffffffffff16036122a157825465ffffffffffff16600160301b6001600160d01b038916021783556122f2565b6040805180820190915265ffffffffffff808a1682526001600160d01b03808a1660208085019182528d54600181018f5560008f81529190912094519151909216600160301b029216919091179101555b9450859350611fb692505050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b029190931617920191909155905081611fb6565b604080518082019091526000808252602082015290565b60006020828403121561238457600080fd5b81356001600160e01b031981168114610e9457600080fd5b6000815180845260005b818110156123c2576020818501810151868301820152016123a6565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610e94602083018461239c565b80356001600160a01b038116811461240c57600080fd5b919050565b6000806040838503121561242457600080fd5b61242d836123f5565b946020939093013593505050565b60008060006060848603121561245057600080fd5b612459846123f5565b9250612467602085016123f5565b929592945050506040919091013590565b60006020828403121561248a57600080fd5b5035919050565b600080604083850312156124a457600080fd5b823591506124b4602084016123f5565b90509250929050565b6000602082840312156124cf57600080fd5b610e94826123f5565b6001600160a01b0391909116815260200190565b60008083601f8401126124fe57600080fd5b5081356001600160401b0381111561251557600080fd5b6020830191508360208260051b850101111561253057600080fd5b9250929050565b6000806000806000806060878903121561255057600080fd5b86356001600160401b0381111561256657600080fd5b61257289828a016124ec565b90975095505060208701356001600160401b0381111561259157600080fd5b61259d89828a016124ec565b90955093505060408701356001600160401b038111156125bc57600080fd5b6125c889828a016124ec565b979a9699509497509295939492505050565b60ff60f81b8816815260e0602082015260006125f960e083018961239c565b828103604084015261260b818961239c565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b81811015612661578351835260209384019390920191600101612643565b50909b9a5050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561269d57600080fd5b6126a6846123f5565b92506020840135915060408401356001600160401b038111156126c857600080fd5b8401601f810186136126d957600080fd5b80356001600160401b038111156126f2576126f2612672565b604051601f8201601f19908116603f011681016001600160401b038111828210171561272057612720612672565b60405281815282820160200188101561273857600080fd5b816020840160208301376000602083830101528093505050509250925092565b803560ff8116811461240c57600080fd5b60008060008060008060c0878903121561278257600080fd5b61278b876123f5565b955060208701359450604087013593506127a760608801612758565b9598949750929560808101359460a0909101359350915050565b600080600080600080600060e0888a0312156127dc57600080fd5b6127e5886123f5565b96506127f3602089016123f5565b9550604088013594506060880135935061280f60808901612758565b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561283f57600080fd5b612848836123f5565b91506124b4602084016123f5565b6000806040838503121561286957600080fd5b612872836123f5565b9150602083013563ffffffff8116811461288b57600080fd5b809150509250929050565b600181811c908216806128aa57607f821691505b6020821081036128ca57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156105c3576105c36128e6565b808201808211156105c3576105c36128e6565b6000808335601e1984360301811261293957600080fd5b8301803591506001600160401b0382111561295357600080fd5b60200191503681900382131561253057600080fd5b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b8281526040602082015260006129b7604083018461239c565b949350505050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b60ff929092168252602082015260400190565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b600082612a5557634e487b7160e01b600052601260045260246000fd5b500490565b6001600160d01b0382811682821603908111156105c3576105c36128e6565b6001600160d01b0381811683821601908111156105c3576105c36128e656fedc72ed553f2544c34465af23b847953efeb813428162d767f9ba5f4013be67609f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66a0cb465f1c0c57d5c571d6733fbb9f981a88a850aa78d67ceda77e204584833dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724e3b4918d2544570f4fd920ce69294772100c0d60360c88d94c56fadbbef76cb1a164736f6c634300081c000adc72ed553f2544c34465af23b847953efeb813428162d767f9ba5f4013be67609f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6"; readonly deployedBytecode: "0x608060405234801561001057600080fd5b506004361061021a5760003560e01c806301ffc9a71461021f57806306fdde0314610247578063095ea7b31461025c57806318160ddd1461026f57806323b872dd14610281578063248a9ca3146102945780632f2ff15d146102a7578063306c6637146102bc578063313ce567146102cf57806332cb6b0c146102de5780633644e515146102f057806336568abe146102f85780633a46b1a81461030b5780634bf5d7e91461031e578063587cde1e146103485780635c19a95c146103685780636fcfff451461037b57806370a08231146103a3578063715018a6146103b65780637323223f146103be57806379ba5097146103d15780637a997ab7146103d95780637ecebe00146103ee5780638423df791461040157806384b0196e1461040e5780638da5cb5b146104295780638e539e8c1461043157806391d148541461044457806391ddadf41461045757806395d89b411461046d5780639ab24eb0146104755780639ff7664c14610488578063a217fddf1461049b578063a2309ff8146104a3578063a9059cbb146104ac578063acd7cf13146104bf578063c3cda520146104e2578063d505accf146104f5578063d539139314610508578063d547741f1461051d578063dd62ed3e14610530578063e30c397814610543578063eb415f451461054b578063f1127ed814610553578063f2fde38b14610592578063f79d877c146105a5575b600080fd5b61023261022d366004612372565b6105b8565b60405190151581526020015b60405180910390f35b61024f6105c9565b60405161023e91906123e2565b61023261026a366004612411565b61065b565b6002545b60405190815260200161023e565b61023261028f36600461243b565b610673565b6102736102a2366004612478565b610697565b6102ba6102b5366004612491565b6106ac565b005b6102ba6102ca3660046124bd565b6106ce565b6040516012815260200161023e565b610273673e09de2596099e2b601c1b81565b61027361073b565b6102ba610306366004612491565b61074a565b610273610319366004612411565b610782565b60408051808201909152600e81526d06d6f64653d74696d657374616d760941b602082015261024f565b61035b6103563660046124bd565b6107be565b60405161023e91906124d8565b6102ba6103763660046124bd565b6107dc565b61038e6103893660046124bd565b6107eb565b60405163ffffffff909116815260200161023e565b6102736103b13660046124bd565b6107f6565b6102ba610811565b6102ba6103cc366004612537565b610835565b6102ba6109d3565b610273600080516020612a9983398151915281565b6102736103fc3660046124bd565b610a1b565b6010546102329060ff1681565b610416610a26565b60405161023e97969594939291906125da565b61035b610a6c565b61027361043f366004612478565b610a7b565b610232610452366004612491565b610aa0565b60405165ffffffffffff4216815260200161023e565b61024f610acb565b6102736104833660046124bd565b610ada565b6102ba610496366004612688565b610afb565b610273600081565b610273600e5481565b6102326104ba366004612411565b610bee565b6102326104cd3660046124bd565b600f6020526000908152604090205460ff1681565b6102ba6104f0366004612769565b610bfc565b6102ba6105033660046127c1565b610cb9565b610273600080516020612ab983398151915281565b6102ba61052b366004612491565b610dd5565b61027361053e36600461282c565b610df1565b61035b610e1c565b6102ba610e2b565b610566610561366004612856565b610e82565b60408051825165ffffffffffff1681526020928301516001600160d01b0316928101929092520161023e565b6102ba6105a03660046124bd565b610e9b565b6102ba6105b336600461282c565b610f01565b60006105c382610fc5565b92915050565b6060600380546105d890612896565b80601f016020809104026020016040519081016040528092919081815260200182805461060490612896565b80156106515780601f1061062657610100808354040283529160200191610651565b820191906000526020600020905b81548152906001019060200180831161063457829003601f168201915b5050505050905090565b600033610669818585610ffa565b5060019392505050565b600033610681858285611007565b61068c858585611055565b506001949350505050565b6000908152600d602052604090206001015490565b6106b582610697565b6106be816110b4565b6106c883836110be565b50505050565b600080516020612a998339815191526106e6816110b4565b6001600160a01b0382166000818152600f6020908152604091829020805460ff81161560ff1990911681179091559151828152919291600080516020612b1983398151915291015b60405180910390a2505050565b6000610745611152565b905090565b6001600160a01b03811633146107735760405163334bd91960e11b815260040160405180910390fd5b61077d828261127d565b505050565b60006107ae610790836112ea565b6001600160a01b03851660009081526009602052604090209061132f565b6001600160d01b03169392505050565b6001600160a01b039081166000908152600860205260409020541690565b336107e781836113e5565b5050565b60006105c382611460565b6001600160a01b031660009081526020819052604090205490565b610819611482565b6040516001623f026d60e01b0319815260040160405180910390fd5b600080516020612ab983398151915261084d816110b4565b85848114158061085d5750828114155b1561087b5760405163512509d360e11b815260040160405180910390fd5b600e5460005b828110156109c55760008a8a8381811061089d5761089d6128d0565b90506020020160208101906108b291906124bd565b905060008989848181106108c8576108c86128d0565b60200291909101359150506001600160a01b0382166108fa5760405163d92e233d60e01b815260040160405180910390fd5b8060000361091b57604051631f2a200560e01b815260040160405180910390fd5b61093084673e09de2596099e2b601c1b6128fc565b8111156109505760405163177e3fc360e01b815260040160405180910390fd5b61095a818561290f565b935061096682826114b6565b816001600160a01b0316600080516020612ad9833981519152828a8a87818110610992576109926128d0565b90506020028101906109a49190612922565b6040516109b393929190612968565b60405180910390a25050600101610881565b50600e555050505050505050565b33806109dd610e1c565b6001600160a01b031614610a0f578060405163118cdaa760e01b8152600401610a0691906124d8565b60405180910390fd5b610a18816114ec565b50565b60006105c38261159b565b600060608060008060006060610a3a6115b9565b610a426115e6565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b600b546001600160a01b031690565b6000610a91610a89836112ea565b600a9061132f565b6001600160d01b031692915050565b6000918252600d602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6060600480546105d890612896565b6001600160a01b0381166000908152600960205260408120610a9190611613565b600080516020612ab9833981519152610b13816110b4565b6001600160a01b038416610b3a5760405163d92e233d60e01b815260040160405180910390fd5b82600003610b5b57604051631f2a200560e01b815260040160405180910390fd5b673e09de2596099e2b601c1b83600e54610b75919061290f565b1115610b945760405163177e3fc360e01b815260040160405180910390fd5b610b9e84846114b6565b82600e6000828254610bb0919061290f565b92505081905550836001600160a01b0316600080516020612ad98339815191528484604051610be092919061299e565b60405180910390a250505050565b600033610669818585611055565b83421115610c2057604051632341d78760e11b815260048101859052602401610a06565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610c9a90610c929060a0016040516020818303038152906040528051906020012061164c565b858585611679565b9050610ca681876116a7565b610cb081886113e5565b50505050505050565b83421115610cdd5760405163313c898160e11b815260048101859052602401610a06565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610d0c8c6116d8565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610d678261164c565b90506000610d7782878787611679565b9050896001600160a01b0316816001600160a01b031614610dbe576040516325c0072360e11b81526001600160a01b0380831660048301528b166024820152604401610a06565b610dc98a8a8a610ffa565b50505050505050505050565b610dde82610697565b610de7816110b4565b6106c8838361127d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600c546001600160a01b031690565b6000610e36816110b4565b60105460ff1615610a18576010805460ff19169055604051600081527f2da74f794b62c41386dee79743b63d866355e0e0ae2a8d97aacb2ff5b7e1549b9060200160405180910390a150565b610e8a61235b565b610e9483836116fb565b9392505050565b610ea3611482565b600c80546001600160a01b0319166001600160a01b038316908117909155610ec9610a6c565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020612a99833981519152610f19816110b4565b6001600160a01b03831615610f71576001600160a01b0383166000818152600f6020908152604091829020805460ff191660019081179091559151918252600080516020612b19833981519152910160405180910390a25b6001600160a01b0382161561077d576001600160a01b0382166000818152600f6020908152604091829020805460ff191660019081179091559151918252600080516020612b19833981519152910161072e565b60006001600160e01b03198216637965db0b60e01b14806105c357506301ffc9a760e01b6001600160e01b03198316146105c3565b61077d8383836001611725565b60006110138484610df1565b90506000198110156106c8578181101561104657828183604051637dc7a0d960e11b8152600401610a06939291906129bf565b6106c884848484036000611725565b6001600160a01b03831661107f576000604051634b637e8f60e11b8152600401610a0691906124d8565b6001600160a01b0382166110a957600060405163ec442f0560e01b8152600401610a0691906124d8565b61077d8383836117fa565b610a188133611898565b60006110ca8383610aa0565b61114a576000838152600d602090815260408083206001600160a01b03861684529091529020805460ff191660011790556111023390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016105c3565b5060006105c3565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156111ab57507f000000000000000000000000000000000000000000000000000000000000000046145b156111d557507f000000000000000000000000000000000000000000000000000000000000000090565b610745604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60006112898383610aa0565b1561114a576000838152600d602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016105c3565b60004265ffffffffffff8116831061132657604051637669fc0f60e11b81526004810184905265ffffffffffff82166024820152604401610a06565b610e94836118c3565b81546000908181600581111561138e57600061134a846118f5565b61135490856128fc565b60008881526020902090915081015465ffffffffffff908116908716101561137e5780915061138c565b61138981600161290f565b92505b505b600061139c87878585611a48565b905080156113d7576113c1876113b36001846128fc565b600091825260209091200190565b54600160301b90046001600160d01b03166113da565b60005b979650505050505050565b60006113f0836107be565b6001600160a01b0384811660008181526008602052604080822080546001600160a01b031916888616908117909155905194955093928516927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a461077d818361145b86611aaa565b611ab5565b6001600160a01b0381166000908152600960205260408120546105c390611bfd565b3361148b610a6c565b6001600160a01b0316146114b4573360405163118cdaa760e01b8152600401610a0691906124d8565b565b6001600160a01b0382166114e057600060405163ec442f0560e01b8152600401610a0691906124d8565b6107e7600083836117fa565b60006114f6610a6c565b905061150182611c29565b6001600160a01b0381161561154f5761151b60008261127d565b50611534600080516020612ab98339815191528261127d565b5061154d600080516020612a998339815191528261127d565b505b6001600160a01b038216156107e7576115696000836110be565b50611582600080516020612ab9833981519152836110be565b5061077d600080516020612a99833981519152836110be565b6001600160a01b0381166000908152600760205260408120546105c3565b60606107457f00000000000000000000000000000000000000000000000000000000000000006005611c42565b60606107457f00000000000000000000000000000000000000000000000000000000000000006006611c42565b805460009080156116435761162d836113b36001846128fc565b54600160301b90046001600160d01b0316610e94565b60009392505050565b60006105c3611659611152565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060008061168b88888888611ced565b92509250925061169b8282611db2565b50909695505050505050565b60006116b2836116d8565b905080821461077d5782816040516301d4b62360e61b8152600401610a069291906129e0565b6001600160a01b0316600090815260076020526040902080546001810190915590565b61170361235b565b6001600160a01b0383166000908152600960205260409020610e949083611e6b565b6001600160a01b03841661174f57600060405163e602df0560e01b8152600401610a0691906124d8565b6001600160a01b038316611779576000604051634a1406b160e11b8152600401610a0691906124d8565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156106c857826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516117ec91815260200190565b60405180910390a350505050565b6001600160a01b0383161580159061181a57506001600160a01b03821615155b8015611828575060105460ff165b1561188d576001600160a01b0383166000908152600f602052604090205460ff1615801561186f57506001600160a01b0382166000908152600f602052604090205460ff16155b1561188d57604051638cd22d1960e01b815260040160405180910390fd5b61077d838383611ecf565b6118a28282610aa0565b6107e757808260405163e2517d3f60e01b8152600401610a069291906129e0565b600065ffffffffffff8211156118f1576030826040516306dfcc6560e41b8152600401610a069291906129f9565b5090565b600060018211611903575090565b816001600160801b821061191c5760809190911c9060401b5b600160401b82106119325760409190911c9060201b5b600160201b82106119485760209190911c9060101b5b62010000821061195d5760109190911c9060081b5b61010082106119715760089190911c9060041b5b601082106119845760049190911c9060021b5b600482106119905760011b5b600302600190811c908185816119a8576119a8612a0c565b048201901c905060018185816119c0576119c0612a0c565b048201901c905060018185816119d8576119d8612a0c565b048201901c905060018185816119f0576119f0612a0c565b048201901c90506001818581611a0857611a08612a0c565b048201901c90506001818581611a2057611a20612a0c565b048201901c9050611a3f818581611a3957611a39612a0c565b04821190565b90039392505050565b60005b81831015611aa2576000611a5f8484611f36565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff161115611a8e57809250611a9c565b611a9981600161290f565b93505b50611a4b565b509392505050565b60006105c3826107f6565b816001600160a01b0316836001600160a01b031614158015611ad75750600081115b1561077d576001600160a01b03831615611b6d576001600160a01b03831660009081526009602052604081208190611b1a90611f51611b1586611f5d565b611f8c565b6001600160d01b031691506001600160d01b03169150846001600160a01b0316600080516020612af98339815191528383604051611b62929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161561077d576001600160a01b03821660009081526009602052604081208190611ba690611fbe611b1586611f5d565b6001600160d01b031691506001600160d01b03169150836001600160a01b0316600080516020612af98339815191528383604051611bee929190918252602082015260400190565b60405180910390a25050505050565b600063ffffffff8211156118f1576020826040516306dfcc6560e41b8152600401610a069291906129f9565b600c80546001600160a01b0319169055610a1881611fca565b606060ff8314611c5c57611c558361201c565b90506105c3565b818054611c6890612896565b80601f0160208091040260200160405190810160405280929190818152602001828054611c9490612896565b8015611ce15780601f10611cb657610100808354040283529160200191611ce1565b820191906000526020600020905b815481529060010190602001808311611cc457829003601f168201915b505050505090506105c3565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115611d1e5750600091506003905082611da8565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611d72573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611d9e57506000925060019150829050611da8565b9250600091508190505b9450945094915050565b6000826003811115611dc657611dc6612a22565b03611dcf575050565b6001826003811115611de357611de3612a22565b03611e015760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115611e1557611e15612a22565b03611e365760405163fce698f760e01b815260048101829052602401610a06565b6003826003811115611e4a57611e4a612a22565b036107e7576040516335e2f38360e21b815260048101829052602401610a06565b611e7361235b565b826000018263ffffffff1681548110611e8e57611e8e6128d0565b60009182526020918290206040805180820190915291015465ffffffffffff81168252600160301b90046001600160d01b0316918101919091529392505050565b611eda83838361205b565b6001600160a01b038316611f2b576000611ef360025490565b90506001600160d01b0380821115611f2857604051630e58ae9360e11b81526004810183905260248101829052604401610a06565b50505b61077d838383612172565b6000611f456002848418612a38565b610e949084841661290f565b6000610e948284612a5a565b60006001600160d01b038211156118f15760d0826040516306dfcc6560e41b8152600401610a069291906129f9565b600080611fb142611fa9611f9f88611613565b868863ffffffff16565b8791906121d1565b915091505b935093915050565b6000610e948284612a79565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60606000612029836121df565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6001600160a01b03831661208657806002600082825461207b919061290f565b909155506120e59050565b6001600160a01b038316600090815260208190526040902054818110156120c65783818360405163391434e360e21b8152600401610a06939291906129bf565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661210157600280548290039055612120565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161216591815260200190565b60405180910390a3505050565b6001600160a01b03831661219457612191600a611fbe611b1584611f5d565b50505b6001600160a01b0382166121b6576121b3600a611f51611b1584611f5d565b50505b61077d6121c2846107be565b6121cb846107be565b83611ab5565b600080611fb1858585612207565b600060ff8216601f8111156105c357604051632cd44ac360e21b815260040160405180910390fd5b825460009081908015612300576000612225876113b36001856128fc565b805490915065ffffffffffff80821691600160301b90046001600160d01b031690881682111561226857604051632520601d60e01b815260040160405180910390fd5b8765ffffffffffff168265ffffffffffff16036122a157825465ffffffffffff16600160301b6001600160d01b038916021783556122f2565b6040805180820190915265ffffffffffff808a1682526001600160d01b03808a1660208085019182528d54600181018f5560008f81529190912094519151909216600160301b029216919091179101555b9450859350611fb692505050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b029190931617920191909155905081611fb6565b604080518082019091526000808252602082015290565b60006020828403121561238457600080fd5b81356001600160e01b031981168114610e9457600080fd5b6000815180845260005b818110156123c2576020818501810151868301820152016123a6565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610e94602083018461239c565b80356001600160a01b038116811461240c57600080fd5b919050565b6000806040838503121561242457600080fd5b61242d836123f5565b946020939093013593505050565b60008060006060848603121561245057600080fd5b612459846123f5565b9250612467602085016123f5565b929592945050506040919091013590565b60006020828403121561248a57600080fd5b5035919050565b600080604083850312156124a457600080fd5b823591506124b4602084016123f5565b90509250929050565b6000602082840312156124cf57600080fd5b610e94826123f5565b6001600160a01b0391909116815260200190565b60008083601f8401126124fe57600080fd5b5081356001600160401b0381111561251557600080fd5b6020830191508360208260051b850101111561253057600080fd5b9250929050565b6000806000806000806060878903121561255057600080fd5b86356001600160401b0381111561256657600080fd5b61257289828a016124ec565b90975095505060208701356001600160401b0381111561259157600080fd5b61259d89828a016124ec565b90955093505060408701356001600160401b038111156125bc57600080fd5b6125c889828a016124ec565b979a9699509497509295939492505050565b60ff60f81b8816815260e0602082015260006125f960e083018961239c565b828103604084015261260b818961239c565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b81811015612661578351835260209384019390920191600101612643565b50909b9a5050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561269d57600080fd5b6126a6846123f5565b92506020840135915060408401356001600160401b038111156126c857600080fd5b8401601f810186136126d957600080fd5b80356001600160401b038111156126f2576126f2612672565b604051601f8201601f19908116603f011681016001600160401b038111828210171561272057612720612672565b60405281815282820160200188101561273857600080fd5b816020840160208301376000602083830101528093505050509250925092565b803560ff8116811461240c57600080fd5b60008060008060008060c0878903121561278257600080fd5b61278b876123f5565b955060208701359450604087013593506127a760608801612758565b9598949750929560808101359460a0909101359350915050565b600080600080600080600060e0888a0312156127dc57600080fd5b6127e5886123f5565b96506127f3602089016123f5565b9550604088013594506060880135935061280f60808901612758565b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561283f57600080fd5b612848836123f5565b91506124b4602084016123f5565b6000806040838503121561286957600080fd5b612872836123f5565b9150602083013563ffffffff8116811461288b57600080fd5b809150509250929050565b600181811c908216806128aa57607f821691505b6020821081036128ca57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156105c3576105c36128e6565b808201808211156105c3576105c36128e6565b6000808335601e1984360301811261293957600080fd5b8301803591506001600160401b0382111561295357600080fd5b60200191503681900382131561253057600080fd5b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b8281526040602082015260006129b7604083018461239c565b949350505050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b60ff929092168252602082015260400190565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b600082612a5557634e487b7160e01b600052601260045260246000fd5b500490565b6001600160d01b0382811682821603908111156105c3576105c36128e6565b6001600160d01b0381811683821601908111156105c3576105c36128e656fedc72ed553f2544c34465af23b847953efeb813428162d767f9ba5f4013be67609f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66a0cb465f1c0c57d5c571d6733fbb9f981a88a850aa78d67ceda77e204584833dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724e3b4918d2544570f4fd920ce69294772100c0d60360c88d94c56fadbbef76cb1a164736f6c634300081c000a"; readonly linkReferences: {}; readonly deployedLinkReferences: {}; readonly immutableReferences: {"7931":[{"length":32,"start":4531}],"7933":[{"length":32,"start":4489}],"7935":[{"length":32,"start":4447}],"7937":[{"length":32,"start":4612}],"7939":[{"length":32,"start":4652}],"7942":[{"length":32,"start":5568}],"7945":[{"length":32,"start":5613}]}; readonly inputSourceName: "project/contracts/token/EnclaveToken.sol"; readonly buildInfoId: "solc-0_8_28-58b894a0ac77a2d784be77b69288a062b8f6f518"; }; import "hardhat/types/artifacts"; declare module "hardhat/types/artifacts" { interface ArtifactMap { ["EnclaveToken"]: EnclaveToken$Type; ["contracts/token/EnclaveToken.sol:EnclaveToken"]: EnclaveToken$Type; } }