Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 5 from a total of 5 transactions
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
AnimalFamAirdrop
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-26 */ // SPDX-License-Identifier: MIT // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } // File: contracts/Airdrop.sol pragma solidity ^0.8.3; contract AnimalFamAirdrop is Ownable { event Deposit(address sender, uint256 amount); event Withdraw(address sender, uint256 amount, bytes32 messageHash); bool public paused; IERC20 public token; address public verifier; mapping(bytes32 => bool) public claimed; constructor(address _token, address _verifier) { token = IERC20(_token); verifier = _verifier; } modifier whenNotPaused() { require(!paused, "paused"); _; } function getMessageHash( address _to, uint256 _amount, string memory _message, uint256 _nonce ) public pure returns (bytes32) { return keccak256(abi.encodePacked(_to, _amount, _message, _nonce)); } function getEthSignedMessageHash(bytes32 _messageHash) public pure returns (bytes32) { return keccak256( abi.encodePacked( "\x19Ethereum Signed Message:\n32", _messageHash ) ); } function verify( address _signer, address _to, uint256 _amount, string memory _message, uint256 _nonce, bytes memory signature ) public pure returns (bool) { bytes32 messageHash = getMessageHash(_to, _amount, _message, _nonce); bytes32 ethSignedMessageHash = getEthSignedMessageHash(messageHash); return recoverSigner(ethSignedMessageHash, signature) == _signer; } function recoverSigner( bytes32 _ethSignedMessageHash, bytes memory _signature ) public pure returns (address) { (bytes32 r, bytes32 s, uint8 v) = splitSignature(_signature); return ecrecover(_ethSignedMessageHash, v, r, s); } function splitSignature(bytes memory sig) public pure returns ( bytes32 r, bytes32 s, uint8 v ) { require(sig.length == 65, "invalid signature length"); assembly { r := mload(add(sig, 32)) s := mload(add(sig, 64)) v := byte(0, mload(add(sig, 96))) } } function deposit(uint256 _amount) external whenNotPaused { token.transferFrom(msg.sender, address(this), _amount); emit Deposit(msg.sender, _amount); } function withdraw( uint256 _amount, string memory _message, uint256 _nonce, bytes memory _signature ) external whenNotPaused { require( verify(verifier, msg.sender, _amount, _message, _nonce, _signature), "invalid signature" ); bytes32 messageHash = getMessageHash( msg.sender, _amount, _message, _nonce ); require(!claimed[messageHash], "messageHash is submited"); claimed[messageHash] = true; token.transfer(msg.sender, _amount); emit Withdraw(msg.sender, _amount, messageHash); } function togglePause() external onlyOwner { paused = !paused; } function setVerifier(address _verifier) external onlyOwner { verifier = _verifier; } function setToken(address _token) external onlyOwner { token = IERC20(_token); } function withdrawToken(address _token, uint256 _amount) external onlyOwner { IERC20(_token).transfer(msg.sender, _amount); } function withdrawETH(uint256 _amount) external onlyOwner { payable(msg.sender).transfer(_amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_verifier","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"messageHash","type":"bytes32"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_messageHash","type":"bytes32"}],"name":"getEthSignedMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"string","name":"_message","type":"string"},{"internalType":"uint256","name":"_nonce","type":"uint256"}],"name":"getMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_ethSignedMessageHash","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"recoverSigner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_verifier","type":"address"}],"name":"setVerifier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"sig","type":"bytes"}],"name":"splitSignature","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint8","name":"v","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"togglePause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"verifier","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_signer","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"string","name":"_message","type":"string"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"verify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"string","name":"_message","type":"string"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162001ca938038062001ca9833981810160405281019062000037919062000217565b620000576200004b620000e160201b60201c565b620000e960201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506200025e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001df82620001b2565b9050919050565b620001f181620001d2565b8114620001fd57600080fd5b50565b6000815190506200021181620001e6565b92915050565b60008060408385031215620002315762000230620001ad565b5b6000620002418582860162000200565b9250506020620002548582860162000200565b9150509250929050565b611a3b806200026e6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063a35f8a40116100ad578063cc3c0f0611610071578063cc3c0f06146102e2578063f14210a614610312578063f2fde38b1461032e578063fa5408011461034a578063fc0c546a1461037a57610121565b8063a35f8a401461022a578063a7bb58031461025a578063abe5026a1461028c578063b6b55f25146102bc578063c4ae3168146102d857610121565b80635c975abb116100f45780635c975abb14610198578063715018a6146101b65780638da5cb5b146101c057806397aba7f9146101de5780639e281a981461020e57610121565b8063144fa6d7146101265780632068e5d0146101425780632b7ac3f31461015e5780635437988d1461017c575b600080fd5b610140600480360381019061013b9190610d4e565b610398565b005b61015c60048036038101906101579190610f98565b6103e4565b005b610166610623565b6040516101739190611046565b60405180910390f35b61019660048036038101906101919190610d4e565b610649565b005b6101a0610695565b6040516101ad919061107c565b60405180910390f35b6101be6106a8565b005b6101c86106bc565b6040516101d59190611046565b60405180910390f35b6101f860048036038101906101f391906110cd565b6106e5565b6040516102059190611046565b60405180910390f35b61022860048036038101906102239190611129565b610754565b005b610244600480360381019061023f9190611169565b6107df565b60405161025191906111fb565b60405180910390f35b610274600480360381019061026f9190611216565b610818565b6040516102839392919061127b565b60405180910390f35b6102a660048036038101906102a191906112b2565b610880565b6040516102b3919061107c565b60405180910390f35b6102d660048036038101906102d19190611377565b6108e4565b005b6102e0610a13565b005b6102fc60048036038101906102f791906113a4565b610a47565b604051610309919061107c565b60405180910390f35b61032c60048036038101906103279190611377565b610a67565b005b61034860048036038101906103439190610d4e565b610ab9565b005b610364600480360381019061035f91906113a4565b610b3c565b60405161037191906111fb565b60405180910390f35b610382610b6c565b60405161038f9190611430565b60405180910390f35b6103a0610b92565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060149054906101000a900460ff1615610434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042b906114a8565b60405180910390fd5b610464600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163386868686610880565b6104a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a90611514565b60405180910390fd5b60006104b1338686866107df565b90506003600082815260200190815260200160002060009054906101000a900460ff1615610514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050b90611580565b60405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff1660e01b815260040161059d9291906115af565b6020604051808303816000875af11580156105bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e09190611604565b507f4d911754a3efbbc2e0463de4f6bff32ed24421d1c89c11dce59a4935f327afff33868360405161061493929190611631565b60405180910390a15050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610651610b92565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060149054906101000a900460ff1681565b6106b0610b92565b6106ba6000610c10565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806000806106f485610818565b9250925092506001868285856040516000815260200160405260405161071d9493929190611668565b6020604051602081039080840390855afa15801561073f573d6000803e3d6000fd5b50505060206040510351935050505092915050565b61075c610b92565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016107979291906115af565b6020604051808303816000875af11580156107b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107da9190611604565b505050565b6000848484846040516020016107f89493929190611787565b604051602081830303815290604052805190602001209050949350505050565b60008060006041845114610861576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108589061181d565b60405180910390fd5b6020840151925060408401519150606084015160001a90509193909250565b60008061088f878787876107df565b9050600061089c82610b3c565b90508873ffffffffffffffffffffffffffffffffffffffff166108bf82866106e5565b73ffffffffffffffffffffffffffffffffffffffff1614925050509695505050505050565b600060149054906101000a900460ff1615610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b906114a8565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016109939392919061183d565b6020604051808303816000875af11580156109b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d69190611604565b507fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c3382604051610a089291906115af565b60405180910390a150565b610a1b610b92565b600060149054906101000a900460ff1615600060146101000a81548160ff021916908315150217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b610a6f610b92565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ab5573d6000803e3d6000fd5b5050565b610ac1610b92565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b27906118e6565b60405180910390fd5b610b3981610c10565b50565b600081604051602001610b4f9190611973565b604051602081830303815290604052805190602001209050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b9a610cd4565b73ffffffffffffffffffffffffffffffffffffffff16610bb86106bc565b73ffffffffffffffffffffffffffffffffffffffff1614610c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c05906119e5565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d1b82610cf0565b9050919050565b610d2b81610d10565b8114610d3657600080fd5b50565b600081359050610d4881610d22565b92915050565b600060208284031215610d6457610d63610ce6565b5b6000610d7284828501610d39565b91505092915050565b6000819050919050565b610d8e81610d7b565b8114610d9957600080fd5b50565b600081359050610dab81610d85565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610e0482610dbb565b810181811067ffffffffffffffff82111715610e2357610e22610dcc565b5b80604052505050565b6000610e36610cdc565b9050610e428282610dfb565b919050565b600067ffffffffffffffff821115610e6257610e61610dcc565b5b610e6b82610dbb565b9050602081019050919050565b82818337600083830152505050565b6000610e9a610e9584610e47565b610e2c565b905082815260208101848484011115610eb657610eb5610db6565b5b610ec1848285610e78565b509392505050565b600082601f830112610ede57610edd610db1565b5b8135610eee848260208601610e87565b91505092915050565b600067ffffffffffffffff821115610f1257610f11610dcc565b5b610f1b82610dbb565b9050602081019050919050565b6000610f3b610f3684610ef7565b610e2c565b905082815260208101848484011115610f5757610f56610db6565b5b610f62848285610e78565b509392505050565b600082601f830112610f7f57610f7e610db1565b5b8135610f8f848260208601610f28565b91505092915050565b60008060008060808587031215610fb257610fb1610ce6565b5b6000610fc087828801610d9c565b945050602085013567ffffffffffffffff811115610fe157610fe0610ceb565b5b610fed87828801610ec9565b9350506040610ffe87828801610d9c565b925050606085013567ffffffffffffffff81111561101f5761101e610ceb565b5b61102b87828801610f6a565b91505092959194509250565b61104081610d10565b82525050565b600060208201905061105b6000830184611037565b92915050565b60008115159050919050565b61107681611061565b82525050565b6000602082019050611091600083018461106d565b92915050565b6000819050919050565b6110aa81611097565b81146110b557600080fd5b50565b6000813590506110c7816110a1565b92915050565b600080604083850312156110e4576110e3610ce6565b5b60006110f2858286016110b8565b925050602083013567ffffffffffffffff81111561111357611112610ceb565b5b61111f85828601610f6a565b9150509250929050565b600080604083850312156111405761113f610ce6565b5b600061114e85828601610d39565b925050602061115f85828601610d9c565b9150509250929050565b6000806000806080858703121561118357611182610ce6565b5b600061119187828801610d39565b94505060206111a287828801610d9c565b935050604085013567ffffffffffffffff8111156111c3576111c2610ceb565b5b6111cf87828801610ec9565b92505060606111e087828801610d9c565b91505092959194509250565b6111f581611097565b82525050565b600060208201905061121060008301846111ec565b92915050565b60006020828403121561122c5761122b610ce6565b5b600082013567ffffffffffffffff81111561124a57611249610ceb565b5b61125684828501610f6a565b91505092915050565b600060ff82169050919050565b6112758161125f565b82525050565b600060608201905061129060008301866111ec565b61129d60208301856111ec565b6112aa604083018461126c565b949350505050565b60008060008060008060c087890312156112cf576112ce610ce6565b5b60006112dd89828a01610d39565b96505060206112ee89828a01610d39565b95505060406112ff89828a01610d9c565b945050606087013567ffffffffffffffff8111156113205761131f610ceb565b5b61132c89828a01610ec9565b935050608061133d89828a01610d9c565b92505060a087013567ffffffffffffffff81111561135e5761135d610ceb565b5b61136a89828a01610f6a565b9150509295509295509295565b60006020828403121561138d5761138c610ce6565b5b600061139b84828501610d9c565b91505092915050565b6000602082840312156113ba576113b9610ce6565b5b60006113c8848285016110b8565b91505092915050565b6000819050919050565b60006113f66113f16113ec84610cf0565b6113d1565b610cf0565b9050919050565b6000611408826113db565b9050919050565b600061141a826113fd565b9050919050565b61142a8161140f565b82525050565b60006020820190506114456000830184611421565b92915050565b600082825260208201905092915050565b7f7061757365640000000000000000000000000000000000000000000000000000600082015250565b600061149260068361144b565b915061149d8261145c565b602082019050919050565b600060208201905081810360008301526114c181611485565b9050919050565b7f696e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b60006114fe60118361144b565b9150611509826114c8565b602082019050919050565b6000602082019050818103600083015261152d816114f1565b9050919050565b7f6d65737361676548617368206973207375626d69746564000000000000000000600082015250565b600061156a60178361144b565b915061157582611534565b602082019050919050565b600060208201905081810360008301526115998161155d565b9050919050565b6115a981610d7b565b82525050565b60006040820190506115c46000830185611037565b6115d160208301846115a0565b9392505050565b6115e181611061565b81146115ec57600080fd5b50565b6000815190506115fe816115d8565b92915050565b60006020828403121561161a57611619610ce6565b5b6000611628848285016115ef565b91505092915050565b60006060820190506116466000830186611037565b61165360208301856115a0565b61166060408301846111ec565b949350505050565b600060808201905061167d60008301876111ec565b61168a602083018661126c565b61169760408301856111ec565b6116a460608301846111ec565b95945050505050565b60008160601b9050919050565b60006116c5826116ad565b9050919050565b60006116d7826116ba565b9050919050565b6116ef6116ea82610d10565b6116cc565b82525050565b6000819050919050565b61171061170b82610d7b565b6116f5565b82525050565b600081519050919050565b600081905092915050565b60005b8381101561174a57808201518184015260208101905061172f565b60008484015250505050565b600061176182611716565b61176b8185611721565b935061177b81856020860161172c565b80840191505092915050565b600061179382876116de565b6014820191506117a382866116ff565b6020820191506117b38285611756565b91506117bf82846116ff565b60208201915081905095945050505050565b7f696e76616c6964207369676e6174757265206c656e6774680000000000000000600082015250565b600061180760188361144b565b9150611812826117d1565b602082019050919050565b60006020820190508181036000830152611836816117fa565b9050919050565b60006060820190506118526000830186611037565b61185f6020830185611037565b61186c60408301846115a0565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006118d060268361144b565b91506118db82611874565b604082019050919050565b600060208201905081810360008301526118ff816118c3565b9050919050565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b600061193c601c83611721565b915061194782611906565b601c82019050919050565b6000819050919050565b61196d61196882611097565b611952565b82525050565b600061197e8261192f565b915061198a828461195c565b60208201915081905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006119cf60208361144b565b91506119da82611999565b602082019050919050565b600060208201905081810360008301526119fe816119c2565b905091905056fea26469706673582212209c7fe96cdd9abfd319963f7112ed0f2279845f9fe4733bf0f380ce91fe9f55d264736f6c634300081200330000000000000000000000000adcfdfe9e88d28cc4c1daac9cc021067aff9b0c00000000000000000000000006785abaa208316a2bfa31f9a986df8c89df630f
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101215760003560e01c8063a35f8a40116100ad578063cc3c0f0611610071578063cc3c0f06146102e2578063f14210a614610312578063f2fde38b1461032e578063fa5408011461034a578063fc0c546a1461037a57610121565b8063a35f8a401461022a578063a7bb58031461025a578063abe5026a1461028c578063b6b55f25146102bc578063c4ae3168146102d857610121565b80635c975abb116100f45780635c975abb14610198578063715018a6146101b65780638da5cb5b146101c057806397aba7f9146101de5780639e281a981461020e57610121565b8063144fa6d7146101265780632068e5d0146101425780632b7ac3f31461015e5780635437988d1461017c575b600080fd5b610140600480360381019061013b9190610d4e565b610398565b005b61015c60048036038101906101579190610f98565b6103e4565b005b610166610623565b6040516101739190611046565b60405180910390f35b61019660048036038101906101919190610d4e565b610649565b005b6101a0610695565b6040516101ad919061107c565b60405180910390f35b6101be6106a8565b005b6101c86106bc565b6040516101d59190611046565b60405180910390f35b6101f860048036038101906101f391906110cd565b6106e5565b6040516102059190611046565b60405180910390f35b61022860048036038101906102239190611129565b610754565b005b610244600480360381019061023f9190611169565b6107df565b60405161025191906111fb565b60405180910390f35b610274600480360381019061026f9190611216565b610818565b6040516102839392919061127b565b60405180910390f35b6102a660048036038101906102a191906112b2565b610880565b6040516102b3919061107c565b60405180910390f35b6102d660048036038101906102d19190611377565b6108e4565b005b6102e0610a13565b005b6102fc60048036038101906102f791906113a4565b610a47565b604051610309919061107c565b60405180910390f35b61032c60048036038101906103279190611377565b610a67565b005b61034860048036038101906103439190610d4e565b610ab9565b005b610364600480360381019061035f91906113a4565b610b3c565b60405161037191906111fb565b60405180910390f35b610382610b6c565b60405161038f9190611430565b60405180910390f35b6103a0610b92565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060149054906101000a900460ff1615610434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042b906114a8565b60405180910390fd5b610464600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163386868686610880565b6104a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a90611514565b60405180910390fd5b60006104b1338686866107df565b90506003600082815260200190815260200160002060009054906101000a900460ff1615610514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050b90611580565b60405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff1660e01b815260040161059d9291906115af565b6020604051808303816000875af11580156105bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e09190611604565b507f4d911754a3efbbc2e0463de4f6bff32ed24421d1c89c11dce59a4935f327afff33868360405161061493929190611631565b60405180910390a15050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610651610b92565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060149054906101000a900460ff1681565b6106b0610b92565b6106ba6000610c10565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806000806106f485610818565b9250925092506001868285856040516000815260200160405260405161071d9493929190611668565b6020604051602081039080840390855afa15801561073f573d6000803e3d6000fd5b50505060206040510351935050505092915050565b61075c610b92565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016107979291906115af565b6020604051808303816000875af11580156107b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107da9190611604565b505050565b6000848484846040516020016107f89493929190611787565b604051602081830303815290604052805190602001209050949350505050565b60008060006041845114610861576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108589061181d565b60405180910390fd5b6020840151925060408401519150606084015160001a90509193909250565b60008061088f878787876107df565b9050600061089c82610b3c565b90508873ffffffffffffffffffffffffffffffffffffffff166108bf82866106e5565b73ffffffffffffffffffffffffffffffffffffffff1614925050509695505050505050565b600060149054906101000a900460ff1615610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b906114a8565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016109939392919061183d565b6020604051808303816000875af11580156109b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d69190611604565b507fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c3382604051610a089291906115af565b60405180910390a150565b610a1b610b92565b600060149054906101000a900460ff1615600060146101000a81548160ff021916908315150217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b610a6f610b92565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ab5573d6000803e3d6000fd5b5050565b610ac1610b92565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b27906118e6565b60405180910390fd5b610b3981610c10565b50565b600081604051602001610b4f9190611973565b604051602081830303815290604052805190602001209050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b9a610cd4565b73ffffffffffffffffffffffffffffffffffffffff16610bb86106bc565b73ffffffffffffffffffffffffffffffffffffffff1614610c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c05906119e5565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d1b82610cf0565b9050919050565b610d2b81610d10565b8114610d3657600080fd5b50565b600081359050610d4881610d22565b92915050565b600060208284031215610d6457610d63610ce6565b5b6000610d7284828501610d39565b91505092915050565b6000819050919050565b610d8e81610d7b565b8114610d9957600080fd5b50565b600081359050610dab81610d85565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610e0482610dbb565b810181811067ffffffffffffffff82111715610e2357610e22610dcc565b5b80604052505050565b6000610e36610cdc565b9050610e428282610dfb565b919050565b600067ffffffffffffffff821115610e6257610e61610dcc565b5b610e6b82610dbb565b9050602081019050919050565b82818337600083830152505050565b6000610e9a610e9584610e47565b610e2c565b905082815260208101848484011115610eb657610eb5610db6565b5b610ec1848285610e78565b509392505050565b600082601f830112610ede57610edd610db1565b5b8135610eee848260208601610e87565b91505092915050565b600067ffffffffffffffff821115610f1257610f11610dcc565b5b610f1b82610dbb565b9050602081019050919050565b6000610f3b610f3684610ef7565b610e2c565b905082815260208101848484011115610f5757610f56610db6565b5b610f62848285610e78565b509392505050565b600082601f830112610f7f57610f7e610db1565b5b8135610f8f848260208601610f28565b91505092915050565b60008060008060808587031215610fb257610fb1610ce6565b5b6000610fc087828801610d9c565b945050602085013567ffffffffffffffff811115610fe157610fe0610ceb565b5b610fed87828801610ec9565b9350506040610ffe87828801610d9c565b925050606085013567ffffffffffffffff81111561101f5761101e610ceb565b5b61102b87828801610f6a565b91505092959194509250565b61104081610d10565b82525050565b600060208201905061105b6000830184611037565b92915050565b60008115159050919050565b61107681611061565b82525050565b6000602082019050611091600083018461106d565b92915050565b6000819050919050565b6110aa81611097565b81146110b557600080fd5b50565b6000813590506110c7816110a1565b92915050565b600080604083850312156110e4576110e3610ce6565b5b60006110f2858286016110b8565b925050602083013567ffffffffffffffff81111561111357611112610ceb565b5b61111f85828601610f6a565b9150509250929050565b600080604083850312156111405761113f610ce6565b5b600061114e85828601610d39565b925050602061115f85828601610d9c565b9150509250929050565b6000806000806080858703121561118357611182610ce6565b5b600061119187828801610d39565b94505060206111a287828801610d9c565b935050604085013567ffffffffffffffff8111156111c3576111c2610ceb565b5b6111cf87828801610ec9565b92505060606111e087828801610d9c565b91505092959194509250565b6111f581611097565b82525050565b600060208201905061121060008301846111ec565b92915050565b60006020828403121561122c5761122b610ce6565b5b600082013567ffffffffffffffff81111561124a57611249610ceb565b5b61125684828501610f6a565b91505092915050565b600060ff82169050919050565b6112758161125f565b82525050565b600060608201905061129060008301866111ec565b61129d60208301856111ec565b6112aa604083018461126c565b949350505050565b60008060008060008060c087890312156112cf576112ce610ce6565b5b60006112dd89828a01610d39565b96505060206112ee89828a01610d39565b95505060406112ff89828a01610d9c565b945050606087013567ffffffffffffffff8111156113205761131f610ceb565b5b61132c89828a01610ec9565b935050608061133d89828a01610d9c565b92505060a087013567ffffffffffffffff81111561135e5761135d610ceb565b5b61136a89828a01610f6a565b9150509295509295509295565b60006020828403121561138d5761138c610ce6565b5b600061139b84828501610d9c565b91505092915050565b6000602082840312156113ba576113b9610ce6565b5b60006113c8848285016110b8565b91505092915050565b6000819050919050565b60006113f66113f16113ec84610cf0565b6113d1565b610cf0565b9050919050565b6000611408826113db565b9050919050565b600061141a826113fd565b9050919050565b61142a8161140f565b82525050565b60006020820190506114456000830184611421565b92915050565b600082825260208201905092915050565b7f7061757365640000000000000000000000000000000000000000000000000000600082015250565b600061149260068361144b565b915061149d8261145c565b602082019050919050565b600060208201905081810360008301526114c181611485565b9050919050565b7f696e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b60006114fe60118361144b565b9150611509826114c8565b602082019050919050565b6000602082019050818103600083015261152d816114f1565b9050919050565b7f6d65737361676548617368206973207375626d69746564000000000000000000600082015250565b600061156a60178361144b565b915061157582611534565b602082019050919050565b600060208201905081810360008301526115998161155d565b9050919050565b6115a981610d7b565b82525050565b60006040820190506115c46000830185611037565b6115d160208301846115a0565b9392505050565b6115e181611061565b81146115ec57600080fd5b50565b6000815190506115fe816115d8565b92915050565b60006020828403121561161a57611619610ce6565b5b6000611628848285016115ef565b91505092915050565b60006060820190506116466000830186611037565b61165360208301856115a0565b61166060408301846111ec565b949350505050565b600060808201905061167d60008301876111ec565b61168a602083018661126c565b61169760408301856111ec565b6116a460608301846111ec565b95945050505050565b60008160601b9050919050565b60006116c5826116ad565b9050919050565b60006116d7826116ba565b9050919050565b6116ef6116ea82610d10565b6116cc565b82525050565b6000819050919050565b61171061170b82610d7b565b6116f5565b82525050565b600081519050919050565b600081905092915050565b60005b8381101561174a57808201518184015260208101905061172f565b60008484015250505050565b600061176182611716565b61176b8185611721565b935061177b81856020860161172c565b80840191505092915050565b600061179382876116de565b6014820191506117a382866116ff565b6020820191506117b38285611756565b91506117bf82846116ff565b60208201915081905095945050505050565b7f696e76616c6964207369676e6174757265206c656e6774680000000000000000600082015250565b600061180760188361144b565b9150611812826117d1565b602082019050919050565b60006020820190508181036000830152611836816117fa565b9050919050565b60006060820190506118526000830186611037565b61185f6020830185611037565b61186c60408301846115a0565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006118d060268361144b565b91506118db82611874565b604082019050919050565b600060208201905081810360008301526118ff816118c3565b9050919050565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b600061193c601c83611721565b915061194782611906565b601c82019050919050565b6000819050919050565b61196d61196882611097565b611952565b82525050565b600061197e8261192f565b915061198a828461195c565b60208201915081905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006119cf60208361144b565b91506119da82611999565b602082019050919050565b600060208201905081810360008301526119fe816119c2565b905091905056fea26469706673582212209c7fe96cdd9abfd319963f7112ed0f2279845f9fe4733bf0f380ce91fe9f55d264736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000adcfdfe9e88d28cc4c1daac9cc021067aff9b0c00000000000000000000000006785abaa208316a2bfa31f9a986df8c89df630f
-----Decoded View---------------
Arg [0] : _token (address): 0x0ADCfDFe9E88D28cC4C1dAaC9CC021067aFF9B0C
Arg [1] : _verifier (address): 0x06785AbAa208316A2bFA31f9A986df8c89Df630F
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000adcfdfe9e88d28cc4c1daac9cc021067aff9b0c
Arg [1] : 00000000000000000000000006785abaa208316a2bfa31f9a986df8c89df630f
Deployed Bytecode Sourcemap
6564:3698:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9898:94;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9015:684;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6787:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9792:98;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6736:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2807:103;;;:::i;:::-;;2159:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8141:272;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10000:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7082:252;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8421:404;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;7676:457;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8833:174;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9707:77;;;:::i;:::-;;6817:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10146:113;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3065:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7342:326;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6761:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9898:94;2045:13;:11;:13::i;:::-;9977:6:::1;9962:5;;:22;;;;;;;;;;;;;;;;;;9898:94:::0;:::o;9015:684::-;7037:6;;;;;;;;;;;7036:7;7028:26;;;;;;;;;;;;:::i;:::-;;;;;;;;;9214:67:::1;9221:8;;;;;;;;;;;9231:10;9243:7;9252:8;9262:6;9270:10;9214:6;:67::i;:::-;9192:134;;;;;;;;;;;;:::i;:::-;;;;;;;;;9337:19;9359:116;9388:10;9413:7;9435:8;9458:6;9359:14;:116::i;:::-;9337:138;;9495:7;:20;9503:11;9495:20;;;;;;;;;;;;;;;;;;;;;9494:21;9486:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9579:4;9556:7;:20;9564:11;9556:20;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;9596:5;;;;;;;;;;;:14;;;9611:10;9623:7;9596:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9649:42;9658:10;9670:7;9679:11;9649:42;;;;;;;;:::i;:::-;;;;;;;;9181:518;9015:684:::0;;;;:::o;6787:23::-;;;;;;;;;;;;;:::o;9792:98::-;2045:13;:11;:13::i;:::-;9873:9:::1;9862:8;;:20;;;;;;;;;;;;;;;;;;9792:98:::0;:::o;6736:18::-;;;;;;;;;;;;;:::o;2807:103::-;2045:13;:11;:13::i;:::-;2872:30:::1;2899:1;2872:18;:30::i;:::-;2807:103::o:0;2159:87::-;2205:7;2232:6;;;;;;;;;;;2225:13;;2159:87;:::o;8141:272::-;8266:7;8287:9;8298;8309:7;8320:26;8335:10;8320:14;:26::i;:::-;8286:60;;;;;;8364:41;8374:21;8397:1;8400;8403;8364:41;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8357:48;;;;;8141:272;;;;:::o;10000:138::-;2045:13;:11;:13::i;:::-;10093:6:::1;10086:23;;;10110:10;10122:7;10086:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10000:138:::0;;:::o;7082:252::-;7240:7;7294:3;7299:7;7308:8;7318:6;7277:48;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7267:59;;;;;;7260:66;;7082:252;;;;;;:::o;8421:404::-;8525:9;8549;8573:7;8630:2;8616:3;:10;:16;8608:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;8718:2;8713:3;8709:12;8703:19;8698:24;;8756:2;8751:3;8747:12;8741:19;8736:24;;8802:2;8797:3;8793:12;8787:19;8784:1;8779:28;8774:33;;8421:404;;;;;:::o;7676:457::-;7885:4;7902:19;7924:46;7939:3;7944:7;7953:8;7963:6;7924:14;:46::i;:::-;7902:68;;7981:28;8012:36;8036:11;8012:23;:36::i;:::-;7981:67;;8118:7;8068:57;;:46;8082:20;8104:9;8068:13;:46::i;:::-;:57;;;8061:64;;;;7676:457;;;;;;;;:::o;8833:174::-;7037:6;;;;;;;;;;;7036:7;7028:26;;;;;;;;;;;;:::i;:::-;;;;;;;;;8901:5:::1;;;;;;;;;;;:18;;;8920:10;8940:4;8947:7;8901:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8971:28;8979:10;8991:7;8971:28;;;;;;;:::i;:::-;;;;;;;;8833:174:::0;:::o;9707:77::-;2045:13;:11;:13::i;:::-;9770:6:::1;;;;;;;;;;;9769:7;9760:6;;:16;;;;;;;;;;;;;;;;;;9707:77::o:0;6817:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;10146:113::-;2045:13;:11;:13::i;:::-;10222:10:::1;10214:28;;:37;10243:7;10214:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10146:113:::0;:::o;3065:201::-;2045:13;:11;:13::i;:::-;3174:1:::1;3154:22;;:8;:22;;::::0;3146:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3230:28;3249:8;3230:18;:28::i;:::-;3065:201:::0;:::o;7342:326::-;7445:7;7614:12;7518:127;;;;;;;;:::i;:::-;;;;;;;;;;;;;7490:170;;;;;;7470:190;;7342:326;;;:::o;6761:19::-;;;;;;;;;;;;;:::o;2324:132::-;2399:12;:10;:12::i;:::-;2388:23;;:7;:5;:7::i;:::-;:23;;;2380:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2324:132::o;3426:191::-;3500:16;3519:6;;;;;;;;;;;3500:25;;3545:8;3536:6;;:17;;;;;;;;;;;;;;;;;;3600:8;3569:40;;3590:8;3569:40;;;;;;;;;;;;3489:128;3426:191;:::o;710:98::-;763:7;790:10;783:17;;710:98;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:122::-;1332:24;1350:5;1332:24;:::i;:::-;1325:5;1322:35;1312:63;;1371:1;1368;1361:12;1312:63;1259:122;:::o;1387:139::-;1433:5;1471:6;1458:20;1449:29;;1487:33;1514:5;1487:33;:::i;:::-;1387:139;;;;:::o;1532:117::-;1641:1;1638;1631:12;1655:117;1764:1;1761;1754:12;1778:102;1819:6;1870:2;1866:7;1861:2;1854:5;1850:14;1846:28;1836:38;;1778:102;;;:::o;1886:180::-;1934:77;1931:1;1924:88;2031:4;2028:1;2021:15;2055:4;2052:1;2045:15;2072:281;2155:27;2177:4;2155:27;:::i;:::-;2147:6;2143:40;2285:6;2273:10;2270:22;2249:18;2237:10;2234:34;2231:62;2228:88;;;2296:18;;:::i;:::-;2228:88;2336:10;2332:2;2325:22;2115:238;2072:281;;:::o;2359:129::-;2393:6;2420:20;;:::i;:::-;2410:30;;2449:33;2477:4;2469:6;2449:33;:::i;:::-;2359:129;;;:::o;2494:308::-;2556:4;2646:18;2638:6;2635:30;2632:56;;;2668:18;;:::i;:::-;2632:56;2706:29;2728:6;2706:29;:::i;:::-;2698:37;;2790:4;2784;2780:15;2772:23;;2494:308;;;:::o;2808:146::-;2905:6;2900:3;2895;2882:30;2946:1;2937:6;2932:3;2928:16;2921:27;2808:146;;;:::o;2960:425::-;3038:5;3063:66;3079:49;3121:6;3079:49;:::i;:::-;3063:66;:::i;:::-;3054:75;;3152:6;3145:5;3138:21;3190:4;3183:5;3179:16;3228:3;3219:6;3214:3;3210:16;3207:25;3204:112;;;3235:79;;:::i;:::-;3204:112;3325:54;3372:6;3367:3;3362;3325:54;:::i;:::-;3044:341;2960:425;;;;;:::o;3405:340::-;3461:5;3510:3;3503:4;3495:6;3491:17;3487:27;3477:122;;3518:79;;:::i;:::-;3477:122;3635:6;3622:20;3660:79;3735:3;3727:6;3720:4;3712:6;3708:17;3660:79;:::i;:::-;3651:88;;3467:278;3405:340;;;;:::o;3751:307::-;3812:4;3902:18;3894:6;3891:30;3888:56;;;3924:18;;:::i;:::-;3888:56;3962:29;3984:6;3962:29;:::i;:::-;3954:37;;4046:4;4040;4036:15;4028:23;;3751:307;;;:::o;4064:423::-;4141:5;4166:65;4182:48;4223:6;4182:48;:::i;:::-;4166:65;:::i;:::-;4157:74;;4254:6;4247:5;4240:21;4292:4;4285:5;4281:16;4330:3;4321:6;4316:3;4312:16;4309:25;4306:112;;;4337:79;;:::i;:::-;4306:112;4427:54;4474:6;4469:3;4464;4427:54;:::i;:::-;4147:340;4064:423;;;;;:::o;4506:338::-;4561:5;4610:3;4603:4;4595:6;4591:17;4587:27;4577:122;;4618:79;;:::i;:::-;4577:122;4735:6;4722:20;4760:78;4834:3;4826:6;4819:4;4811:6;4807:17;4760:78;:::i;:::-;4751:87;;4567:277;4506:338;;;;:::o;4850:1123::-;4955:6;4963;4971;4979;5028:3;5016:9;5007:7;5003:23;4999:33;4996:120;;;5035:79;;:::i;:::-;4996:120;5155:1;5180:53;5225:7;5216:6;5205:9;5201:22;5180:53;:::i;:::-;5170:63;;5126:117;5310:2;5299:9;5295:18;5282:32;5341:18;5333:6;5330:30;5327:117;;;5363:79;;:::i;:::-;5327:117;5468:63;5523:7;5514:6;5503:9;5499:22;5468:63;:::i;:::-;5458:73;;5253:288;5580:2;5606:53;5651:7;5642:6;5631:9;5627:22;5606:53;:::i;:::-;5596:63;;5551:118;5736:2;5725:9;5721:18;5708:32;5767:18;5759:6;5756:30;5753:117;;;5789:79;;:::i;:::-;5753:117;5894:62;5948:7;5939:6;5928:9;5924:22;5894:62;:::i;:::-;5884:72;;5679:287;4850:1123;;;;;;;:::o;5979:118::-;6066:24;6084:5;6066:24;:::i;:::-;6061:3;6054:37;5979:118;;:::o;6103:222::-;6196:4;6234:2;6223:9;6219:18;6211:26;;6247:71;6315:1;6304:9;6300:17;6291:6;6247:71;:::i;:::-;6103:222;;;;:::o;6331:90::-;6365:7;6408:5;6401:13;6394:21;6383:32;;6331:90;;;:::o;6427:109::-;6508:21;6523:5;6508:21;:::i;:::-;6503:3;6496:34;6427:109;;:::o;6542:210::-;6629:4;6667:2;6656:9;6652:18;6644:26;;6680:65;6742:1;6731:9;6727:17;6718:6;6680:65;:::i;:::-;6542:210;;;;:::o;6758:77::-;6795:7;6824:5;6813:16;;6758:77;;;:::o;6841:122::-;6914:24;6932:5;6914:24;:::i;:::-;6907:5;6904:35;6894:63;;6953:1;6950;6943:12;6894:63;6841:122;:::o;6969:139::-;7015:5;7053:6;7040:20;7031:29;;7069:33;7096:5;7069:33;:::i;:::-;6969:139;;;;:::o;7114:652::-;7191:6;7199;7248:2;7236:9;7227:7;7223:23;7219:32;7216:119;;;7254:79;;:::i;:::-;7216:119;7374:1;7399:53;7444:7;7435:6;7424:9;7420:22;7399:53;:::i;:::-;7389:63;;7345:117;7529:2;7518:9;7514:18;7501:32;7560:18;7552:6;7549:30;7546:117;;;7582:79;;:::i;:::-;7546:117;7687:62;7741:7;7732:6;7721:9;7717:22;7687:62;:::i;:::-;7677:72;;7472:287;7114:652;;;;;:::o;7772:474::-;7840:6;7848;7897:2;7885:9;7876:7;7872:23;7868:32;7865:119;;;7903:79;;:::i;:::-;7865:119;8023:1;8048:53;8093:7;8084:6;8073:9;8069:22;8048:53;:::i;:::-;8038:63;;7994:117;8150:2;8176:53;8221:7;8212:6;8201:9;8197:22;8176:53;:::i;:::-;8166:63;;8121:118;7772:474;;;;;:::o;8252:945::-;8348:6;8356;8364;8372;8421:3;8409:9;8400:7;8396:23;8392:33;8389:120;;;8428:79;;:::i;:::-;8389:120;8548:1;8573:53;8618:7;8609:6;8598:9;8594:22;8573:53;:::i;:::-;8563:63;;8519:117;8675:2;8701:53;8746:7;8737:6;8726:9;8722:22;8701:53;:::i;:::-;8691:63;;8646:118;8831:2;8820:9;8816:18;8803:32;8862:18;8854:6;8851:30;8848:117;;;8884:79;;:::i;:::-;8848:117;8989:63;9044:7;9035:6;9024:9;9020:22;8989:63;:::i;:::-;8979:73;;8774:288;9101:2;9127:53;9172:7;9163:6;9152:9;9148:22;9127:53;:::i;:::-;9117:63;;9072:118;8252:945;;;;;;;:::o;9203:118::-;9290:24;9308:5;9290:24;:::i;:::-;9285:3;9278:37;9203:118;;:::o;9327:222::-;9420:4;9458:2;9447:9;9443:18;9435:26;;9471:71;9539:1;9528:9;9524:17;9515:6;9471:71;:::i;:::-;9327:222;;;;:::o;9555:507::-;9623:6;9672:2;9660:9;9651:7;9647:23;9643:32;9640:119;;;9678:79;;:::i;:::-;9640:119;9826:1;9815:9;9811:17;9798:31;9856:18;9848:6;9845:30;9842:117;;;9878:79;;:::i;:::-;9842:117;9983:62;10037:7;10028:6;10017:9;10013:22;9983:62;:::i;:::-;9973:72;;9769:286;9555:507;;;;:::o;10068:86::-;10103:7;10143:4;10136:5;10132:16;10121:27;;10068:86;;;:::o;10160:112::-;10243:22;10259:5;10243:22;:::i;:::-;10238:3;10231:35;10160:112;;:::o;10278:434::-;10423:4;10461:2;10450:9;10446:18;10438:26;;10474:71;10542:1;10531:9;10527:17;10518:6;10474:71;:::i;:::-;10555:72;10623:2;10612:9;10608:18;10599:6;10555:72;:::i;:::-;10637:68;10701:2;10690:9;10686:18;10677:6;10637:68;:::i;:::-;10278:434;;;;;;:::o;10718:1415::-;10841:6;10849;10857;10865;10873;10881;10930:3;10918:9;10909:7;10905:23;10901:33;10898:120;;;10937:79;;:::i;:::-;10898:120;11057:1;11082:53;11127:7;11118:6;11107:9;11103:22;11082:53;:::i;:::-;11072:63;;11028:117;11184:2;11210:53;11255:7;11246:6;11235:9;11231:22;11210:53;:::i;:::-;11200:63;;11155:118;11312:2;11338:53;11383:7;11374:6;11363:9;11359:22;11338:53;:::i;:::-;11328:63;;11283:118;11468:2;11457:9;11453:18;11440:32;11499:18;11491:6;11488:30;11485:117;;;11521:79;;:::i;:::-;11485:117;11626:63;11681:7;11672:6;11661:9;11657:22;11626:63;:::i;:::-;11616:73;;11411:288;11738:3;11765:53;11810:7;11801:6;11790:9;11786:22;11765:53;:::i;:::-;11755:63;;11709:119;11895:3;11884:9;11880:19;11867:33;11927:18;11919:6;11916:30;11913:117;;;11949:79;;:::i;:::-;11913:117;12054:62;12108:7;12099:6;12088:9;12084:22;12054:62;:::i;:::-;12044:72;;11838:288;10718:1415;;;;;;;;:::o;12139:329::-;12198:6;12247:2;12235:9;12226:7;12222:23;12218:32;12215:119;;;12253:79;;:::i;:::-;12215:119;12373:1;12398:53;12443:7;12434:6;12423:9;12419:22;12398:53;:::i;:::-;12388:63;;12344:117;12139:329;;;;:::o;12474:::-;12533:6;12582:2;12570:9;12561:7;12557:23;12553:32;12550:119;;;12588:79;;:::i;:::-;12550:119;12708:1;12733:53;12778:7;12769:6;12758:9;12754:22;12733:53;:::i;:::-;12723:63;;12679:117;12474:329;;;;:::o;12809:60::-;12837:3;12858:5;12851:12;;12809:60;;;:::o;12875:142::-;12925:9;12958:53;12976:34;12985:24;13003:5;12985:24;:::i;:::-;12976:34;:::i;:::-;12958:53;:::i;:::-;12945:66;;12875:142;;;:::o;13023:126::-;13073:9;13106:37;13137:5;13106:37;:::i;:::-;13093:50;;13023:126;;;:::o;13155:140::-;13219:9;13252:37;13283:5;13252:37;:::i;:::-;13239:50;;13155:140;;;:::o;13301:159::-;13402:51;13447:5;13402:51;:::i;:::-;13397:3;13390:64;13301:159;;:::o;13466:250::-;13573:4;13611:2;13600:9;13596:18;13588:26;;13624:85;13706:1;13695:9;13691:17;13682:6;13624:85;:::i;:::-;13466:250;;;;:::o;13722:169::-;13806:11;13840:6;13835:3;13828:19;13880:4;13875:3;13871:14;13856:29;;13722:169;;;;:::o;13897:156::-;14037:8;14033:1;14025:6;14021:14;14014:32;13897:156;:::o;14059:365::-;14201:3;14222:66;14286:1;14281:3;14222:66;:::i;:::-;14215:73;;14297:93;14386:3;14297:93;:::i;:::-;14415:2;14410:3;14406:12;14399:19;;14059:365;;;:::o;14430:419::-;14596:4;14634:2;14623:9;14619:18;14611:26;;14683:9;14677:4;14673:20;14669:1;14658:9;14654:17;14647:47;14711:131;14837:4;14711:131;:::i;:::-;14703:139;;14430:419;;;:::o;14855:167::-;14995:19;14991:1;14983:6;14979:14;14972:43;14855:167;:::o;15028:366::-;15170:3;15191:67;15255:2;15250:3;15191:67;:::i;:::-;15184:74;;15267:93;15356:3;15267:93;:::i;:::-;15385:2;15380:3;15376:12;15369:19;;15028:366;;;:::o;15400:419::-;15566:4;15604:2;15593:9;15589:18;15581:26;;15653:9;15647:4;15643:20;15639:1;15628:9;15624:17;15617:47;15681:131;15807:4;15681:131;:::i;:::-;15673:139;;15400:419;;;:::o;15825:173::-;15965:25;15961:1;15953:6;15949:14;15942:49;15825:173;:::o;16004:366::-;16146:3;16167:67;16231:2;16226:3;16167:67;:::i;:::-;16160:74;;16243:93;16332:3;16243:93;:::i;:::-;16361:2;16356:3;16352:12;16345:19;;16004:366;;;:::o;16376:419::-;16542:4;16580:2;16569:9;16565:18;16557:26;;16629:9;16623:4;16619:20;16615:1;16604:9;16600:17;16593:47;16657:131;16783:4;16657:131;:::i;:::-;16649:139;;16376:419;;;:::o;16801:118::-;16888:24;16906:5;16888:24;:::i;:::-;16883:3;16876:37;16801:118;;:::o;16925:332::-;17046:4;17084:2;17073:9;17069:18;17061:26;;17097:71;17165:1;17154:9;17150:17;17141:6;17097:71;:::i;:::-;17178:72;17246:2;17235:9;17231:18;17222:6;17178:72;:::i;:::-;16925:332;;;;;:::o;17263:116::-;17333:21;17348:5;17333:21;:::i;:::-;17326:5;17323:32;17313:60;;17369:1;17366;17359:12;17313:60;17263:116;:::o;17385:137::-;17439:5;17470:6;17464:13;17455:22;;17486:30;17510:5;17486:30;:::i;:::-;17385:137;;;;:::o;17528:345::-;17595:6;17644:2;17632:9;17623:7;17619:23;17615:32;17612:119;;;17650:79;;:::i;:::-;17612:119;17770:1;17795:61;17848:7;17839:6;17828:9;17824:22;17795:61;:::i;:::-;17785:71;;17741:125;17528:345;;;;:::o;17879:442::-;18028:4;18066:2;18055:9;18051:18;18043:26;;18079:71;18147:1;18136:9;18132:17;18123:6;18079:71;:::i;:::-;18160:72;18228:2;18217:9;18213:18;18204:6;18160:72;:::i;:::-;18242;18310:2;18299:9;18295:18;18286:6;18242:72;:::i;:::-;17879:442;;;;;;:::o;18327:545::-;18500:4;18538:3;18527:9;18523:19;18515:27;;18552:71;18620:1;18609:9;18605:17;18596:6;18552:71;:::i;:::-;18633:68;18697:2;18686:9;18682:18;18673:6;18633:68;:::i;:::-;18711:72;18779:2;18768:9;18764:18;18755:6;18711:72;:::i;:::-;18793;18861:2;18850:9;18846:18;18837:6;18793:72;:::i;:::-;18327:545;;;;;;;:::o;18878:94::-;18911:8;18959:5;18955:2;18951:14;18930:35;;18878:94;;;:::o;18978:::-;19017:7;19046:20;19060:5;19046:20;:::i;:::-;19035:31;;18978:94;;;:::o;19078:100::-;19117:7;19146:26;19166:5;19146:26;:::i;:::-;19135:37;;19078:100;;;:::o;19184:157::-;19289:45;19309:24;19327:5;19309:24;:::i;:::-;19289:45;:::i;:::-;19284:3;19277:58;19184:157;;:::o;19347:79::-;19386:7;19415:5;19404:16;;19347:79;;;:::o;19432:157::-;19537:45;19557:24;19575:5;19557:24;:::i;:::-;19537:45;:::i;:::-;19532:3;19525:58;19432:157;;:::o;19595:99::-;19647:6;19681:5;19675:12;19665:22;;19595:99;;;:::o;19700:148::-;19802:11;19839:3;19824:18;;19700:148;;;;:::o;19854:246::-;19935:1;19945:113;19959:6;19956:1;19953:13;19945:113;;;20044:1;20039:3;20035:11;20029:18;20025:1;20020:3;20016:11;20009:39;19981:2;19978:1;19974:10;19969:15;;19945:113;;;20092:1;20083:6;20078:3;20074:16;20067:27;19916:184;19854:246;;;:::o;20106:390::-;20212:3;20240:39;20273:5;20240:39;:::i;:::-;20295:89;20377:6;20372:3;20295:89;:::i;:::-;20288:96;;20393:65;20451:6;20446:3;20439:4;20432:5;20428:16;20393:65;:::i;:::-;20483:6;20478:3;20474:16;20467:23;;20216:280;20106:390;;;;:::o;20502:698::-;20718:3;20733:75;20804:3;20795:6;20733:75;:::i;:::-;20833:2;20828:3;20824:12;20817:19;;20846:75;20917:3;20908:6;20846:75;:::i;:::-;20946:2;20941:3;20937:12;20930:19;;20966:95;21057:3;21048:6;20966:95;:::i;:::-;20959:102;;21071:75;21142:3;21133:6;21071:75;:::i;:::-;21171:2;21166:3;21162:12;21155:19;;21191:3;21184:10;;20502:698;;;;;;;:::o;21206:174::-;21346:26;21342:1;21334:6;21330:14;21323:50;21206:174;:::o;21386:366::-;21528:3;21549:67;21613:2;21608:3;21549:67;:::i;:::-;21542:74;;21625:93;21714:3;21625:93;:::i;:::-;21743:2;21738:3;21734:12;21727:19;;21386:366;;;:::o;21758:419::-;21924:4;21962:2;21951:9;21947:18;21939:26;;22011:9;22005:4;22001:20;21997:1;21986:9;21982:17;21975:47;22039:131;22165:4;22039:131;:::i;:::-;22031:139;;21758:419;;;:::o;22183:442::-;22332:4;22370:2;22359:9;22355:18;22347:26;;22383:71;22451:1;22440:9;22436:17;22427:6;22383:71;:::i;:::-;22464:72;22532:2;22521:9;22517:18;22508:6;22464:72;:::i;:::-;22546;22614:2;22603:9;22599:18;22590:6;22546:72;:::i;:::-;22183:442;;;;;;:::o;22631:225::-;22771:34;22767:1;22759:6;22755:14;22748:58;22840:8;22835:2;22827:6;22823:15;22816:33;22631:225;:::o;22862:366::-;23004:3;23025:67;23089:2;23084:3;23025:67;:::i;:::-;23018:74;;23101:93;23190:3;23101:93;:::i;:::-;23219:2;23214:3;23210:12;23203:19;;22862:366;;;:::o;23234:419::-;23400:4;23438:2;23427:9;23423:18;23415:26;;23487:9;23481:4;23477:20;23473:1;23462:9;23458:17;23451:47;23515:131;23641:4;23515:131;:::i;:::-;23507:139;;23234:419;;;:::o;23659:214::-;23799:66;23795:1;23787:6;23783:14;23776:90;23659:214;:::o;23879:402::-;24039:3;24060:85;24142:2;24137:3;24060:85;:::i;:::-;24053:92;;24154:93;24243:3;24154:93;:::i;:::-;24272:2;24267:3;24263:12;24256:19;;23879:402;;;:::o;24287:79::-;24326:7;24355:5;24344:16;;24287:79;;;:::o;24372:157::-;24477:45;24497:24;24515:5;24497:24;:::i;:::-;24477:45;:::i;:::-;24472:3;24465:58;24372:157;;:::o;24535:522::-;24748:3;24770:148;24914:3;24770:148;:::i;:::-;24763:155;;24928:75;24999:3;24990:6;24928:75;:::i;:::-;25028:2;25023:3;25019:12;25012:19;;25048:3;25041:10;;24535:522;;;;:::o;25063:182::-;25203:34;25199:1;25191:6;25187:14;25180:58;25063:182;:::o;25251:366::-;25393:3;25414:67;25478:2;25473:3;25414:67;:::i;:::-;25407:74;;25490:93;25579:3;25490:93;:::i;:::-;25608:2;25603:3;25599:12;25592:19;;25251:366;;;:::o;25623:419::-;25789:4;25827:2;25816:9;25812:18;25804:26;;25876:9;25870:4;25866:20;25862:1;25851:9;25847:17;25840:47;25904:131;26030:4;25904:131;:::i;:::-;25896:139;;25623:419;;;:::o
Swarm Source
ipfs://9c7fe96cdd9abfd319963f7112ed0f2279845f9fe4733bf0f380ce91fe9f55d2
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.