ETH Price: $3,275.23 (+0.91%)
Gas: 1 Gwei

Token

Static (STC)
 

Overview

Max Total Supply

930.448692129629629575 STC

Holders

50

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1.041249999999999999 STC

Value
$0.00
0x622Ff61c8EEe4cDc46B814D31903fe34C09abfbF
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:
Static

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-08
*/

/*
          _____                _____                    _____                _____                    _____                    _____          
         /\    \              /\    \                  /\    \              /\    \                  /\    \                  /\    \         
        /::\    \            /::\    \                /::\    \            /::\    \                /::\    \                /::\    \        
       /::::\    \           \:::\    \              /::::\    \           \:::\    \               \:::\    \              /::::\    \       
      /::::::\    \           \:::\    \            /::::::\    \           \:::\    \               \:::\    \            /::::::\    \      
     /:::/\:::\    \           \:::\    \          /:::/\:::\    \           \:::\    \               \:::\    \          /:::/\:::\    \     
    /:::/__\:::\    \           \:::\    \        /:::/__\:::\    \           \:::\    \               \:::\    \        /:::/  \:::\    \    
    \:::\   \:::\    \          /::::\    \      /::::\   \:::\    \          /::::\    \              /::::\    \      /:::/    \:::\    \   
  ___\:::\   \:::\    \        /::::::\    \    /::::::\   \:::\    \        /::::::\    \    ____    /::::::\    \    /:::/    / \:::\    \  
 /\   \:::\   \:::\    \      /:::/\:::\    \  /:::/\:::\   \:::\    \      /:::/\:::\    \  /\   \  /:::/\:::\    \  /:::/    /   \:::\    \ 
/::\   \:::\   \:::\____\    /:::/  \:::\____\/:::/  \:::\   \:::\____\    /:::/  \:::\____\/::\   \/:::/  \:::\____\/:::/____/     \:::\____\
\:::\   \:::\   \::/    /   /:::/    \::/    /\::/    \:::\  /:::/    /   /:::/    \::/    /\:::\  /:::/    \::/    /\:::\    \      \::/    /
 \:::\   \:::\   \/____/   /:::/    / \/____/  \/____/ \:::\/:::/    /   /:::/    / \/____/  \:::\/:::/    / \/____/  \:::\    \      \/____/ 
  \:::\   \:::\    \      /:::/    /                    \::::::/    /   /:::/    /            \::::::/    /            \:::\    \             
   \:::\   \:::\____\    /:::/    /                      \::::/    /   /:::/    /              \::::/____/              \:::\    \            
    \:::\  /:::/    /    \::/    /                       /:::/    /    \::/    /                \:::\    \               \:::\    \           
     \:::\/:::/    /      \/____/                       /:::/    /      \/____/                  \:::\    \               \:::\    \          
      \::::::/    /                                    /:::/    /                                 \:::\    \               \:::\    \         
       \::::/    /                                    /:::/    /                                   \:::\____\               \:::\____\        
        \::/    /                                     \::/    /                                     \::/    /                \::/    /        
         \/____/                                       \/____/                                       \/____/                  \/____/         
*/

// SPDX-License-Identifier: MIT


// File: @openzeppelin/contracts/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



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() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual 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 {
        _setOwner(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");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol



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

// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol



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

// File: @openzeppelin/contracts/token/ERC20/ERC20.sol



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/Static.sol




pragma solidity ^0.8.0;



contract Static is ERC20, Ownable {
    address public colorPlotsAddress;
    
    mapping(address => bool) public allowedAddresses;

    constructor() ERC20("Static", "STC") {}
    
    //Set address for main Color Plots Address
    function setColorPlotsAddress(address colorPlotsAddr) external onlyOwner {
        colorPlotsAddress = colorPlotsAddr;
    }
    

    function burn(address user, uint256 amount) external {
        require(allowedAddresses[msg.sender] || msg.sender == colorPlotsAddress, "Address cannot burn $Static");
        _burn(user, amount);
    }
    
    function mint(address to, uint256 value) external {
        require(msg.sender == colorPlotsAddress, "NOT ALLOWED TO MINT");
        _mint(to, value);
    }

    function setAllowedAddresses(address _address, bool _access) public onlyOwner {
        allowedAddresses[_address] = _access;
    }
}

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":"","type":"address"}],"name":"allowedAddresses","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"colorPlotsAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"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":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","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":"_address","type":"address"},{"internalType":"bool","name":"_access","type":"bool"}],"name":"setAllowedAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"colorPlotsAddr","type":"address"}],"name":"setColorPlotsAddress","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"}]

