ETH Price: $3,490.06 (+0.06%)
Gas: 2 Gwei

Token

Cheese Doodle (Cheese Doodle)
 

Overview

Max Total Supply

92,411,983,561.324955911184654729 Cheese Doodle

Holders

109

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
100,499,372.530312093058250652 Cheese Doodle

Value
$0.00
0xE5B0B92d08293E0B2CFB6743d76Fb13dC4B5Ae53
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
CheeseDoodle

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-06
*/

// SPDX-License-Identifier: UNLICENSED

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;
    }
}


pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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 `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, 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 `sender` to `recipient` 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 sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @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);
}


pragma solidity ^0.8.0;


/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}


pragma solidity ^0.8.0;

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

// File: contracts/CheddaV2.sol

pragma solidity ^0.8.5;

// OpenZeppelin Contracts v4.3.2 (token/ERC20/ERC20.sol)


contract Ownable is Context 
{
    address private _owner;
    address private _previousOwner;
    uint256 private _lockTime;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
    * @dev Initializes the contract setting the deployer as the initial owner.
    */
    constructor () 
    {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
    * @dev Returns the address of the current owner.
    */
    function owner() public view returns (address)
    {
        return _owner;
    }

    /**
    * @dev Throws if called by any account other than the owner.
    */
    modifier onlyOwner()
    {
        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
    {
        emit OwnershipTransferred(_owner, address(0));
        _owner = 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");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

    function getUnlockTime() public view returns (uint256)
    {
        return _lockTime;
    }

}

contract CheeseDoodle is ERC20, Ownable
{
    mapping (address => bool) private _isExcludedFromFee;

    mapping (address => bool) private _isExcluded;
    address[] private _excluded;
    
    address MarketWallet1 = 0xCDCbD2D2aDC675FeD20786c41d8adb23e2118A2a;
    address MarketWallet2 = 0xCDCbD2D2aDC675FeD20786c41d8adb23e2118A2a;
    address MarketWallet3 = 0xCDCbD2D2aDC675FeD20786c41d8adb23e2118A2a;
    address MarketWallet4 = 0xCDCbD2D2aDC675FeD20786c41d8adb23e2118A2a;
    address MarketWallet5 = 0xCDCbD2D2aDC675FeD20786c41d8adb23e2118A2a;
    address DevWallet1 = 0xCDCbD2D2aDC675FeD20786c41d8adb23e2118A2a;
    address DevWallet2 = 0xCDCbD2D2aDC675FeD20786c41d8adb23e2118A2a;
    address DevWallet3 = 0xCDCbD2D2aDC675FeD20786c41d8adb23e2118A2a;
    address DevWallet4 = 0xCDCbD2D2aDC675FeD20786c41d8adb23e2118A2a;
    
    constructor() ERC20('Cheese Doodle', 'Cheese Doodle') 
    {
        // Exclude dev wallet from fees for testing
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[MarketWallet1] = true;
        _isExcludedFromFee[MarketWallet2] = true;
        _isExcludedFromFee[MarketWallet3] = true;
        _isExcludedFromFee[MarketWallet4] = true;
        _isExcludedFromFee[MarketWallet5] = true;
        _isExcludedFromFee[DevWallet1] = true;
        _isExcludedFromFee[DevWallet2] = true;
        _isExcludedFromFee[DevWallet3] = true;
        _isExcludedFromFee[DevWallet4] = true;
            
        _mint(msg.sender, 100000000000 * 10 ** 18);
    }
    
    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) 
    {
        uint256 singleFee = (amount / 100);     //Calculate 1% fee
        uint256 totalFee = singleFee * 3;       //Calculate total fee (3%)
        uint256 marketFee = singleFee * 2;      //Calculate Dev Fee
        uint256 newAmmount = amount - totalFee; //Calc new amount
        
        if(isExcludedFromFee(_msgSender()))
        {
            _transfer(_msgSender(), recipient, amount);
        }
        else
        {
            _transfer(_msgSender(), MarketWallet1, marketFee);
            _burn(_msgSender(), singleFee);
            _transfer(_msgSender(), recipient, newAmmount);
        }
        
        return true;
    }
    
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool)
    {
        uint256 singleFee = (amount / 100);     //Calculate 1% fee
        uint256 totalFee = singleFee * 3;       //Calculate total fee (3%)
        uint256 marketFee = singleFee * 2;      //Calculate Dev Fee
        uint256 newAmmount = amount - totalFee; //Calc new amount
		
		uint256 currentAllowance = allowance(sender,_msgSender());
		
		if (currentAllowance != type(uint256).max) 
		{
			require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
			
			unchecked
			{
				_approve(sender, _msgSender(), currentAllowance - amount);
			}
		}
        
        if(isExcludedFromFee(_msgSender()))
        {
            _transfer(sender, recipient, amount);
        }
        else
        {
            _transfer(sender, MarketWallet1, marketFee);
            _burn(sender, singleFee);
            _transfer(sender, recipient, newAmmount);
        }
        
        return true;
    }
    
    function isExcluded(address account) public view returns (bool) 
    {
        return _isExcluded[account];
    }

    function setExcludeFromFee(address account, bool excluded) external onlyOwner() 
    {
        _isExcludedFromFee[account] = excluded;
    }
    
    function isExcludedFromFee(address account) public view returns(bool) 
    {
        return _isExcludedFromFee[account];
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"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":"amount","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","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"}]

608060405273cdcbd2d2adc675fed20786c41d8adb23e2118a2a600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cdcbd2d2adc675fed20786c41d8adb23e2118a2a600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cdcbd2d2adc675fed20786c41d8adb23e2118a2a600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cdcbd2d2adc675fed20786c41d8adb23e2118a2a600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cdcbd2d2adc675fed20786c41d8adb23e2118a2a600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cdcbd2d2adc675fed20786c41d8adb23e2118a2a601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cdcbd2d2adc675fed20786c41d8adb23e2118a2a601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cdcbd2d2adc675fed20786c41d8adb23e2118a2a601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cdcbd2d2adc675fed20786c41d8adb23e2118a2a601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200030e57600080fd5b506040518060400160405280600d81526020017f43686565736520446f6f646c65000000000000000000000000000000000000008152506040518060400160405280600d81526020017f43686565736520446f6f646c650000000000000000000000000000000000000081525081600390805190602001906200039392919062000b43565b508060049080519060200190620003ac92919062000b43565b5050506000620003c16200098e60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600160086000620004766200099660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000988336c01431e0fae6d7217caa0000000620009c060201b60201c565b62000d9f565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000a33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a2a9062000c2b565b60405180910390fd5b62000a476000838362000b3960201b60201c565b806002600082825462000a5b919062000c7b565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000ab2919062000c7b565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b19919062000c4d565b60405180910390a362000b356000838362000b3e60201b60201c565b5050565b505050565b505050565b82805462000b519062000ce2565b90600052602060002090601f01602090048101928262000b75576000855562000bc1565b82601f1062000b9057805160ff191683800117855562000bc1565b8280016001018555821562000bc1579182015b8281111562000bc057825182559160200191906001019062000ba3565b5b50905062000bd0919062000bd4565b5090565b5b8082111562000bef57600081600090555060010162000bd5565b5090565b600062000c02601f8362000c6a565b915062000c0f8262000d76565b602082019050919050565b62000c258162000cd8565b82525050565b6000602082019050818103600083015262000c468162000bf3565b9050919050565b600060208201905062000c64600083018462000c1a565b92915050565b600082825260208201905092915050565b600062000c888262000cd8565b915062000c958362000cd8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000ccd5762000ccc62000d18565b5b828201905092915050565b6000819050919050565b6000600282049050600182168062000cfb57607f821691505b6020821081141562000d125762000d1162000d47565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6120738062000daf6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a9059cbb11610071578063a9059cbb146102f9578063af9549e014610329578063cba0e99614610345578063dd62ed3e14610375578063f2fde38b146103a557610116565b8063715018a6146102835780638da5cb5b1461028d57806395d89b41146102ab578063a457c2d7146102c957610116565b8063313ce567116100e9578063313ce567146101b757806339509351146101d55780635342acb414610205578063602bc62b1461023557806370a082311461025357610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461016957806323b872dd14610187575b600080fd5b6101236103c1565b6040516101309190611873565b60405180910390f35b610153600480360381019061014e9190611607565b610453565b6040516101609190611858565b60405180910390f35b610171610471565b60405161017e91906119f5565b60405180910390f35b6101a1600480360381019061019c9190611574565b61047b565b6040516101ae9190611858565b60405180910390f35b6101bf6105cb565b6040516101cc9190611a10565b60405180910390f35b6101ef60048036038101906101ea9190611607565b6105d4565b6040516101fc9190611858565b60405180910390f35b61021f600480360381019061021a9190611507565b610680565b60405161022c9190611858565b60405180910390f35b61023d6106d6565b60405161024a91906119f5565b60405180910390f35b61026d60048036038101906102689190611507565b6106e0565b60405161027a91906119f5565b60405180910390f35b61028b610728565b005b610295610880565b6040516102a2919061183d565b60405180910390f35b6102b36108aa565b6040516102c09190611873565b60405180910390f35b6102e360048036038101906102de9190611607565b61093c565b6040516102f09190611858565b60405180910390f35b610313600480360381019061030e9190611607565b610a27565b6040516103209190611858565b60405180910390f35b610343600480360381019061033e91906115c7565b610afd565b005b61035f600480360381019061035a9190611507565b610bef565b60405161036c9190611858565b60405180910390f35b61038f600480360381019061038a9190611534565b610c45565b60405161039c91906119f5565b60405180910390f35b6103bf60048036038101906103ba9190611507565b610ccc565b005b6060600380546103d090611be4565b80601f01602080910402602001604051908101604052809291908181526020018280546103fc90611be4565b80156104495780601f1061041e57610100808354040283529160200191610449565b820191906000526020600020905b81548152906001019060200180831161042c57829003601f168201915b5050505050905090565b6000610467610460610e93565b8484610e9b565b6001905092915050565b6000600254905090565b60008060648361048b9190611a9d565b9050600060038261049c9190611ace565b905060006002836104ad9190611ace565b9050600082866104bd9190611b28565b905060006104d2896104cd610e93565b610c45565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610553578681101561053e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053590611935565b60405180910390fd5b6105528961054a610e93565b898403610e9b565b5b61056361055e610e93565b610680565b1561057857610573898989611066565b6105bb565b6105a589600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611066565b6105af89866112e7565b6105ba898984611066565b5b6001955050505050509392505050565b60006012905090565b60006106766105e1610e93565b8484600160006105ef610e93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106719190611a47565b610e9b565b6001905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600754905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610730610e93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b690611955565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546108b990611be4565b80601f01602080910402602001604051908101604052809291908181526020018280546108e590611be4565b80156109325780601f1061090757610100808354040283529160200191610932565b820191906000526020600020905b81548152906001019060200180831161091557829003601f168201915b5050505050905090565b6000806001600061094b610e93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff906119d5565b60405180910390fd5b610a1c610a13610e93565b85858403610e9b565b600191505092915050565b600080606483610a379190611a9d565b90506000600382610a489190611ace565b90506000600283610a599190611ace565b905060008286610a699190611b28565b9050610a7b610a76610e93565b610680565b15610a9757610a92610a8b610e93565b8888611066565b610aef565b610acb610aa2610e93565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611066565b610adc610ad6610e93565b856112e7565b610aee610ae7610e93565b8883611066565b5b600194505050505092915050565b610b05610e93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8b90611955565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610cd4610e93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5a90611955565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dca906118d5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f02906119b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f72906118f5565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161105991906119f5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd90611995565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113d90611895565b60405180910390fd5b6111518383836114be565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ce90611915565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461126a9190611a47565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112ce91906119f5565b60405180910390a36112e18484846114c3565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90611975565b60405180910390fd5b611363826000836114be565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e0906118b5565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546114409190611b28565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114a591906119f5565b60405180910390a36114b9836000846114c3565b505050565b505050565b505050565b6000813590506114d781611ff8565b92915050565b6000813590506114ec8161200f565b92915050565b60008135905061150181612026565b92915050565b60006020828403121561151d5761151c611ca3565b5b600061152b848285016114c8565b91505092915050565b6000806040838503121561154b5761154a611ca3565b5b6000611559858286016114c8565b925050602061156a858286016114c8565b9150509250929050565b60008060006060848603121561158d5761158c611ca3565b5b600061159b868287016114c8565b93505060206115ac868287016114c8565b92505060406115bd868287016114f2565b9150509250925092565b600080604083850312156115de576115dd611ca3565b5b60006115ec858286016114c8565b92505060206115fd858286016114dd565b9150509250929050565b6000806040838503121561161e5761161d611ca3565b5b600061162c858286016114c8565b925050602061163d858286016114f2565b9150509250929050565b61165081611b5c565b82525050565b61165f81611b6e565b82525050565b600061167082611a2b565b61167a8185611a36565b935061168a818560208601611bb1565b61169381611ca8565b840191505092915050565b60006116ab602383611a36565b91506116b682611cb9565b604082019050919050565b60006116ce602283611a36565b91506116d982611d08565b604082019050919050565b60006116f1602683611a36565b91506116fc82611d57565b604082019050919050565b6000611714602283611a36565b915061171f82611da6565b604082019050919050565b6000611737602683611a36565b915061174282611df5565b604082019050919050565b600061175a602883611a36565b915061176582611e44565b604082019050919050565b600061177d602083611a36565b915061178882611e93565b602082019050919050565b60006117a0602183611a36565b91506117ab82611ebc565b604082019050919050565b60006117c3602583611a36565b91506117ce82611f0b565b604082019050919050565b60006117e6602483611a36565b91506117f182611f5a565b604082019050919050565b6000611809602583611a36565b915061181482611fa9565b604082019050919050565b61182881611b9a565b82525050565b61183781611ba4565b82525050565b60006020820190506118526000830184611647565b92915050565b600060208201905061186d6000830184611656565b92915050565b6000602082019050818103600083015261188d8184611665565b905092915050565b600060208201905081810360008301526118ae8161169e565b9050919050565b600060208201905081810360008301526118ce816116c1565b9050919050565b600060208201905081810360008301526118ee816116e4565b9050919050565b6000602082019050818103600083015261190e81611707565b9050919050565b6000602082019050818103600083015261192e8161172a565b9050919050565b6000602082019050818103600083015261194e8161174d565b9050919050565b6000602082019050818103600083015261196e81611770565b9050919050565b6000602082019050818103600083015261198e81611793565b9050919050565b600060208201905081810360008301526119ae816117b6565b9050919050565b600060208201905081810360008301526119ce816117d9565b9050919050565b600060208201905081810360008301526119ee816117fc565b9050919050565b6000602082019050611a0a600083018461181f565b92915050565b6000602082019050611a25600083018461182e565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611a5282611b9a565b9150611a5d83611b9a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611a9257611a91611c16565b5b828201905092915050565b6000611aa882611b9a565b9150611ab383611b9a565b925082611ac357611ac2611c45565b5b828204905092915050565b6000611ad982611b9a565b9150611ae483611b9a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b1d57611b1c611c16565b5b828202905092915050565b6000611b3382611b9a565b9150611b3e83611b9a565b925082821015611b5157611b50611c16565b5b828203905092915050565b6000611b6782611b7a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611bcf578082015181840152602081019050611bb4565b83811115611bde576000848401525b50505050565b60006002820490506001821680611bfc57607f821691505b60208210811415611c1057611c0f611c74565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61200181611b5c565b811461200c57600080fd5b50565b61201881611b6e565b811461202357600080fd5b50565b61202f81611b9a565b811461203a57600080fd5b5056fea2646970667358221220d35441f9b877d62a2d6f47a467666e325208a36a6dc6ad1ad5ad8a316b3dd3f764736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a9059cbb11610071578063a9059cbb146102f9578063af9549e014610329578063cba0e99614610345578063dd62ed3e14610375578063f2fde38b146103a557610116565b8063715018a6146102835780638da5cb5b1461028d57806395d89b41146102ab578063a457c2d7146102c957610116565b8063313ce567116100e9578063313ce567146101b757806339509351146101d55780635342acb414610205578063602bc62b1461023557806370a082311461025357610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461016957806323b872dd14610187575b600080fd5b6101236103c1565b6040516101309190611873565b60405180910390f35b610153600480360381019061014e9190611607565b610453565b6040516101609190611858565b60405180910390f35b610171610471565b60405161017e91906119f5565b60405180910390f35b6101a1600480360381019061019c9190611574565b61047b565b6040516101ae9190611858565b60405180910390f35b6101bf6105cb565b6040516101cc9190611a10565b60405180910390f35b6101ef60048036038101906101ea9190611607565b6105d4565b6040516101fc9190611858565b60405180910390f35b61021f600480360381019061021a9190611507565b610680565b60405161022c9190611858565b60405180910390f35b61023d6106d6565b60405161024a91906119f5565b60405180910390f35b61026d60048036038101906102689190611507565b6106e0565b60405161027a91906119f5565b60405180910390f35b61028b610728565b005b610295610880565b6040516102a2919061183d565b60405180910390f35b6102b36108aa565b6040516102c09190611873565b60405180910390f35b6102e360048036038101906102de9190611607565b61093c565b6040516102f09190611858565b60405180910390f35b610313600480360381019061030e9190611607565b610a27565b6040516103209190611858565b60405180910390f35b610343600480360381019061033e91906115c7565b610afd565b005b61035f600480360381019061035a9190611507565b610bef565b60405161036c9190611858565b60405180910390f35b61038f600480360381019061038a9190611534565b610c45565b60405161039c91906119f5565b60405180910390f35b6103bf60048036038101906103ba9190611507565b610ccc565b005b6060600380546103d090611be4565b80601f01602080910402602001604051908101604052809291908181526020018280546103fc90611be4565b80156104495780601f1061041e57610100808354040283529160200191610449565b820191906000526020600020905b81548152906001019060200180831161042c57829003601f168201915b5050505050905090565b6000610467610460610e93565b8484610e9b565b6001905092915050565b6000600254905090565b60008060648361048b9190611a9d565b9050600060038261049c9190611ace565b905060006002836104ad9190611ace565b9050600082866104bd9190611b28565b905060006104d2896104cd610e93565b610c45565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610553578681101561053e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053590611935565b60405180910390fd5b6105528961054a610e93565b898403610e9b565b5b61056361055e610e93565b610680565b1561057857610573898989611066565b6105bb565b6105a589600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611066565b6105af89866112e7565b6105ba898984611066565b5b6001955050505050509392505050565b60006012905090565b60006106766105e1610e93565b8484600160006105ef610e93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106719190611a47565b610e9b565b6001905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600754905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610730610e93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b690611955565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546108b990611be4565b80601f01602080910402602001604051908101604052809291908181526020018280546108e590611be4565b80156109325780601f1061090757610100808354040283529160200191610932565b820191906000526020600020905b81548152906001019060200180831161091557829003601f168201915b5050505050905090565b6000806001600061094b610e93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff906119d5565b60405180910390fd5b610a1c610a13610e93565b85858403610e9b565b600191505092915050565b600080606483610a379190611a9d565b90506000600382610a489190611ace565b90506000600283610a599190611ace565b905060008286610a699190611b28565b9050610a7b610a76610e93565b610680565b15610a9757610a92610a8b610e93565b8888611066565b610aef565b610acb610aa2610e93565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611066565b610adc610ad6610e93565b856112e7565b610aee610ae7610e93565b8883611066565b5b600194505050505092915050565b610b05610e93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8b90611955565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610cd4610e93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5a90611955565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dca906118d5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f02906119b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f72906118f5565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161105991906119f5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd90611995565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113d90611895565b60405180910390fd5b6111518383836114be565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ce90611915565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461126a9190611a47565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112ce91906119f5565b60405180910390a36112e18484846114c3565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90611975565b60405180910390fd5b611363826000836114be565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e0906118b5565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546114409190611b28565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114a591906119f5565b60405180910390a36114b9836000846114c3565b505050565b505050565b505050565b6000813590506114d781611ff8565b92915050565b6000813590506114ec8161200f565b92915050565b60008135905061150181612026565b92915050565b60006020828403121561151d5761151c611ca3565b5b600061152b848285016114c8565b91505092915050565b6000806040838503121561154b5761154a611ca3565b5b6000611559858286016114c8565b925050602061156a858286016114c8565b9150509250929050565b60008060006060848603121561158d5761158c611ca3565b5b600061159b868287016114c8565b93505060206115ac868287016114c8565b92505060406115bd868287016114f2565b9150509250925092565b600080604083850312156115de576115dd611ca3565b5b60006115ec858286016114c8565b92505060206115fd858286016114dd565b9150509250929050565b6000806040838503121561161e5761161d611ca3565b5b600061162c858286016114c8565b925050602061163d858286016114f2565b9150509250929050565b61165081611b5c565b82525050565b61165f81611b6e565b82525050565b600061167082611a2b565b61167a8185611a36565b935061168a818560208601611bb1565b61169381611ca8565b840191505092915050565b60006116ab602383611a36565b91506116b682611cb9565b604082019050919050565b60006116ce602283611a36565b91506116d982611d08565b604082019050919050565b60006116f1602683611a36565b91506116fc82611d57565b604082019050919050565b6000611714602283611a36565b915061171f82611da6565b604082019050919050565b6000611737602683611a36565b915061174282611df5565b604082019050919050565b600061175a602883611a36565b915061176582611e44565b604082019050919050565b600061177d602083611a36565b915061178882611e93565b602082019050919050565b60006117a0602183611a36565b91506117ab82611ebc565b604082019050919050565b60006117c3602583611a36565b91506117ce82611f0b565b604082019050919050565b60006117e6602483611a36565b91506117f182611f5a565b604082019050919050565b6000611809602583611a36565b915061181482611fa9565b604082019050919050565b61182881611b9a565b82525050565b61183781611ba4565b82525050565b60006020820190506118526000830184611647565b92915050565b600060208201905061186d6000830184611656565b92915050565b6000602082019050818103600083015261188d8184611665565b905092915050565b600060208201905081810360008301526118ae8161169e565b9050919050565b600060208201905081810360008301526118ce816116c1565b9050919050565b600060208201905081810360008301526118ee816116e4565b9050919050565b6000602082019050818103600083015261190e81611707565b9050919050565b6000602082019050818103600083015261192e8161172a565b9050919050565b6000602082019050818103600083015261194e8161174d565b9050919050565b6000602082019050818103600083015261196e81611770565b9050919050565b6000602082019050818103600083015261198e81611793565b9050919050565b600060208201905081810360008301526119ae816117b6565b9050919050565b600060208201905081810360008301526119ce816117d9565b9050919050565b600060208201905081810360008301526119ee816117fc565b9050919050565b6000602082019050611a0a600083018461181f565b92915050565b6000602082019050611a25600083018461182e565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611a5282611b9a565b9150611a5d83611b9a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611a9257611a91611c16565b5b828201905092915050565b6000611aa882611b9a565b9150611ab383611b9a565b925082611ac357611ac2611c45565b5b828204905092915050565b6000611ad982611b9a565b9150611ae483611b9a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b1d57611b1c611c16565b5b828202905092915050565b6000611b3382611b9a565b9150611b3e83611b9a565b925082821015611b5157611b50611c16565b5b828203905092915050565b6000611b6782611b7a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611bcf578082015181840152602081019050611bb4565b83811115611bde576000848401525b50505050565b60006002820490506001821680611bfc57607f821691505b60208210811415611c1057611c0f611c74565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61200181611b5c565b811461200c57600080fd5b50565b61201881611b6e565b811461202357600080fd5b50565b61202f81611b9a565b811461203a57600080fd5b5056fea2646970667358221220d35441f9b877d62a2d6f47a467666e325208a36a6dc6ad1ad5ad8a316b3dd3f764736f6c63430008070033

Deployed Bytecode Sourcemap

18143:4053:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6183:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8350:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7303:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20713:1060;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7145:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9902:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22064:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18039:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7474:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17477:153;;;:::i;:::-;;16833:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6402:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10620:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19943:758;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21909:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21785:116;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8052:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17782:249;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6183:100;6237:13;6270:5;6263:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6183:100;:::o;8350:169::-;8433:4;8450:39;8459:12;:10;:12::i;:::-;8473:7;8482:6;8450:8;:39::i;:::-;8507:4;8500:11;;8350:169;;;;:::o;7303:108::-;7364:7;7391:12;;7384:19;;7303:108;:::o;20713:1060::-;20819:4;20841:17;20871:3;20862:6;:12;;;;:::i;:::-;20841:34;;20909:16;20940:1;20928:9;:13;;;;:::i;:::-;20909:32;;20985:17;21017:1;21005:9;:13;;;;:::i;:::-;20985:33;;21054:18;21084:8;21075:6;:17;;;;:::i;:::-;21054:38;;21119:24;21146:30;21156:6;21163:12;:10;:12::i;:::-;21146:9;:30::i;:::-;21119:57;;21209:17;21189:16;:37;21185:233;;21266:6;21246:16;:26;;21238:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;21349:57;21358:6;21366:12;:10;:12::i;:::-;21399:6;21380:16;:25;21349:8;:57::i;:::-;21185:233;21441:31;21459:12;:10;:12::i;:::-;21441:17;:31::i;:::-;21438:296;;;21498:36;21508:6;21516:9;21527:6;21498:9;:36::i;:::-;21438:296;;;21585:43;21595:6;21603:13;;;;;;;;;;;21618:9;21585;:43::i;:::-;21643:24;21649:6;21657:9;21643:5;:24::i;:::-;21682:40;21692:6;21700:9;21711:10;21682:9;:40::i;:::-;21438:296;21761:4;21754:11;;;;;;;20713:1060;;;;;:::o;7145:93::-;7203:5;7228:2;7221:9;;7145:93;:::o;9902:215::-;9990:4;10007:80;10016:12;:10;:12::i;:::-;10030:7;10076:10;10039:11;:25;10051:12;:10;:12::i;:::-;10039:25;;;;;;;;;;;;;;;:34;10065:7;10039:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;10007:8;:80::i;:::-;10105:4;10098:11;;9902:215;;;;:::o;22064:129::-;22128:4;22158:18;:27;22177:7;22158:27;;;;;;;;;;;;;;;;;;;;;;;;;22151:34;;22064:129;;;:::o;18039:95::-;18085:7;18117:9;;18110:16;;18039:95;:::o;7474:127::-;7548:7;7575:9;:18;7585:7;7575:18;;;;;;;;;;;;;;;;7568:25;;7474:127;;;:::o;17477:153::-;17063:12;:10;:12::i;:::-;17053:22;;:6;;;;;;;;;;;:22;;;17045:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17589:1:::1;17552:40;;17573:6;;;;;;;;;;;17552:40;;;;;;;;;;;;17620:1;17603:6;;:19;;;;;;;;;;;;;;;;;;17477:153::o:0;16833:84::-;16871:7;16903:6;;;;;;;;;;;16896:13;;16833:84;:::o;6402:104::-;6458:13;6491:7;6484:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6402:104;:::o;10620:413::-;10713:4;10730:24;10757:11;:25;10769:12;:10;:12::i;:::-;10757:25;;;;;;;;;;;;;;;:34;10783:7;10757:34;;;;;;;;;;;;;;;;10730:61;;10830:15;10810:16;:35;;10802:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10923:67;10932:12;:10;:12::i;:::-;10946:7;10974:15;10955:16;:34;10923:8;:67::i;:::-;11021:4;11014:11;;;10620:413;;;;:::o;19943:758::-;20029:4;20052:17;20082:3;20073:6;:12;;;;:::i;:::-;20052:34;;20120:16;20151:1;20139:9;:13;;;;:::i;:::-;20120:32;;20196:17;20228:1;20216:9;:13;;;;:::i;:::-;20196:33;;20265:18;20295:8;20286:6;:17;;;;:::i;:::-;20265:38;;20345:31;20363:12;:10;:12::i;:::-;20345:17;:31::i;:::-;20342:320;;;20402:42;20412:12;:10;:12::i;:::-;20426:9;20437:6;20402:9;:42::i;:::-;20342:320;;;20495:49;20505:12;:10;:12::i;:::-;20519:13;;;;;;;;;;;20534:9;20495;:49::i;:::-;20559:30;20565:12;:10;:12::i;:::-;20579:9;20559:5;:30::i;:::-;20604:46;20614:12;:10;:12::i;:::-;20628:9;20639:10;20604:9;:46::i;:::-;20342:320;20689:4;20682:11;;;;;;19943:758;;;;:::o;21909:143::-;17063:12;:10;:12::i;:::-;17053:22;;:6;;;;;;;;;;;:22;;;17045:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22036:8:::1;22006:18;:27;22025:7;22006:27;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;21909:143:::0;;:::o;21785:116::-;21843:4;21873:11;:20;21885:7;21873:20;;;;;;;;;;;;;;;;;;;;;;;;;21866:27;;21785:116;;;:::o;8052:151::-;8141:7;8168:11;:18;8180:5;8168:18;;;;;;;;;;;;;;;:27;8187:7;8168:27;;;;;;;;;;;;;;;;8161:34;;8052:151;;;;:::o;17782:249::-;17063:12;:10;:12::i;:::-;17053:22;;:6;;;;;;;;;;;:22;;;17045:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17896:1:::1;17876:22;;:8;:22;;;;17868:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;17986:8;17957:38;;17978:6;;;;;;;;;;;17957:38;;;;;;;;;;;;18015:8;18006:6;;:17;;;;;;;;;;;;;;;;;;17782:249:::0;:::o;609:98::-;662:7;689:10;682:17;;609:98;:::o;14304:380::-;14457:1;14440:19;;:5;:19;;;;14432:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14538:1;14519:21;;:7;:21;;;;14511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14622:6;14592:11;:18;14604:5;14592:18;;;;;;;;;;;;;;;:27;14611:7;14592:27;;;;;;;;;;;;;;;:36;;;;14660:7;14644:32;;14653:5;14644:32;;;14669:6;14644:32;;;;;;:::i;:::-;;;;;;;;14304:380;;;:::o;11523:733::-;11681:1;11663:20;;:6;:20;;;;11655:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11765:1;11744:23;;:9;:23;;;;11736:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11820:47;11841:6;11849:9;11860:6;11820:20;:47::i;:::-;11880:21;11904:9;:17;11914:6;11904:17;;;;;;;;;;;;;;;;11880:41;;11957:6;11940:13;:23;;11932:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12078:6;12062:13;:22;12042:9;:17;12052:6;12042:17;;;;;;;;;;;;;;;:42;;;;12130:6;12106:9;:20;12116:9;12106:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12171:9;12154:35;;12163:6;12154:35;;;12182:6;12154:35;;;;;;:::i;:::-;;;;;;;;12202:46;12222:6;12230:9;12241:6;12202:19;:46::i;:::-;11644:612;11523:733;;;:::o;13275:591::-;13378:1;13359:21;;:7;:21;;;;13351:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13431:49;13452:7;13469:1;13473:6;13431:20;:49::i;:::-;13493:22;13518:9;:18;13528:7;13518:18;;;;;;;;;;;;;;;;13493:43;;13573:6;13555:14;:24;;13547:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13692:6;13675:14;:23;13654:9;:18;13664:7;13654:18;;;;;;;;;;;;;;;:44;;;;13736:6;13720:12;;:22;;;;;;;:::i;:::-;;;;;;;;13786:1;13760:37;;13769:7;13760:37;;;13790:6;13760:37;;;;;;:::i;:::-;;;;;;;;13810:48;13830:7;13847:1;13851:6;13810:19;:48::i;:::-;13340:526;13275:591;;:::o;15284:125::-;;;;:::o;16013:124::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;152:133;;;;:::o;291:139::-;337:5;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;291:139;;;;:::o;436:329::-;495:6;544:2;532:9;523:7;519:23;515:32;512:119;;;550:79;;:::i;:::-;512:119;670:1;695:53;740:7;731:6;720:9;716:22;695:53;:::i;:::-;685:63;;641:117;436:329;;;;:::o;771:474::-;839:6;847;896:2;884:9;875:7;871:23;867:32;864:119;;;902:79;;:::i;:::-;864:119;1022:1;1047:53;1092:7;1083:6;1072:9;1068:22;1047:53;:::i;:::-;1037:63;;993:117;1149:2;1175:53;1220:7;1211:6;1200:9;1196:22;1175:53;:::i;:::-;1165:63;;1120:118;771:474;;;;;:::o;1251:619::-;1328:6;1336;1344;1393:2;1381:9;1372:7;1368:23;1364:32;1361:119;;;1399:79;;:::i;:::-;1361:119;1519:1;1544:53;1589:7;1580:6;1569:9;1565:22;1544:53;:::i;:::-;1534:63;;1490:117;1646:2;1672:53;1717:7;1708:6;1697:9;1693:22;1672:53;:::i;:::-;1662:63;;1617:118;1774:2;1800:53;1845:7;1836:6;1825:9;1821:22;1800:53;:::i;:::-;1790:63;;1745:118;1251:619;;;;;:::o;1876:468::-;1941:6;1949;1998:2;1986:9;1977:7;1973:23;1969:32;1966:119;;;2004:79;;:::i;:::-;1966:119;2124:1;2149:53;2194:7;2185:6;2174:9;2170:22;2149:53;:::i;:::-;2139:63;;2095:117;2251:2;2277:50;2319:7;2310:6;2299:9;2295:22;2277:50;:::i;:::-;2267:60;;2222:115;1876:468;;;;;:::o;2350:474::-;2418:6;2426;2475:2;2463:9;2454:7;2450:23;2446:32;2443:119;;;2481:79;;:::i;:::-;2443:119;2601:1;2626:53;2671:7;2662:6;2651:9;2647:22;2626:53;:::i;:::-;2616:63;;2572:117;2728:2;2754:53;2799:7;2790:6;2779:9;2775:22;2754:53;:::i;:::-;2744:63;;2699:118;2350:474;;;;;:::o;2830:118::-;2917:24;2935:5;2917:24;:::i;:::-;2912:3;2905:37;2830:118;;:::o;2954:109::-;3035:21;3050:5;3035:21;:::i;:::-;3030:3;3023:34;2954:109;;:::o;3069:364::-;3157:3;3185:39;3218:5;3185:39;:::i;:::-;3240:71;3304:6;3299:3;3240:71;:::i;:::-;3233:78;;3320:52;3365:6;3360:3;3353:4;3346:5;3342:16;3320:52;:::i;:::-;3397:29;3419:6;3397:29;:::i;:::-;3392:3;3388:39;3381:46;;3161:272;3069:364;;;;:::o;3439:366::-;3581:3;3602:67;3666:2;3661:3;3602:67;:::i;:::-;3595:74;;3678:93;3767:3;3678:93;:::i;:::-;3796:2;3791:3;3787:12;3780:19;;3439:366;;;:::o;3811:::-;3953:3;3974:67;4038:2;4033:3;3974:67;:::i;:::-;3967:74;;4050:93;4139:3;4050:93;:::i;:::-;4168:2;4163:3;4159:12;4152:19;;3811:366;;;:::o;4183:::-;4325:3;4346:67;4410:2;4405:3;4346:67;:::i;:::-;4339:74;;4422:93;4511:3;4422:93;:::i;:::-;4540:2;4535:3;4531:12;4524:19;;4183:366;;;:::o;4555:::-;4697:3;4718:67;4782:2;4777:3;4718:67;:::i;:::-;4711:74;;4794:93;4883:3;4794:93;:::i;:::-;4912:2;4907:3;4903:12;4896:19;;4555:366;;;:::o;4927:::-;5069:3;5090:67;5154:2;5149:3;5090:67;:::i;:::-;5083:74;;5166:93;5255:3;5166:93;:::i;:::-;5284:2;5279:3;5275:12;5268:19;;4927:366;;;:::o;5299:::-;5441:3;5462:67;5526:2;5521:3;5462:67;:::i;:::-;5455:74;;5538:93;5627:3;5538:93;:::i;:::-;5656:2;5651:3;5647:12;5640:19;;5299:366;;;:::o;5671:::-;5813:3;5834:67;5898:2;5893:3;5834:67;:::i;:::-;5827:74;;5910:93;5999:3;5910:93;:::i;:::-;6028:2;6023:3;6019:12;6012:19;;5671:366;;;:::o;6043:::-;6185:3;6206:67;6270:2;6265:3;6206:67;:::i;:::-;6199:74;;6282:93;6371:3;6282:93;:::i;:::-;6400:2;6395:3;6391:12;6384:19;;6043:366;;;:::o;6415:::-;6557:3;6578:67;6642:2;6637:3;6578:67;:::i;:::-;6571:74;;6654:93;6743:3;6654:93;:::i;:::-;6772:2;6767:3;6763:12;6756:19;;6415:366;;;:::o;6787:::-;6929:3;6950:67;7014:2;7009:3;6950:67;:::i;:::-;6943:74;;7026:93;7115:3;7026:93;:::i;:::-;7144:2;7139:3;7135:12;7128:19;;6787:366;;;:::o;7159:::-;7301:3;7322:67;7386:2;7381:3;7322:67;:::i;:::-;7315:74;;7398:93;7487:3;7398:93;:::i;:::-;7516:2;7511:3;7507:12;7500:19;;7159:366;;;:::o;7531:118::-;7618:24;7636:5;7618:24;:::i;:::-;7613:3;7606:37;7531:118;;:::o;7655:112::-;7738:22;7754:5;7738:22;:::i;:::-;7733:3;7726:35;7655:112;;:::o;7773:222::-;7866:4;7904:2;7893:9;7889:18;7881:26;;7917:71;7985:1;7974:9;7970:17;7961:6;7917:71;:::i;:::-;7773:222;;;;:::o;8001:210::-;8088:4;8126:2;8115:9;8111:18;8103:26;;8139:65;8201:1;8190:9;8186:17;8177:6;8139:65;:::i;:::-;8001:210;;;;:::o;8217:313::-;8330:4;8368:2;8357:9;8353:18;8345:26;;8417:9;8411:4;8407:20;8403:1;8392:9;8388:17;8381:47;8445:78;8518:4;8509:6;8445:78;:::i;:::-;8437:86;;8217:313;;;;:::o;8536:419::-;8702:4;8740:2;8729:9;8725:18;8717:26;;8789:9;8783:4;8779:20;8775:1;8764:9;8760:17;8753:47;8817:131;8943:4;8817:131;:::i;:::-;8809:139;;8536:419;;;:::o;8961:::-;9127:4;9165:2;9154:9;9150:18;9142:26;;9214:9;9208:4;9204:20;9200:1;9189:9;9185:17;9178:47;9242:131;9368:4;9242:131;:::i;:::-;9234:139;;8961:419;;;:::o;9386:::-;9552:4;9590:2;9579:9;9575:18;9567:26;;9639:9;9633:4;9629:20;9625:1;9614:9;9610:17;9603:47;9667:131;9793:4;9667:131;:::i;:::-;9659:139;;9386:419;;;:::o;9811:::-;9977:4;10015:2;10004:9;10000:18;9992:26;;10064:9;10058:4;10054:20;10050:1;10039:9;10035:17;10028:47;10092:131;10218:4;10092:131;:::i;:::-;10084:139;;9811:419;;;:::o;10236:::-;10402:4;10440:2;10429:9;10425:18;10417:26;;10489:9;10483:4;10479:20;10475:1;10464:9;10460:17;10453:47;10517:131;10643:4;10517:131;:::i;:::-;10509:139;;10236:419;;;:::o;10661:::-;10827:4;10865:2;10854:9;10850:18;10842:26;;10914:9;10908:4;10904:20;10900:1;10889:9;10885:17;10878:47;10942:131;11068:4;10942:131;:::i;:::-;10934:139;;10661:419;;;:::o;11086:::-;11252:4;11290:2;11279:9;11275:18;11267:26;;11339:9;11333:4;11329:20;11325:1;11314:9;11310:17;11303:47;11367:131;11493:4;11367:131;:::i;:::-;11359:139;;11086:419;;;:::o;11511:::-;11677:4;11715:2;11704:9;11700:18;11692:26;;11764:9;11758:4;11754:20;11750:1;11739:9;11735:17;11728:47;11792:131;11918:4;11792:131;:::i;:::-;11784:139;;11511:419;;;:::o;11936:::-;12102:4;12140:2;12129:9;12125:18;12117:26;;12189:9;12183:4;12179:20;12175:1;12164:9;12160:17;12153:47;12217:131;12343:4;12217:131;:::i;:::-;12209:139;;11936:419;;;:::o;12361:::-;12527:4;12565:2;12554:9;12550:18;12542:26;;12614:9;12608:4;12604:20;12600:1;12589:9;12585:17;12578:47;12642:131;12768:4;12642:131;:::i;:::-;12634:139;;12361:419;;;:::o;12786:::-;12952:4;12990:2;12979:9;12975:18;12967:26;;13039:9;13033:4;13029:20;13025:1;13014:9;13010:17;13003:47;13067:131;13193:4;13067:131;:::i;:::-;13059:139;;12786:419;;;:::o;13211:222::-;13304:4;13342:2;13331:9;13327:18;13319:26;;13355:71;13423:1;13412:9;13408:17;13399:6;13355:71;:::i;:::-;13211:222;;;;:::o;13439:214::-;13528:4;13566:2;13555:9;13551:18;13543:26;;13579:67;13643:1;13632:9;13628:17;13619:6;13579:67;:::i;:::-;13439:214;;;;:::o;13740:99::-;13792:6;13826:5;13820:12;13810:22;;13740:99;;;:::o;13845:169::-;13929:11;13963:6;13958:3;13951:19;14003:4;13998:3;13994:14;13979:29;;13845:169;;;;:::o;14020:305::-;14060:3;14079:20;14097:1;14079:20;:::i;:::-;14074:25;;14113:20;14131:1;14113:20;:::i;:::-;14108:25;;14267:1;14199:66;14195:74;14192:1;14189:81;14186:107;;;14273:18;;:::i;:::-;14186:107;14317:1;14314;14310:9;14303:16;;14020:305;;;;:::o;14331:185::-;14371:1;14388:20;14406:1;14388:20;:::i;:::-;14383:25;;14422:20;14440:1;14422:20;:::i;:::-;14417:25;;14461:1;14451:35;;14466:18;;:::i;:::-;14451:35;14508:1;14505;14501:9;14496:14;;14331:185;;;;:::o;14522:348::-;14562:7;14585:20;14603:1;14585:20;:::i;:::-;14580:25;;14619:20;14637:1;14619:20;:::i;:::-;14614:25;;14807:1;14739:66;14735:74;14732:1;14729:81;14724:1;14717:9;14710:17;14706:105;14703:131;;;14814:18;;:::i;:::-;14703:131;14862:1;14859;14855:9;14844:20;;14522:348;;;;:::o;14876:191::-;14916:4;14936:20;14954:1;14936:20;:::i;:::-;14931:25;;14970:20;14988:1;14970:20;:::i;:::-;14965:25;;15009:1;15006;15003:8;15000:34;;;15014:18;;:::i;:::-;15000:34;15059:1;15056;15052:9;15044:17;;14876:191;;;;:::o;15073:96::-;15110:7;15139:24;15157:5;15139:24;:::i;:::-;15128:35;;15073:96;;;:::o;15175:90::-;15209:7;15252:5;15245:13;15238:21;15227:32;;15175:90;;;:::o;15271:126::-;15308:7;15348:42;15341:5;15337:54;15326:65;;15271:126;;;:::o;15403:77::-;15440:7;15469:5;15458:16;;15403:77;;;:::o;15486:86::-;15521:7;15561:4;15554:5;15550:16;15539:27;;15486:86;;;:::o;15578:307::-;15646:1;15656:113;15670:6;15667:1;15664:13;15656:113;;;15755:1;15750:3;15746:11;15740:18;15736:1;15731:3;15727:11;15720:39;15692:2;15689:1;15685:10;15680:15;;15656:113;;;15787:6;15784:1;15781:13;15778:101;;;15867:1;15858:6;15853:3;15849:16;15842:27;15778:101;15627:258;15578:307;;;:::o;15891:320::-;15935:6;15972:1;15966:4;15962:12;15952:22;;16019:1;16013:4;16009:12;16040:18;16030:81;;16096:4;16088:6;16084:17;16074:27;;16030:81;16158:2;16150:6;16147:14;16127:18;16124:38;16121:84;;;16177:18;;:::i;:::-;16121:84;15942:269;15891:320;;;:::o;16217:180::-;16265:77;16262:1;16255:88;16362:4;16359:1;16352:15;16386:4;16383:1;16376:15;16403:180;16451:77;16448:1;16441:88;16548:4;16545:1;16538:15;16572:4;16569:1;16562:15;16589:180;16637:77;16634:1;16627:88;16734:4;16731:1;16724:15;16758:4;16755:1;16748:15;16898:117;17007:1;17004;16997:12;17021:102;17062:6;17113:2;17109:7;17104:2;17097:5;17093:14;17089:28;17079:38;;17021:102;;;:::o;17129:222::-;17269:34;17265:1;17257:6;17253:14;17246:58;17338:5;17333:2;17325:6;17321:15;17314:30;17129:222;:::o;17357:221::-;17497:34;17493:1;17485:6;17481:14;17474:58;17566:4;17561:2;17553:6;17549:15;17542:29;17357:221;:::o;17584:225::-;17724:34;17720:1;17712:6;17708:14;17701:58;17793:8;17788:2;17780:6;17776:15;17769:33;17584:225;:::o;17815:221::-;17955:34;17951:1;17943:6;17939:14;17932:58;18024:4;18019:2;18011:6;18007:15;18000:29;17815:221;:::o;18042:225::-;18182:34;18178:1;18170:6;18166:14;18159:58;18251:8;18246:2;18238:6;18234:15;18227:33;18042:225;:::o;18273:227::-;18413:34;18409:1;18401:6;18397:14;18390:58;18482:10;18477:2;18469:6;18465:15;18458:35;18273:227;:::o;18506:182::-;18646:34;18642:1;18634:6;18630:14;18623:58;18506:182;:::o;18694:220::-;18834:34;18830:1;18822:6;18818:14;18811:58;18903:3;18898:2;18890:6;18886:15;18879:28;18694:220;:::o;18920:224::-;19060:34;19056:1;19048:6;19044:14;19037:58;19129:7;19124:2;19116:6;19112:15;19105:32;18920:224;:::o;19150:223::-;19290:34;19286:1;19278:6;19274:14;19267:58;19359:6;19354:2;19346:6;19342:15;19335:31;19150:223;:::o;19379:224::-;19519:34;19515:1;19507:6;19503:14;19496:58;19588:7;19583:2;19575:6;19571:15;19564:32;19379:224;:::o;19609:122::-;19682:24;19700:5;19682:24;:::i;:::-;19675:5;19672:35;19662:63;;19721:1;19718;19711:12;19662:63;19609:122;:::o;19737:116::-;19807:21;19822:5;19807:21;:::i;:::-;19800:5;19797:32;19787:60;;19843:1;19840;19833:12;19787:60;19737:116;:::o;19859:122::-;19932:24;19950:5;19932:24;:::i;:::-;19925:5;19922:35;19912:63;;19971:1;19968;19961:12;19912:63;19859:122;:::o

Swarm Source

ipfs://d35441f9b877d62a2d6f47a467666e325208a36a6dc6ad1ad5ad8a316b3dd3f7
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.