60806040523480156200001157600080fd5b506040518060400160405280600681526020017f53746174696300000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f5354430000000000000000000000000000000000000000000000000000000000815250816003908051906020019062000096929190620001a6565b508060049080519060200190620000af929190620001a6565b505050620000d2620000c6620000d860201b60201c565b620000e060201b60201c565b620002bb565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001b49062000256565b90600052602060002090601f016020900481019282620001d8576000855562000224565b82601f10620001f357805160ff191683800117855562000224565b8280016001018555821562000224579182015b828111156200022357825182559160200191906001019062000206565b5b50905062000233919062000237565b5090565b5b808211156200025257600081600090555060010162000238565b5090565b600060028204905060018216806200026f57607f821691505b602082108114156200028657620002856200028c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6121b280620002cb6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806389781912116100ad578063a9059cbb11610071578063a9059cbb14610345578063dd62ed3e14610375578063e3981a58146103a5578063e557790b146103c3578063f2fde38b146103df5761012c565b806389781912146102a15780638da5cb5b146102bd57806395d89b41146102db5780639dc29fac146102f9578063a457c2d7146103155761012c565b806339509351116100f457806339509351146101eb57806340c10f191461021b5780634120657a1461023757806370a0823114610267578063715018a6146102975761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d578063313ce567146101cd575b600080fd5b6101396103fb565b6040516101469190611d50565b60405180910390f35b6101696004803603810190610164919061176d565b61048d565b6040516101769190611d35565b60405180910390f35b6101876104ab565b6040516101949190611f32565b60405180910390f35b6101b760048036038101906101b291906116e2565b6104b5565b6040516101c49190611d35565b60405180910390f35b6101d56105ad565b6040516101e29190611f4d565b60405180910390f35b6102056004803603810190610200919061176d565b6105b6565b6040516102129190611d35565b60405180910390f35b6102356004803603810190610230919061176d565b610662565b005b610251600480360381019061024c919061167d565b610700565b60405161025e9190611d35565b60405180910390f35b610281600480360381019061027c919061167d565b610720565b60405161028e9190611f32565b60405180910390f35b61029f610768565b005b6102bb60048036038101906102b69190611731565b6107f0565b005b6102c56108c7565b6040516102d29190611d1a565b60405180910390f35b6102e36108f1565b6040516102f09190611d50565b60405180910390f35b610313600480360381019061030e919061176d565b610983565b005b61032f600480360381019061032a919061176d565b610a75565b60405161033c9190611d35565b60405180910390f35b61035f600480360381019061035a919061176d565b610b60565b60405161036c9190611d35565b60405180910390f35b61038f600480360381019061038a91906116a6565b610b7e565b60405161039c9190611f32565b60405180910390f35b6103ad610c05565b6040516103ba9190611d1a565b60405180910390f35b6103dd60048036038101906103d8919061167d565b610c2b565b005b6103f960048036038101906103f4919061167d565b610ceb565b005b60606003805461040a90612096565b80601f016020809104026020016040519081016040528092919081815260200182805461043690612096565b80156104835780601f1061045857610100808354040283529160200191610483565b820191906000526020600020905b81548152906001019060200180831161046657829003601f168201915b5050505050905090565b60006104a161049a610de3565b8484610deb565b6001905092915050565b6000600254905090565b60006104c2848484610fb6565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050d610de3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561058d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058490611e32565b60405180910390fd5b6105a185610599610de3565b858403610deb565b60019150509392505050565b60006012905090565b60006106586105c3610de3565b8484600160006105d1610de3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106539190611f84565b610deb565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e990611e12565b60405180910390fd5b6106fc8282611237565b5050565b60076020528060005260406000206000915054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610770610de3565b73ffffffffffffffffffffffffffffffffffffffff1661078e6108c7565b73ffffffffffffffffffffffffffffffffffffffff16146107e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107db90611e52565b60405180910390fd5b6107ee6000611397565b565b6107f8610de3565b73ffffffffffffffffffffffffffffffffffffffff166108166108c7565b73ffffffffffffffffffffffffffffffffffffffff161461086c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086390611e52565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461090090612096565b80601f016020809104026020016040519081016040528092919081815260200182805461092c90612096565b80156109795780601f1061094e57610100808354040283529160200191610979565b820191906000526020600020905b81548152906001019060200180831161095c57829003601f168201915b5050505050905090565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610a285750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5e90611e72565b60405180910390fd5b610a71828261145d565b5050565b60008060016000610a84610de3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3890611ef2565b60405180910390fd5b610b55610b4c610de3565b85858403610deb565b600191505092915050565b6000610b74610b6d610de3565b8484610fb6565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c33610de3565b73ffffffffffffffffffffffffffffffffffffffff16610c516108c7565b73ffffffffffffffffffffffffffffffffffffffff1614610ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9e90611e52565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610cf3610de3565b73ffffffffffffffffffffffffffffffffffffffff16610d116108c7565b73ffffffffffffffffffffffffffffffffffffffff1614610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90611e52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dce90611db2565b60405180910390fd5b610de081611397565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5290611ed2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec290611dd2565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fa99190611f32565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101d90611eb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108d90611d72565b60405180910390fd5b6110a1838383611634565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111e90611df2565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111ba9190611f84565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161121e9190611f32565b60405180910390a3611231848484611639565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129e90611f12565b60405180910390fd5b6112b360008383611634565b80600260008282546112c59190611f84565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461131a9190611f84565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161137f9190611f32565b60405180910390a361139360008383611639565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c490611e92565b60405180910390fd5b6114d982600083611634565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561155f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155690611d92565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546115b69190611fda565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161161b9190611f32565b60405180910390a361162f83600084611639565b505050565b505050565b505050565b60008135905061164d81612137565b92915050565b6000813590506116628161214e565b92915050565b60008135905061167781612165565b92915050565b60006020828403121561168f57600080fd5b600061169d8482850161163e565b91505092915050565b600080604083850312156116b957600080fd5b60006116c78582860161163e565b92505060206116d88582860161163e565b9150509250929050565b6000806000606084860312156116f757600080fd5b60006117058682870161163e565b93505060206117168682870161163e565b925050604061172786828701611668565b9150509250925092565b6000806040838503121561174457600080fd5b60006117528582860161163e565b925050602061176385828601611653565b9150509250929050565b6000806040838503121561178057600080fd5b600061178e8582860161163e565b925050602061179f85828601611668565b9150509250929050565b6117b28161200e565b82525050565b6117c181612020565b82525050565b60006117d282611f68565b6117dc8185611f73565b93506117ec818560208601612063565b6117f581612126565b840191505092915050565b600061180d602383611f73565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611873602283611f73565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006118d9602683611f73565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061193f602283611f73565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006119a5602683611f73565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611a0b601383611f73565b91507f4e4f5420414c4c4f57454420544f204d494e54000000000000000000000000006000830152602082019050919050565b6000611a4b602883611f73565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611ab1602083611f73565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611af1601b83611f73565b91507f416464726573732063616e6e6f74206275726e202453746174696300000000006000830152602082019050919050565b6000611b31602183611f73565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611b97602583611f73565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611bfd602483611f73565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611c63602583611f73565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611cc9601f83611f73565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b611d058161204c565b82525050565b611d1481612056565b82525050565b6000602082019050611d2f60008301846117a9565b92915050565b6000602082019050611d4a60008301846117b8565b92915050565b60006020820190508181036000830152611d6a81846117c7565b905092915050565b60006020820190508181036000830152611d8b81611800565b9050919050565b60006020820190508181036000830152611dab81611866565b9050919050565b60006020820190508181036000830152611dcb816118cc565b9050919050565b60006020820190508181036000830152611deb81611932565b9050919050565b60006020820190508181036000830152611e0b81611998565b9050919050565b60006020820190508181036000830152611e2b816119fe565b9050919050565b60006020820190508181036000830152611e4b81611a3e565b9050919050565b60006020820190508181036000830152611e6b81611aa4565b9050919050565b60006020820190508181036000830152611e8b81611ae4565b9050919050565b60006020820190508181036000830152611eab81611b24565b9050919050565b60006020820190508181036000830152611ecb81611b8a565b9050919050565b60006020820190508181036000830152611eeb81611bf0565b9050919050565b60006020820190508181036000830152611f0b81611c56565b9050919050565b60006020820190508181036000830152611f2b81611cbc565b9050919050565b6000602082019050611f476000830184611cfc565b92915050565b6000602082019050611f626000830184611d0b565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611f8f8261204c565b9150611f9a8361204c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611fcf57611fce6120c8565b5b828201905092915050565b6000611fe58261204c565b9150611ff08361204c565b925082821015612003576120026120c8565b5b828203905092915050565b60006120198261202c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612081578082015181840152602081019050612066565b83811115612090576000848401525b50505050565b600060028204905060018216806120ae57607f821691505b602082108114156120c2576120c16120f7565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6121408161200e565b811461214b57600080fd5b50565b61215781612020565b811461216257600080fd5b50565b61216e8161204c565b811461217957600080fd5b5056fea2646970667358221220c8511decea559e6443db0107d4d832b24b2d117f3f7f8cef1bc83066054b9cbc64736f6c63430008000033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806389781912116100ad578063a9059cbb11610071578063a9059cbb14610345578063dd62ed3e14610375578063e3981a58146103a5578063e557790b146103c3578063f2fde38b146103df5761012c565b806389781912146102a15780638da5cb5b146102bd57806395d89b41146102db5780639dc29fac146102f9578063a457c2d7146103155761012c565b806339509351116100f457806339509351146101eb57806340c10f191461021b5780634120657a1461023757806370a0823114610267578063715018a6146102975761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d578063313ce567146101cd575b600080fd5b6101396103fb565b6040516101469190611d50565b60405180910390f35b6101696004803603810190610164919061176d565b61048d565b6040516101769190611d35565b60405180910390f35b6101876104ab565b6040516101949190611f32565b60405180910390f35b6101b760048036038101906101b291906116e2565b6104b5565b6040516101c49190611d35565b60405180910390f35b6101d56105ad565b6040516101e29190611f4d565b60405180910390f35b6102056004803603810190610200919061176d565b6105b6565b6040516102129190611d35565b60405180910390f35b6102356004803603810190610230919061176d565b610662565b005b610251600480360381019061024c919061167d565b610700565b60405161025e9190611d35565b60405180910390f35b610281600480360381019061027c919061167d565b610720565b60405161028e9190611f32565b60405180910390f35b61029f610768565b005b6102bb60048036038101906102b69190611731565b6107f0565b005b6102c56108c7565b6040516102d29190611d1a565b60405180910390f35b6102e36108f1565b6040516102f09190611d50565b60405180910390f35b610313600480360381019061030e919061176d565b610983565b005b61032f600480360381019061032a919061176d565b610a75565b60405161033c9190611d35565b60405180910390f35b61035f600480360381019061035a919061176d565b610b60565b60405161036c9190611d35565b60405180910390f35b61038f600480360381019061038a91906116a6565b610b7e565b60405161039c9190611f32565b60405180910390f35b6103ad610c05565b6040516103ba9190611d1a565b60405180910390f35b6103dd60048036038101906103d8919061167d565b610c2b565b005b6103f960048036038101906103f4919061167d565b610ceb565b005b60606003805461040a90612096565b80601f016020809104026020016040519081016040528092919081815260200182805461043690612096565b80156104835780601f1061045857610100808354040283529160200191610483565b820191906000526020600020905b81548152906001019060200180831161046657829003601f168201915b5050505050905090565b60006104a161049a610de3565b8484610deb565b6001905092915050565b6000600254905090565b60006104c2848484610fb6565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050d610de3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561058d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058490611e32565b60405180910390fd5b6105a185610599610de3565b858403610deb565b60019150509392505050565b60006012905090565b60006106586105c3610de3565b8484600160006105d1610de3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106539190611f84565b610deb565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e990611e12565b60405180910390fd5b6106fc8282611237565b5050565b60076020528060005260406000206000915054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610770610de3565b73ffffffffffffffffffffffffffffffffffffffff1661078e6108c7565b73ffffffffffffffffffffffffffffffffffffffff16146107e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107db90611e52565b60405180910390fd5b6107ee6000611397565b565b6107f8610de3565b73ffffffffffffffffffffffffffffffffffffffff166108166108c7565b73ffffffffffffffffffffffffffffffffffffffff161461086c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086390611e52565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461090090612096565b80601f016020809104026020016040519081016040528092919081815260200182805461092c90612096565b80156109795780601f1061094e57610100808354040283529160200191610979565b820191906000526020600020905b81548152906001019060200180831161095c57829003601f168201915b5050505050905090565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610a285750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5e90611e72565b60405180910390fd5b610a71828261145d565b5050565b60008060016000610a84610de3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3890611ef2565b60405180910390fd5b610b55610b4c610de3565b85858403610deb565b600191505092915050565b6000610b74610b6d610de3565b8484610fb6565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c33610de3565b73ffffffffffffffffffffffffffffffffffffffff16610c516108c7565b73ffffffffffffffffffffffffffffffffffffffff1614610ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9e90611e52565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610cf3610de3565b73ffffffffffffffffffffffffffffffffffffffff16610d116108c7565b73ffffffffffffffffffffffffffffffffffffffff1614610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90611e52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dce90611db2565b60405180910390fd5b610de081611397565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5290611ed2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec290611dd2565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fa99190611f32565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101d90611eb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108d90611d72565b60405180910390fd5b6110a1838383611634565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111e90611df2565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111ba9190611f84565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161121e9190611f32565b60405180910390a3611231848484611639565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129e90611f12565b60405180910390fd5b6112b360008383611634565b80600260008282546112c59190611f84565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461131a9190611f84565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161137f9190611f32565b60405180910390a361139360008383611639565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c490611e92565b60405180910390fd5b6114d982600083611634565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561155f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155690611d92565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546115b69190611fda565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161161b9190611f32565b60405180910390a361162f83600084611639565b505050565b505050565b505050565b60008135905061164d81612137565b92915050565b6000813590506116628161214e565b92915050565b60008135905061167781612165565b92915050565b60006020828403121561168f57600080fd5b600061169d8482850161163e565b91505092915050565b600080604083850312156116b957600080fd5b60006116c78582860161163e565b92505060206116d88582860161163e565b9150509250929050565b6000806000606084860312156116f757600080fd5b60006117058682870161163e565b93505060206117168682870161163e565b925050604061172786828701611668565b9150509250925092565b6000806040838503121561174457600080fd5b60006117528582860161163e565b925050602061176385828601611653565b9150509250929050565b6000806040838503121561178057600080fd5b600061178e8582860161163e565b925050602061179f85828601611668565b9150509250929050565b6117b28161200e565b82525050565b6117c181612020565b82525050565b60006117d282611f68565b6117dc8185611f73565b93506117ec818560208601612063565b6117f581612126565b840191505092915050565b600061180d602383611f73565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611873602283611f73565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006118d9602683611f73565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061193f602283611f73565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006119a5602683611f73565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611a0b601383611f73565b91507f4e4f5420414c4c4f57454420544f204d494e54000000000000000000000000006000830152602082019050919050565b6000611a4b602883611f73565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611ab1602083611f73565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611af1601b83611f73565b91507f416464726573732063616e6e6f74206275726e202453746174696300000000006000830152602082019050919050565b6000611b31602183611f73565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611b97602583611f73565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611bfd602483611f73565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611c63602583611f73565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611cc9601f83611f73565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b611d058161204c565b82525050565b611d1481612056565b82525050565b6000602082019050611d2f60008301846117a9565b92915050565b6000602082019050611d4a60008301846117b8565b92915050565b60006020820190508181036000830152611d6a81846117c7565b905092915050565b60006020820190508181036000830152611d8b81611800565b9050919050565b60006020820190508181036000830152611dab81611866565b9050919050565b60006020820190508181036000830152611dcb816118cc565b9050919050565b60006020820190508181036000830152611deb81611932565b9050919050565b60006020820190508181036000830152611e0b81611998565b9050919050565b60006020820190508181036000830152611e2b816119fe565b9050919050565b60006020820190508181036000830152611e4b81611a3e565b9050919050565b60006020820190508181036000830152611e6b81611aa4565b9050919050565b60006020820190508181036000830152611e8b81611ae4565b9050919050565b60006020820190508181036000830152611eab81611b24565b9050919050565b60006020820190508181036000830152611ecb81611b8a565b9050919050565b60006020820190508181036000830152611eeb81611bf0565b9050919050565b60006020820190508181036000830152611f0b81611c56565b9050919050565b60006020820190508181036000830152611f2b81611cbc565b9050919050565b6000602082019050611f476000830184611cfc565b92915050565b6000602082019050611f626000830184611d0b565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611f8f8261204c565b9150611f9a8361204c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611fcf57611fce6120c8565b5b828201905092915050565b6000611fe58261204c565b9150611ff08361204c565b925082821015612003576120026120c8565b5b828203905092915050565b60006120198261202c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612081578082015181840152602081019050612066565b83811115612090576000848401525b50505050565b600060028204905060018216806120ae57607f821691505b602082108114156120c2576120c16120f7565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6121408161200e565b811461214b57600080fd5b50565b61215781612020565b811461216257600080fd5b50565b61216e8161204c565b811461217957600080fd5b5056fea2646970667358221220c8511decea559e6443db0107d4d832b24b2d117f3f7f8cef1bc83066054b9cbc64736f6c63430008000033

Deployed Bytecode Sourcemap

21782:902:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11751:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13918:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12871:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14569:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12713:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15470:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22381:159;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21868:48;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13042:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5555:94;;;:::i;:::-;;22548:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4904:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11970:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22164:205;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16188:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13382:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13620:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21823:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22024:126;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5804:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11751:100;11805:13;11838:5;11831:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11751:100;:::o;13918:169::-;14001:4;14018:39;14027:12;:10;:12::i;:::-;14041:7;14050:6;14018:8;:39::i;:::-;14075:4;14068:11;;13918:169;;;;:::o;12871:108::-;12932:7;12959:12;;12952:19;;12871:108;:::o;14569:492::-;14709:4;14726:36;14736:6;14744:9;14755:6;14726:9;:36::i;:::-;14775:24;14802:11;:19;14814:6;14802:19;;;;;;;;;;;;;;;:33;14822:12;:10;:12::i;:::-;14802:33;;;;;;;;;;;;;;;;14775:60;;14874:6;14854:16;:26;;14846:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;14961:57;14970:6;14978:12;:10;:12::i;:::-;15011:6;14992:16;:25;14961:8;:57::i;:::-;15049:4;15042:11;;;14569:492;;;;;:::o;12713:93::-;12771:5;12796:2;12789:9;;12713:93;:::o;15470:215::-;15558:4;15575:80;15584:12;:10;:12::i;:::-;15598:7;15644:10;15607:11;:25;15619:12;:10;:12::i;:::-;15607:25;;;;;;;;;;;;;;;:34;15633:7;15607:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;15575:8;:80::i;:::-;15673:4;15666:11;;15470:215;;;;:::o;22381:159::-;22464:17;;;;;;;;;;;22450:31;;:10;:31;;;22442:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;22516:16;22522:2;22526:5;22516;:16::i;:::-;22381:159;;:::o;21868:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;13042:127::-;13116:7;13143:9;:18;13153:7;13143:18;;;;;;;;;;;;;;;;13136:25;;13042:127;;;:::o;5555:94::-;5135:12;:10;:12::i;:::-;5124:23;;:7;:5;:7::i;:::-;:23;;;5116:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5620:21:::1;5638:1;5620:9;:21::i;:::-;5555:94::o:0;22548:133::-;5135:12;:10;:12::i;:::-;5124:23;;:7;:5;:7::i;:::-;:23;;;5116:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22666:7:::1;22637:16;:26;22654:8;22637:26;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;22548:133:::0;;:::o;4904:87::-;4950:7;4977:6;;;;;;;;;;;4970:13;;4904:87;:::o;11970:104::-;12026:13;12059:7;12052:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11970:104;:::o;22164:205::-;22236:16;:28;22253:10;22236:28;;;;;;;;;;;;;;;;;;;;;;;;;:63;;;;22282:17;;;;;;;;;;;22268:31;;:10;:31;;;22236:63;22228:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;22342:19;22348:4;22354:6;22342:5;:19::i;:::-;22164:205;;:::o;16188:413::-;16281:4;16298:24;16325:11;:25;16337:12;:10;:12::i;:::-;16325:25;;;;;;;;;;;;;;;:34;16351:7;16325:34;;;;;;;;;;;;;;;;16298:61;;16398:15;16378:16;:35;;16370:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;16491:67;16500:12;:10;:12::i;:::-;16514:7;16542:15;16523:16;:34;16491:8;:67::i;:::-;16589:4;16582:11;;;16188:413;;;;:::o;13382:175::-;13468:4;13485:42;13495:12;:10;:12::i;:::-;13509:9;13520:6;13485:9;:42::i;:::-;13545:4;13538:11;;13382:175;;;;:::o;13620:151::-;13709:7;13736:11;:18;13748:5;13736:18;;;;;;;;;;;;;;;:27;13755:7;13736:27;;;;;;;;;;;;;;;;13729:34;;13620:151;;;;:::o;21823:32::-;;;;;;;;;;;;;:::o;22024:126::-;5135:12;:10;:12::i;:::-;5124:23;;:7;:5;:7::i;:::-;:23;;;5116:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22128:14:::1;22108:17;;:34;;;;;;;;;;;;;;;;;;22024:126:::0;:::o;5804:192::-;5135:12;:10;:12::i;:::-;5124:23;;:7;:5;:7::i;:::-;:23;;;5116:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5913:1:::1;5893:22;;:8;:22;;;;5885:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5969:19;5979:8;5969:9;:19::i;:::-;5804:192:::0;:::o;3692:98::-;3745:7;3772:10;3765:17;;3692:98;:::o;19872:380::-;20025:1;20008:19;;:5;:19;;;;20000:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20106:1;20087:21;;:7;:21;;;;20079:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20190:6;20160:11;:18;20172:5;20160:18;;;;;;;;;;;;;;;:27;20179:7;20160:27;;;;;;;;;;;;;;;:36;;;;20228:7;20212:32;;20221:5;20212:32;;;20237:6;20212:32;;;;;;:::i;:::-;;;;;;;;19872:380;;;:::o;17091:733::-;17249:1;17231:20;;:6;:20;;;;17223:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;17333:1;17312:23;;:9;:23;;;;17304:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17388:47;17409:6;17417:9;17428:6;17388:20;:47::i;:::-;17448:21;17472:9;:17;17482:6;17472:17;;;;;;;;;;;;;;;;17448:41;;17525:6;17508:13;:23;;17500:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;17646:6;17630:13;:22;17610:9;:17;17620:6;17610:17;;;;;;;;;;;;;;;:42;;;;17698:6;17674:9;:20;17684:9;17674:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;17739:9;17722:35;;17731:6;17722:35;;;17750:6;17722:35;;;;;;:::i;:::-;;;;;;;;17770:46;17790:6;17798:9;17809:6;17770:19;:46::i;:::-;17091:733;;;;:::o;18111:399::-;18214:1;18195:21;;:7;:21;;;;18187:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;18265:49;18294:1;18298:7;18307:6;18265:20;:49::i;:::-;18343:6;18327:12;;:22;;;;;;;:::i;:::-;;;;;;;;18382:6;18360:9;:18;18370:7;18360:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;18425:7;18404:37;;18421:1;18404:37;;;18434:6;18404:37;;;;;;:::i;:::-;;;;;;;;18454:48;18482:1;18486:7;18495:6;18454:19;:48::i;:::-;18111:399;;:::o;6004:173::-;6060:16;6079:6;;;;;;;;;;;6060:25;;6105:8;6096:6;;:17;;;;;;;;;;;;;;;;;;6160:8;6129:40;;6150:8;6129:40;;;;;;;;;;;;6004:173;;:::o;18843:591::-;18946:1;18927:21;;:7;:21;;;;18919:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18999:49;19020:7;19037:1;19041:6;18999:20;:49::i;:::-;19061:22;19086:9;:18;19096:7;19086:18;;;;;;;;;;;;;;;;19061:43;;19141:6;19123:14;:24;;19115:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;19260:6;19243:14;:23;19222:9;:18;19232:7;19222:18;;;;;;;;;;;;;;;:44;;;;19304:6;19288:12;;:22;;;;;;;:::i;:::-;;;;;;;;19354:1;19328:37;;19337:7;19328:37;;;19358:6;19328:37;;;;;;:::i;:::-;;;;;;;;19378:48;19398:7;19415:1;19419:6;19378:19;:48::i;:::-;18843:591;;;:::o;20852:125::-;;;;:::o;21581:124::-;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:139::-;;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;343:87;;;;:::o;436:262::-;;544:2;532:9;523:7;519:23;515:32;512:2;;;560:1;557;550:12;512:2;603:1;628:53;673:7;664:6;653:9;649:22;628:53;:::i;:::-;618:63;;574:117;502:196;;;;:::o;704:407::-;;;829:2;817:9;808:7;804:23;800:32;797:2;;;845:1;842;835:12;797:2;888:1;913:53;958:7;949:6;938:9;934:22;913:53;:::i;:::-;903:63;;859:117;1015:2;1041:53;1086:7;1077:6;1066:9;1062:22;1041:53;:::i;:::-;1031:63;;986:118;787:324;;;;;:::o;1117:552::-;;;;1259:2;1247:9;1238:7;1234:23;1230:32;1227:2;;;1275:1;1272;1265:12;1227:2;1318:1;1343:53;1388:7;1379:6;1368:9;1364:22;1343:53;:::i;:::-;1333:63;;1289:117;1445:2;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1416:118;1573:2;1599:53;1644:7;1635:6;1624:9;1620:22;1599:53;:::i;:::-;1589:63;;1544:118;1217:452;;;;;:::o;1675:401::-;;;1797:2;1785:9;1776:7;1772:23;1768:32;1765:2;;;1813:1;1810;1803:12;1765:2;1856:1;1881:53;1926:7;1917:6;1906:9;1902:22;1881:53;:::i;:::-;1871:63;;1827:117;1983:2;2009:50;2051:7;2042:6;2031:9;2027:22;2009:50;:::i;:::-;1999:60;;1954:115;1755:321;;;;;:::o;2082:407::-;;;2207:2;2195:9;2186:7;2182:23;2178:32;2175:2;;;2223:1;2220;2213:12;2175:2;2266:1;2291:53;2336:7;2327:6;2316:9;2312:22;2291:53;:::i;:::-;2281:63;;2237:117;2393:2;2419:53;2464:7;2455:6;2444:9;2440:22;2419:53;:::i;:::-;2409:63;;2364:118;2165:324;;;;;:::o;2495:118::-;2582:24;2600:5;2582:24;:::i;:::-;2577:3;2570:37;2560:53;;:::o;2619:109::-;2700:21;2715:5;2700:21;:::i;:::-;2695:3;2688:34;2678:50;;:::o;2734:364::-;;2850:39;2883:5;2850:39;:::i;:::-;2905:71;2969:6;2964:3;2905:71;:::i;:::-;2898:78;;2985:52;3030:6;3025:3;3018:4;3011:5;3007:16;2985:52;:::i;:::-;3062:29;3084:6;3062:29;:::i;:::-;3057:3;3053:39;3046:46;;2826:272;;;;;:::o;3104:367::-;;3267:67;3331:2;3326:3;3267:67;:::i;:::-;3260:74;;3364:34;3360:1;3355:3;3351:11;3344:55;3430:5;3425:2;3420:3;3416:12;3409:27;3462:2;3457:3;3453:12;3446:19;;3250:221;;;:::o;3477:366::-;;3640:67;3704:2;3699:3;3640:67;:::i;:::-;3633:74;;3737:34;3733:1;3728:3;3724:11;3717:55;3803:4;3798:2;3793:3;3789:12;3782:26;3834:2;3829:3;3825:12;3818:19;;3623:220;;;:::o;3849:370::-;;4012:67;4076:2;4071:3;4012:67;:::i;:::-;4005:74;;4109:34;4105:1;4100:3;4096:11;4089:55;4175:8;4170:2;4165:3;4161:12;4154:30;4210:2;4205:3;4201:12;4194:19;;3995:224;;;:::o;4225:366::-;;4388:67;4452:2;4447:3;4388:67;:::i;:::-;4381:74;;4485:34;4481:1;4476:3;4472:11;4465:55;4551:4;4546:2;4541:3;4537:12;4530:26;4582:2;4577:3;4573:12;4566:19;;4371:220;;;:::o;4597:370::-;;4760:67;4824:2;4819:3;4760:67;:::i;:::-;4753:74;;4857:34;4853:1;4848:3;4844:11;4837:55;4923:8;4918:2;4913:3;4909:12;4902:30;4958:2;4953:3;4949:12;4942:19;;4743:224;;;:::o;4973:317::-;;5136:67;5200:2;5195:3;5136:67;:::i;:::-;5129:74;;5233:21;5229:1;5224:3;5220:11;5213:42;5281:2;5276:3;5272:12;5265:19;;5119:171;;;:::o;5296:372::-;;5459:67;5523:2;5518:3;5459:67;:::i;:::-;5452:74;;5556:34;5552:1;5547:3;5543:11;5536:55;5622:10;5617:2;5612:3;5608:12;5601:32;5659:2;5654:3;5650:12;5643:19;;5442:226;;;:::o;5674:330::-;;5837:67;5901:2;5896:3;5837:67;:::i;:::-;5830:74;;5934:34;5930:1;5925:3;5921:11;5914:55;5995:2;5990:3;5986:12;5979:19;;5820:184;;;:::o;6010:325::-;;6173:67;6237:2;6232:3;6173:67;:::i;:::-;6166:74;;6270:29;6266:1;6261:3;6257:11;6250:50;6326:2;6321:3;6317:12;6310:19;;6156:179;;;:::o;6341:365::-;;6504:67;6568:2;6563:3;6504:67;:::i;:::-;6497:74;;6601:34;6597:1;6592:3;6588:11;6581:55;6667:3;6662:2;6657:3;6653:12;6646:25;6697:2;6692:3;6688:12;6681:19;;6487:219;;;:::o;6712:369::-;;6875:67;6939:2;6934:3;6875:67;:::i;:::-;6868:74;;6972:34;6968:1;6963:3;6959:11;6952:55;7038:7;7033:2;7028:3;7024:12;7017:29;7072:2;7067:3;7063:12;7056:19;;6858:223;;;:::o;7087:368::-;;7250:67;7314:2;7309:3;7250:67;:::i;:::-;7243:74;;7347:34;7343:1;7338:3;7334:11;7327:55;7413:6;7408:2;7403:3;7399:12;7392:28;7446:2;7441:3;7437:12;7430:19;;7233:222;;;:::o;7461:369::-;;7624:67;7688:2;7683:3;7624:67;:::i;:::-;7617:74;;7721:34;7717:1;7712:3;7708:11;7701:55;7787:7;7782:2;7777:3;7773:12;7766:29;7821:2;7816:3;7812:12;7805:19;;7607:223;;;:::o;7836:329::-;;7999:67;8063:2;8058:3;7999:67;:::i;:::-;7992:74;;8096:33;8092:1;8087:3;8083:11;8076:54;8156:2;8151:3;8147:12;8140:19;;7982:183;;;:::o;8171:118::-;8258:24;8276:5;8258:24;:::i;:::-;8253:3;8246:37;8236:53;;:::o;8295:112::-;8378:22;8394:5;8378:22;:::i;:::-;8373:3;8366:35;8356:51;;:::o;8413:222::-;;8544:2;8533:9;8529:18;8521:26;;8557:71;8625:1;8614:9;8610:17;8601:6;8557:71;:::i;:::-;8511:124;;;;:::o;8641:210::-;;8766:2;8755:9;8751:18;8743:26;;8779:65;8841:1;8830:9;8826:17;8817:6;8779:65;:::i;:::-;8733:118;;;;:::o;8857:313::-;;9008:2;8997:9;8993:18;8985:26;;9057:9;9051:4;9047:20;9043:1;9032:9;9028:17;9021:47;9085:78;9158:4;9149:6;9085:78;:::i;:::-;9077:86;;8975:195;;;;:::o;9176:419::-;;9380:2;9369:9;9365:18;9357:26;;9429:9;9423:4;9419:20;9415:1;9404:9;9400:17;9393:47;9457:131;9583:4;9457:131;:::i;:::-;9449:139;;9347:248;;;:::o;9601:419::-;;9805:2;9794:9;9790:18;9782:26;;9854:9;9848:4;9844:20;9840:1;9829:9;9825:17;9818:47;9882:131;10008:4;9882:131;:::i;:::-;9874:139;;9772:248;;;:::o;10026:419::-;;10230:2;10219:9;10215:18;10207:26;;10279:9;10273:4;10269:20;10265:1;10254:9;10250:17;10243:47;10307:131;10433:4;10307:131;:::i;:::-;10299:139;;10197:248;;;:::o;10451:419::-;;10655:2;10644:9;10640:18;10632:26;;10704:9;10698:4;10694:20;10690:1;10679:9;10675:17;10668:47;10732:131;10858:4;10732:131;:::i;:::-;10724:139;;10622:248;;;:::o;10876:419::-;;11080:2;11069:9;11065:18;11057:26;;11129:9;11123:4;11119:20;11115:1;11104:9;11100:17;11093:47;11157:131;11283:4;11157:131;:::i;:::-;11149:139;;11047:248;;;:::o;11301:419::-;;11505:2;11494:9;11490:18;11482:26;;11554:9;11548:4;11544:20;11540:1;11529:9;11525:17;11518:47;11582:131;11708:4;11582:131;:::i;:::-;11574:139;;11472:248;;;:::o;11726:419::-;;11930:2;11919:9;11915:18;11907:26;;11979:9;11973:4;11969:20;11965:1;11954:9;11950:17;11943:47;12007:131;12133:4;12007:131;:::i;:::-;11999:139;;11897:248;;;:::o;12151:419::-;;12355:2;12344:9;12340:18;12332:26;;12404:9;12398:4;12394:20;12390:1;12379:9;12375:17;12368:47;12432:131;12558:4;12432:131;:::i;:::-;12424:139;;12322:248;;;:::o;12576:419::-;;12780:2;12769:9;12765:18;12757:26;;12829:9;12823:4;12819:20;12815:1;12804:9;12800:17;12793:47;12857:131;12983:4;12857:131;:::i;:::-;12849:139;;12747:248;;;:::o;13001:419::-;;13205:2;13194:9;13190:18;13182:26;;13254:9;13248:4;13244:20;13240:1;13229:9;13225:17;13218:47;13282:131;13408:4;13282:131;:::i;:::-;13274:139;;13172:248;;;:::o;13426:419::-;;13630:2;13619:9;13615:18;13607:26;;13679:9;13673:4;13669:20;13665:1;13654:9;13650:17;13643:47;13707:131;13833:4;13707:131;:::i;:::-;13699:139;;13597:248;;;:::o;13851:419::-;;14055:2;14044:9;14040:18;14032:26;;14104:9;14098:4;14094:20;14090:1;14079:9;14075:17;14068:47;14132:131;14258:4;14132:131;:::i;:::-;14124:139;;14022:248;;;:::o;14276:419::-;;14480:2;14469:9;14465:18;14457:26;;14529:9;14523:4;14519:20;14515:1;14504:9;14500:17;14493:47;14557:131;14683:4;14557:131;:::i;:::-;14549:139;;14447:248;;;:::o;14701:419::-;;14905:2;14894:9;14890:18;14882:26;;14954:9;14948:4;14944:20;14940:1;14929:9;14925:17;14918:47;14982:131;15108:4;14982:131;:::i;:::-;14974:139;;14872:248;;;:::o;15126:222::-;;15257:2;15246:9;15242:18;15234:26;;15270:71;15338:1;15327:9;15323:17;15314:6;15270:71;:::i;:::-;15224:124;;;;:::o;15354:214::-;;15481:2;15470:9;15466:18;15458:26;;15494:67;15558:1;15547:9;15543:17;15534:6;15494:67;:::i;:::-;15448:120;;;;:::o;15574:99::-;;15660:5;15654:12;15644:22;;15633:40;;;:::o;15679:169::-;;15797:6;15792:3;15785:19;15837:4;15832:3;15828:14;15813:29;;15775:73;;;;:::o;15854:305::-;;15913:20;15931:1;15913:20;:::i;:::-;15908:25;;15947:20;15965:1;15947:20;:::i;:::-;15942:25;;16101:1;16033:66;16029:74;16026:1;16023:81;16020:2;;;16107:18;;:::i;:::-;16020:2;16151:1;16148;16144:9;16137:16;;15898:261;;;;:::o;16165:191::-;;16225:20;16243:1;16225:20;:::i;:::-;16220:25;;16259:20;16277:1;16259:20;:::i;:::-;16254:25;;16298:1;16295;16292:8;16289:2;;;16303:18;;:::i;:::-;16289:2;16348:1;16345;16341:9;16333:17;;16210:146;;;;:::o;16362:96::-;;16428:24;16446:5;16428:24;:::i;:::-;16417:35;;16407:51;;;:::o;16464:90::-;;16541:5;16534:13;16527:21;16516:32;;16506:48;;;:::o;16560:126::-;;16637:42;16630:5;16626:54;16615:65;;16605:81;;;:::o;16692:77::-;;16758:5;16747:16;;16737:32;;;:::o;16775:86::-;;16850:4;16843:5;16839:16;16828:27;;16818:43;;;:::o;16867:307::-;16935:1;16945:113;16959:6;16956:1;16953:13;16945:113;;;17044:1;17039:3;17035:11;17029:18;17025:1;17020:3;17016:11;17009:39;16981:2;16978:1;16974:10;16969:15;;16945:113;;;17076:6;17073:1;17070:13;17067:2;;;17156:1;17147:6;17142:3;17138:16;17131:27;17067:2;16916:258;;;;:::o;17180:320::-;;17261:1;17255:4;17251:12;17241:22;;17308:1;17302:4;17298:12;17329:18;17319:2;;17385:4;17377:6;17373:17;17363:27;;17319:2;17447;17439:6;17436:14;17416:18;17413:38;17410:2;;;17466:18;;:::i;:::-;17410:2;17231:269;;;;:::o;17506:180::-;17554:77;17551:1;17544:88;17651:4;17648:1;17641:15;17675:4;17672:1;17665:15;17692:180;17740:77;17737:1;17730:88;17837:4;17834:1;17827:15;17861:4;17858:1;17851:15;17878:102;;17970:2;17966:7;17961:2;17954:5;17950:14;17946:28;17936:38;;17926:54;;;:::o;17986:122::-;18059:24;18077:5;18059:24;:::i;:::-;18052:5;18049:35;18039:2;;18098:1;18095;18088:12;18039:2;18029:79;:::o;18114:116::-;18184:21;18199:5;18184:21;:::i;:::-;18177:5;18174:32;18164:2;;18220:1;18217;18210:12;18164:2;18154:76;:::o;18236:122::-;18309:24;18327:5;18309:24;:::i;:::-;18302:5;18299:35;18289:2;;18348:1;18345;18338:12;18289:2;18279:79;:::o

Swarm Source

ipfs://c8511decea559e6443db0107d4d832b24b2d117f3f7f8cef1bc83066054b9cbc
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.