ETH Price: $2,893.31 (-10.20%)
Gas: 15 Gwei

Token

Vana (VANA)
 

Overview

Max Total Supply

1,000,000,000 VANA

Holders

5,713 (0.00%)

Market

Price

$0.00 @ 0.000001 ETH (-3.88%)

Onchain Market Cap

$1,523,610.00

Circulating Supply Market Cap

$996.26

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 VANA

Value
$0.00
0x2f5b4e5b574d0d073ac172273444da37adb8383f
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Nirvana is a decentralized game publisher built on Ethereum, specifically designed for community-centric games.

Market

Volume (24H):$6,851.36
Market Capitalization:$996.26
Circulating Supply:650,693.00 VANA
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
VanaToken

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

// File: @openzeppelin/contracts/security/Pausable.sol


// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)

pragma solidity ^0.8.0;


/**
 * @dev Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 *
 * This module is used through inheritance. It will make available the
 * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
 * the functions of your contract. Note that they will not be pausable by
 * simply including this module, only once the modifiers are put in place.
 */
abstract contract Pausable is Context {
    /**
     * @dev Emitted when the pause is triggered by `account`.
     */
    event Paused(address account);

    /**
     * @dev Emitted when the pause is lifted by `account`.
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     * @dev Initializes the contract in unpaused state.
     */
    constructor() {
        _paused = false;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    modifier whenNotPaused() {
        _requireNotPaused();
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    modifier whenPaused() {
        _requirePaused();
        _;
    }

    /**
     * @dev Returns true if the contract is paused, and false otherwise.
     */
    function paused() public view virtual returns (bool) {
        return _paused;
    }

    /**
     * @dev Throws if the contract is paused.
     */
    function _requireNotPaused() internal view virtual {
        require(!paused(), "Pausable: paused");
    }

    /**
     * @dev Throws if the contract is not paused.
     */
    function _requirePaused() internal view virtual {
        require(paused(), "Pausable: not paused");
    }

    /**
     * @dev Triggers stopped state.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    /**
     * @dev Returns to normal state.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

// File: @openzeppelin/contracts/access/Ownable.sol


// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;


/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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


// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

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


// OpenZeppelin Contracts v4.4.1 (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


// OpenZeppelin Contracts (last updated v4.8.0) (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.openzeppelin.com/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:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, 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}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, 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) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * 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:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, 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;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _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;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _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 Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - 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: VanaToken.sol


pragma solidity ^0.8.0;




contract HasMinters is Ownable {
    event MinterAdded(address indexed _minter);
    event MinterRemoved(address indexed _minter);

    address[] public minters;
    mapping(address => bool) public minter;

    modifier onlyMinter() {
        require(minter[msg.sender], "invalid minter");
        _;
    }

    function addMinters(address[] memory _addedMinters) public onlyOwner {
        address _minter;

        for (uint256 i = 0; i < _addedMinters.length; i++) {
            _minter = _addedMinters[i];

            if (!minter[_minter]) {
                minters.push(_minter);
                minter[_minter] = true;
                emit MinterAdded(_minter);
            }
        }
    }

    function removeMinters(address[] memory _removedMinters) public onlyOwner {
        address _minter;

        for (uint256 it = 0; it < _removedMinters.length; it++) {
            _minter = _removedMinters[it];

            if (minter[_minter]) {
                minter[_minter] = false;
                emit MinterRemoved(_minter);
            }
        }

        uint256 i = 0;

        while (i < minters.length) {
            _minter = minters[i];

            if (!minter[_minter]) {
                minters[i] = minters[minters.length - 1];
                delete minters[minters.length - 1];
                // minters.length--;
            } else {
                i++;
            }
        }
    }

    function isMinter(address _addr) public view returns (bool) {
        return minter[_addr];
    }
}

contract VanaToken is ERC20, Pausable, Ownable, HasMinters {
     
    // @pram
    // _name coin Vana
    // _symbol coin VANA
    // _amount 1,000,000,000
    
    constructor(
        string memory _name,
        string memory _symbol,
        uint256 _amount
    ) ERC20(_name, _symbol) {
        setMaxSupply(_amount * 10**decimals());
        _mint(_msgSender(), maxSupply());
    }

    function maxSupply() public view returns (uint256) {
        return _maxSupply;
    }

    uint256 private _maxSupply;

    function setMaxSupply(uint256 amount) internal onlyOwner {
        _maxSupply = amount;
    }

    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    function mint(address to, uint256 amount) public virtual onlyMinter {
        require(totalSupply() + amount <= _maxSupply, "over maxSupply");
        _mint(to, amount);
    }

    function burnFrom(address account, uint256 amount) public virtual {
        uint256 currentAllowance = allowance(account, _msgSender());
        require(currentAllowance >= amount, "ERC20: burn amount exceeds allowance");
        unchecked {
            _approve(account, _msgSender(), currentAllowance - amount);
        }
        _burn(account, amount);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual override {
        super._beforeTokenTransfer(from, to, amount);

        require(!paused(), "ERC20Pausable: token transfer while paused");
    }

    function stop() public onlyOwner {
        _pause();
    }

    function start() public onlyOwner {
        _unpause();
    }
    
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"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":"_minter","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_minter","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address[]","name":"_addedMinters","type":"address[]"}],"name":"addMinters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"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":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","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":"_addr","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"minters","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_removedMinters","type":"address[]"}],"name":"removeMinters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stop","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"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"}]

60806040523480156200001157600080fd5b50604051620037ac380380620037ac833981810160405281019062000037919062000616565b8282816003908051906020019062000051929190620004d1565b5080600490805190602001906200006a929190620004d1565b5050506000600560006101000a81548160ff021916908315150217905550620000a86200009c6200011c60201b60201c565b6200012460201b60201c565b620000e3620000bc620001ea60201b60201c565b600a620000ca9190620008e1565b82620000d7919062000a1e565b620001f360201b60201c565b62000113620000f76200011c60201b60201c565b620001076200020d60201b60201c565b6200021760201b60201c565b50505062000cb2565b600033905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b620002036200038560201b60201c565b8060088190555050565b6000600854905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200028a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002819062000758565b60405180910390fd5b6200029e600083836200041660201b60201c565b8060026000828254620002b2919062000829565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200036591906200079c565b60405180910390a362000381600083836200048660201b60201c565b5050565b620003956200011c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620003bb6200048b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000414576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200040b9062000736565b60405180910390fd5b565b6200042e838383620004b560201b620010041760201c565b6200043e620004ba60201b60201c565b1562000481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000478906200077a565b60405180910390fd5b505050565b505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b505050565b6000600560009054906101000a900460ff16905090565b828054620004df9062000acc565b90600052602060002090601f0160209004810192826200050357600085556200054f565b82601f106200051e57805160ff19168380011785556200054f565b828001600101855582156200054f579182015b828111156200054e57825182559160200191906001019062000531565b5b5090506200055e919062000562565b5090565b5b808211156200057d57600081600090555060010162000563565b5090565b6000620005986200059284620007e2565b620007b9565b905082815260208101848484011115620005b757620005b662000bca565b5b620005c484828562000a96565b509392505050565b600082601f830112620005e457620005e362000bc5565b5b8151620005f684826020860162000581565b91505092915050565b600081519050620006108162000c98565b92915050565b60008060006060848603121562000632576200063162000bd4565b5b600084015167ffffffffffffffff81111562000653576200065262000bcf565b5b6200066186828701620005cc565b935050602084015167ffffffffffffffff81111562000685576200068462000bcf565b5b6200069386828701620005cc565b9250506040620006a686828701620005ff565b9150509250925092565b6000620006bf60208362000818565b9150620006cc8262000bf7565b602082019050919050565b6000620006e6601f8362000818565b9150620006f38262000c20565b602082019050919050565b60006200070d602a8362000818565b91506200071a8262000c49565b604082019050919050565b620007308162000a7f565b82525050565b600060208201905081810360008301526200075181620006b0565b9050919050565b600060208201905081810360008301526200077381620006d7565b9050919050565b600060208201905081810360008301526200079581620006fe565b9050919050565b6000602082019050620007b3600083018462000725565b92915050565b6000620007c5620007d8565b9050620007d3828262000b02565b919050565b6000604051905090565b600067ffffffffffffffff8211156200080057620007ff62000b96565b5b6200080b8262000bd9565b9050602081019050919050565b600082825260208201905092915050565b6000620008368262000a7f565b9150620008438362000a7f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200087b576200087a62000b38565b5b828201905092915050565b6000808291508390505b6001851115620008d857808604811115620008b057620008af62000b38565b5b6001851615620008c05780820291505b8081029050620008d08562000bea565b945062000890565b94509492505050565b6000620008ee8262000a7f565b9150620008fb8362000a89565b92506200092a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000932565b905092915050565b60008262000944576001905062000a17565b8162000954576000905062000a17565b81600181146200096d57600281146200097857620009ae565b600191505062000a17565b60ff8411156200098d576200098c62000b38565b5b8360020a915084821115620009a757620009a662000b38565b5b5062000a17565b5060208310610133831016604e8410600b8410161715620009e85782820a905083811115620009e257620009e162000b38565b5b62000a17565b620009f7848484600162000886565b9250905081840481111562000a115762000a1062000b38565b5b81810290505b9392505050565b600062000a2b8262000a7f565b915062000a388362000a7f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a745762000a7362000b38565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b60005b8381101562000ab657808201518184015260208101905062000a99565b8381111562000ac6576000848401525b50505050565b6000600282049050600182168062000ae557607f821691505b6020821081141562000afc5762000afb62000b67565b5b50919050565b62000b0d8262000bd9565b810181811067ffffffffffffffff8211171562000b2f5762000b2e62000b96565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b62000ca38162000a7f565b811462000caf57600080fd5b50565b612aea8062000cc26000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c8063715018a6116100de578063a457c2d711610097578063be9a655511610071578063be9a655514610497578063d5abeb01146104a1578063dd62ed3e146104bf578063f2fde38b146104ef5761018e565b8063a457c2d714610407578063a9059cbb14610437578063aa271e1a146104675761018e565b8063715018a61461035957806371e2a6571461036357806379cc67901461037f5780638623ec7b1461039b5780638da5cb5b146103cb57806395d89b41146103e95761018e565b8063395093511161014b57806342966c681161012557806342966c68146102d35780635c975abb146102ef5780635fc1964f1461030d57806370a08231146103295761018e565b806339509351146102575780633dd08c381461028757806340c10f19146102b75761018e565b806306fdde031461019357806307da68f5146101b1578063095ea7b3146101bb57806318160ddd146101eb57806323b872dd14610209578063313ce56714610239575b600080fd5b61019b61050b565b6040516101a8919061205e565b60405180910390f35b6101b961059d565b005b6101d560048036038101906101d09190611c87565b6105af565b6040516101e29190612043565b60405180910390f35b6101f36105d2565b60405161020091906122c0565b60405180910390f35b610223600480360381019061021e9190611c34565b6105dc565b6040516102309190612043565b60405180910390f35b61024161060b565b60405161024e91906122db565b60405180910390f35b610271600480360381019061026c9190611c87565b610614565b60405161027e9190612043565b60405180910390f35b6102a1600480360381019061029c9190611bc7565b61064b565b6040516102ae9190612043565b60405180910390f35b6102d160048036038101906102cc9190611c87565b61066b565b005b6102ed60048036038101906102e89190611d10565b61075c565b005b6102f7610770565b6040516103049190612043565b60405180910390f35b61032760048036038101906103229190611cc7565b610787565b005b610343600480360381019061033e9190611bc7565b610a7d565b60405161035091906122c0565b60405180910390f35b610361610ac5565b005b61037d60048036038101906103789190611cc7565b610ad9565b005b61039960048036038101906103949190611c87565b610c77565b005b6103b560048036038101906103b09190611d10565b610cf2565b6040516103c29190612028565b60405180910390f35b6103d3610d31565b6040516103e09190612028565b60405180910390f35b6103f1610d5b565b6040516103fe919061205e565b60405180910390f35b610421600480360381019061041c9190611c87565b610ded565b60405161042e9190612043565b60405180910390f35b610451600480360381019061044c9190611c87565b610e64565b60405161045e9190612043565b60405180910390f35b610481600480360381019061047c9190611bc7565b610e87565b60405161048e9190612043565b60405180910390f35b61049f610edd565b005b6104a9610eef565b6040516104b691906122c0565b60405180910390f35b6104d960048036038101906104d49190611bf4565b610ef9565b6040516104e691906122c0565b60405180910390f35b61050960048036038101906105049190611bc7565b610f80565b005b60606003805461051a90612475565b80601f016020809104026020016040519081016040528092919081815260200182805461054690612475565b80156105935780601f1061056857610100808354040283529160200191610593565b820191906000526020600020905b81548152906001019060200180831161057657829003601f168201915b5050505050905090565b6105a5611009565b6105ad611087565b565b6000806105ba6110ea565b90506105c78185856110f2565b600191505092915050565b6000600254905090565b6000806105e76110ea565b90506105f48582856112bd565b6105ff858585611349565b60019150509392505050565b60006012905090565b60008061061f6110ea565b90506106408185856106318589610ef9565b61063b9190612363565b6110f2565b600191505092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166106f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ee906121a0565b60405180910390fd5b600854816107036105d2565b61070d9190612363565b111561074e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074590612220565b60405180910390fd5b61075882826115c1565b5050565b61076d6107676110ea565b82611718565b50565b6000600560009054906101000a900460ff16905090565b61078f611009565b600080600090505b82518110156108be578281815181106107b3576107b261257f565b5b60200260200101519150600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108ab576000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a25b80806108b6906124d8565b915050610797565b5060005b600680549050811015610a7857600681815481106108e3576108e261257f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a64576006600160068054905061097591906123b9565b815481106109865761098561257f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600682815481106109c5576109c461257f565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060066001600680549050610a2191906123b9565b81548110610a3257610a3161257f565b5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a73565b8080610a6f906124d8565b9150505b6108c2565b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610acd611009565b610ad760006118e6565b565b610ae1611009565b600080600090505b8251811015610c7257828181518110610b0557610b0461257f565b5b60200260200101519150600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610c5f576006829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a25b8080610c6a906124d8565b915050610ae9565b505050565b6000610c8a83610c856110ea565b610ef9565b905081811015610ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc6906121c0565b60405180910390fd5b610ce383610cdb6110ea565b8484036110f2565b610ced8383611718565b505050565b60068181548110610d0257600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d6a90612475565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9690612475565b8015610de35780601f10610db857610100808354040283529160200191610de3565b820191906000526020600020905b815481529060010190602001808311610dc657829003601f168201915b5050505050905090565b600080610df86110ea565b90506000610e068286610ef9565b905083811015610e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4290612260565b60405180910390fd5b610e5882868684036110f2565b60019250505092915050565b600080610e6f6110ea565b9050610e7c818585611349565b600191505092915050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610ee5611009565b610eed6119ac565b565b6000600854905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f88611009565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ff8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fef906120e0565b60405180910390fd5b611001816118e6565b50565b505050565b6110116110ea565b73ffffffffffffffffffffffffffffffffffffffff1661102f610d31565b73ffffffffffffffffffffffffffffffffffffffff1614611085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107c90612180565b60405180910390fd5b565b61108f611a0f565b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586110d36110ea565b6040516110e09190612028565b60405180910390a1565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611162576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115990612240565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c990612100565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112b091906122c0565b60405180910390a3505050565b60006112c98484610ef9565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146113435781811015611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c90612120565b60405180910390fd5b61134284848484036110f2565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b090612200565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142090612080565b60405180910390fd5b611434838383611a59565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b190612140565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115a891906122c0565b60405180910390a36115bb848484611ab1565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890612280565b60405180910390fd5b61163d60008383611a59565b806002600082825461164f9190612363565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161170091906122c0565b60405180910390a361171460008383611ab1565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177f906121e0565b60405180910390fd5b61179482600083611a59565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561181a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611811906120c0565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118cd91906122c0565b60405180910390a36118e183600084611ab1565b505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6119b4611ab6565b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6119f86110ea565b604051611a059190612028565b60405180910390a1565b611a17610770565b15611a57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4e90612160565b60405180910390fd5b565b611a64838383611004565b611a6c610770565b15611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa3906122a0565b60405180910390fd5b505050565b505050565b611abe610770565b611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af4906120a0565b60405180910390fd5b565b6000611b12611b0d8461231b565b6122f6565b90508083825260208201905082856020860282011115611b3557611b346125e2565b5b60005b85811015611b655781611b4b8882611b6f565b845260208401935060208301925050600181019050611b38565b5050509392505050565b600081359050611b7e81612a86565b92915050565b600082601f830112611b9957611b986125dd565b5b8135611ba9848260208601611aff565b91505092915050565b600081359050611bc181612a9d565b92915050565b600060208284031215611bdd57611bdc6125ec565b5b6000611beb84828501611b6f565b91505092915050565b60008060408385031215611c0b57611c0a6125ec565b5b6000611c1985828601611b6f565b9250506020611c2a85828601611b6f565b9150509250929050565b600080600060608486031215611c4d57611c4c6125ec565b5b6000611c5b86828701611b6f565b9350506020611c6c86828701611b6f565b9250506040611c7d86828701611bb2565b9150509250925092565b60008060408385031215611c9e57611c9d6125ec565b5b6000611cac85828601611b6f565b9250506020611cbd85828601611bb2565b9150509250929050565b600060208284031215611cdd57611cdc6125ec565b5b600082013567ffffffffffffffff811115611cfb57611cfa6125e7565b5b611d0784828501611b84565b91505092915050565b600060208284031215611d2657611d256125ec565b5b6000611d3484828501611bb2565b91505092915050565b611d46816123ed565b82525050565b611d55816123ff565b82525050565b6000611d6682612347565b611d708185612352565b9350611d80818560208601612442565b611d89816125f1565b840191505092915050565b6000611da1602383612352565b9150611dac82612602565b604082019050919050565b6000611dc4601483612352565b9150611dcf82612651565b602082019050919050565b6000611de7602283612352565b9150611df28261267a565b604082019050919050565b6000611e0a602683612352565b9150611e15826126c9565b604082019050919050565b6000611e2d602283612352565b9150611e3882612718565b604082019050919050565b6000611e50601d83612352565b9150611e5b82612767565b602082019050919050565b6000611e73602683612352565b9150611e7e82612790565b604082019050919050565b6000611e96601083612352565b9150611ea1826127df565b602082019050919050565b6000611eb9602083612352565b9150611ec482612808565b602082019050919050565b6000611edc600e83612352565b9150611ee782612831565b602082019050919050565b6000611eff602483612352565b9150611f0a8261285a565b604082019050919050565b6000611f22602183612352565b9150611f2d826128a9565b604082019050919050565b6000611f45602583612352565b9150611f50826128f8565b604082019050919050565b6000611f68600e83612352565b9150611f7382612947565b602082019050919050565b6000611f8b602483612352565b9150611f9682612970565b604082019050919050565b6000611fae602583612352565b9150611fb9826129bf565b604082019050919050565b6000611fd1601f83612352565b9150611fdc82612a0e565b602082019050919050565b6000611ff4602a83612352565b9150611fff82612a37565b604082019050919050565b6120138161242b565b82525050565b61202281612435565b82525050565b600060208201905061203d6000830184611d3d565b92915050565b60006020820190506120586000830184611d4c565b92915050565b600060208201905081810360008301526120788184611d5b565b905092915050565b6000602082019050818103600083015261209981611d94565b9050919050565b600060208201905081810360008301526120b981611db7565b9050919050565b600060208201905081810360008301526120d981611dda565b9050919050565b600060208201905081810360008301526120f981611dfd565b9050919050565b6000602082019050818103600083015261211981611e20565b9050919050565b6000602082019050818103600083015261213981611e43565b9050919050565b6000602082019050818103600083015261215981611e66565b9050919050565b6000602082019050818103600083015261217981611e89565b9050919050565b6000602082019050818103600083015261219981611eac565b9050919050565b600060208201905081810360008301526121b981611ecf565b9050919050565b600060208201905081810360008301526121d981611ef2565b9050919050565b600060208201905081810360008301526121f981611f15565b9050919050565b6000602082019050818103600083015261221981611f38565b9050919050565b6000602082019050818103600083015261223981611f5b565b9050919050565b6000602082019050818103600083015261225981611f7e565b9050919050565b6000602082019050818103600083015261227981611fa1565b9050919050565b6000602082019050818103600083015261229981611fc4565b9050919050565b600060208201905081810360008301526122b981611fe7565b9050919050565b60006020820190506122d5600083018461200a565b92915050565b60006020820190506122f06000830184612019565b92915050565b6000612300612311565b905061230c82826124a7565b919050565b6000604051905090565b600067ffffffffffffffff821115612336576123356125ae565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600061236e8261242b565b91506123798361242b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156123ae576123ad612521565b5b828201905092915050565b60006123c48261242b565b91506123cf8361242b565b9250828210156123e2576123e1612521565b5b828203905092915050565b60006123f88261240b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612460578082015181840152602081019050612445565b8381111561246f576000848401525b50505050565b6000600282049050600182168061248d57607f821691505b602082108114156124a1576124a0612550565b5b50919050565b6124b0826125f1565b810181811067ffffffffffffffff821117156124cf576124ce6125ae565b5b80604052505050565b60006124e38261242b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561251657612515612521565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f696e76616c6964206d696e746572000000000000000000000000000000000000600082015250565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f6f766572206d6178537570706c79000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b612a8f816123ed565b8114612a9a57600080fd5b50565b612aa68161242b565b8114612ab157600080fd5b5056fea2646970667358221220fae2a110185f785175710f47873ab1e9175235b69614564d60a80e04e8fbd89164736f6c63430008060033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000000456616e6100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000556414e4120000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061018e5760003560e01c8063715018a6116100de578063a457c2d711610097578063be9a655511610071578063be9a655514610497578063d5abeb01146104a1578063dd62ed3e146104bf578063f2fde38b146104ef5761018e565b8063a457c2d714610407578063a9059cbb14610437578063aa271e1a146104675761018e565b8063715018a61461035957806371e2a6571461036357806379cc67901461037f5780638623ec7b1461039b5780638da5cb5b146103cb57806395d89b41146103e95761018e565b8063395093511161014b57806342966c681161012557806342966c68146102d35780635c975abb146102ef5780635fc1964f1461030d57806370a08231146103295761018e565b806339509351146102575780633dd08c381461028757806340c10f19146102b75761018e565b806306fdde031461019357806307da68f5146101b1578063095ea7b3146101bb57806318160ddd146101eb57806323b872dd14610209578063313ce56714610239575b600080fd5b61019b61050b565b6040516101a8919061205e565b60405180910390f35b6101b961059d565b005b6101d560048036038101906101d09190611c87565b6105af565b6040516101e29190612043565b60405180910390f35b6101f36105d2565b60405161020091906122c0565b60405180910390f35b610223600480360381019061021e9190611c34565b6105dc565b6040516102309190612043565b60405180910390f35b61024161060b565b60405161024e91906122db565b60405180910390f35b610271600480360381019061026c9190611c87565b610614565b60405161027e9190612043565b60405180910390f35b6102a1600480360381019061029c9190611bc7565b61064b565b6040516102ae9190612043565b60405180910390f35b6102d160048036038101906102cc9190611c87565b61066b565b005b6102ed60048036038101906102e89190611d10565b61075c565b005b6102f7610770565b6040516103049190612043565b60405180910390f35b61032760048036038101906103229190611cc7565b610787565b005b610343600480360381019061033e9190611bc7565b610a7d565b60405161035091906122c0565b60405180910390f35b610361610ac5565b005b61037d60048036038101906103789190611cc7565b610ad9565b005b61039960048036038101906103949190611c87565b610c77565b005b6103b560048036038101906103b09190611d10565b610cf2565b6040516103c29190612028565b60405180910390f35b6103d3610d31565b6040516103e09190612028565b60405180910390f35b6103f1610d5b565b6040516103fe919061205e565b60405180910390f35b610421600480360381019061041c9190611c87565b610ded565b60405161042e9190612043565b60405180910390f35b610451600480360381019061044c9190611c87565b610e64565b60405161045e9190612043565b60405180910390f35b610481600480360381019061047c9190611bc7565b610e87565b60405161048e9190612043565b60405180910390f35b61049f610edd565b005b6104a9610eef565b6040516104b691906122c0565b60405180910390f35b6104d960048036038101906104d49190611bf4565b610ef9565b6040516104e691906122c0565b60405180910390f35b61050960048036038101906105049190611bc7565b610f80565b005b60606003805461051a90612475565b80601f016020809104026020016040519081016040528092919081815260200182805461054690612475565b80156105935780601f1061056857610100808354040283529160200191610593565b820191906000526020600020905b81548152906001019060200180831161057657829003601f168201915b5050505050905090565b6105a5611009565b6105ad611087565b565b6000806105ba6110ea565b90506105c78185856110f2565b600191505092915050565b6000600254905090565b6000806105e76110ea565b90506105f48582856112bd565b6105ff858585611349565b60019150509392505050565b60006012905090565b60008061061f6110ea565b90506106408185856106318589610ef9565b61063b9190612363565b6110f2565b600191505092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166106f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ee906121a0565b60405180910390fd5b600854816107036105d2565b61070d9190612363565b111561074e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074590612220565b60405180910390fd5b61075882826115c1565b5050565b61076d6107676110ea565b82611718565b50565b6000600560009054906101000a900460ff16905090565b61078f611009565b600080600090505b82518110156108be578281815181106107b3576107b261257f565b5b60200260200101519150600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108ab576000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a25b80806108b6906124d8565b915050610797565b5060005b600680549050811015610a7857600681815481106108e3576108e261257f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a64576006600160068054905061097591906123b9565b815481106109865761098561257f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600682815481106109c5576109c461257f565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060066001600680549050610a2191906123b9565b81548110610a3257610a3161257f565b5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610a73565b8080610a6f906124d8565b9150505b6108c2565b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610acd611009565b610ad760006118e6565b565b610ae1611009565b600080600090505b8251811015610c7257828181518110610b0557610b0461257f565b5b60200260200101519150600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610c5f576006829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a25b8080610c6a906124d8565b915050610ae9565b505050565b6000610c8a83610c856110ea565b610ef9565b905081811015610ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc6906121c0565b60405180910390fd5b610ce383610cdb6110ea565b8484036110f2565b610ced8383611718565b505050565b60068181548110610d0257600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d6a90612475565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9690612475565b8015610de35780601f10610db857610100808354040283529160200191610de3565b820191906000526020600020905b815481529060010190602001808311610dc657829003601f168201915b5050505050905090565b600080610df86110ea565b90506000610e068286610ef9565b905083811015610e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4290612260565b60405180910390fd5b610e5882868684036110f2565b60019250505092915050565b600080610e6f6110ea565b9050610e7c818585611349565b600191505092915050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610ee5611009565b610eed6119ac565b565b6000600854905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f88611009565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ff8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fef906120e0565b60405180910390fd5b611001816118e6565b50565b505050565b6110116110ea565b73ffffffffffffffffffffffffffffffffffffffff1661102f610d31565b73ffffffffffffffffffffffffffffffffffffffff1614611085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107c90612180565b60405180910390fd5b565b61108f611a0f565b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586110d36110ea565b6040516110e09190612028565b60405180910390a1565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611162576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115990612240565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c990612100565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112b091906122c0565b60405180910390a3505050565b60006112c98484610ef9565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146113435781811015611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c90612120565b60405180910390fd5b61134284848484036110f2565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b090612200565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142090612080565b60405180910390fd5b611434838383611a59565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b190612140565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115a891906122c0565b60405180910390a36115bb848484611ab1565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890612280565b60405180910390fd5b61163d60008383611a59565b806002600082825461164f9190612363565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161170091906122c0565b60405180910390a361171460008383611ab1565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177f906121e0565b60405180910390fd5b61179482600083611a59565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561181a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611811906120c0565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118cd91906122c0565b60405180910390a36118e183600084611ab1565b505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6119b4611ab6565b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6119f86110ea565b604051611a059190612028565b60405180910390a1565b611a17610770565b15611a57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4e90612160565b60405180910390fd5b565b611a64838383611004565b611a6c610770565b15611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa3906122a0565b60405180910390fd5b505050565b505050565b611abe610770565b611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af4906120a0565b60405180910390fd5b565b6000611b12611b0d8461231b565b6122f6565b90508083825260208201905082856020860282011115611b3557611b346125e2565b5b60005b85811015611b655781611b4b8882611b6f565b845260208401935060208301925050600181019050611b38565b5050509392505050565b600081359050611b7e81612a86565b92915050565b600082601f830112611b9957611b986125dd565b5b8135611ba9848260208601611aff565b91505092915050565b600081359050611bc181612a9d565b92915050565b600060208284031215611bdd57611bdc6125ec565b5b6000611beb84828501611b6f565b91505092915050565b60008060408385031215611c0b57611c0a6125ec565b5b6000611c1985828601611b6f565b9250506020611c2a85828601611b6f565b9150509250929050565b600080600060608486031215611c4d57611c4c6125ec565b5b6000611c5b86828701611b6f565b9350506020611c6c86828701611b6f565b9250506040611c7d86828701611bb2565b9150509250925092565b60008060408385031215611c9e57611c9d6125ec565b5b6000611cac85828601611b6f565b9250506020611cbd85828601611bb2565b9150509250929050565b600060208284031215611cdd57611cdc6125ec565b5b600082013567ffffffffffffffff811115611cfb57611cfa6125e7565b5b611d0784828501611b84565b91505092915050565b600060208284031215611d2657611d256125ec565b5b6000611d3484828501611bb2565b91505092915050565b611d46816123ed565b82525050565b611d55816123ff565b82525050565b6000611d6682612347565b611d708185612352565b9350611d80818560208601612442565b611d89816125f1565b840191505092915050565b6000611da1602383612352565b9150611dac82612602565b604082019050919050565b6000611dc4601483612352565b9150611dcf82612651565b602082019050919050565b6000611de7602283612352565b9150611df28261267a565b604082019050919050565b6000611e0a602683612352565b9150611e15826126c9565b604082019050919050565b6000611e2d602283612352565b9150611e3882612718565b604082019050919050565b6000611e50601d83612352565b9150611e5b82612767565b602082019050919050565b6000611e73602683612352565b9150611e7e82612790565b604082019050919050565b6000611e96601083612352565b9150611ea1826127df565b602082019050919050565b6000611eb9602083612352565b9150611ec482612808565b602082019050919050565b6000611edc600e83612352565b9150611ee782612831565b602082019050919050565b6000611eff602483612352565b9150611f0a8261285a565b604082019050919050565b6000611f22602183612352565b9150611f2d826128a9565b604082019050919050565b6000611f45602583612352565b9150611f50826128f8565b604082019050919050565b6000611f68600e83612352565b9150611f7382612947565b602082019050919050565b6000611f8b602483612352565b9150611f9682612970565b604082019050919050565b6000611fae602583612352565b9150611fb9826129bf565b604082019050919050565b6000611fd1601f83612352565b9150611fdc82612a0e565b602082019050919050565b6000611ff4602a83612352565b9150611fff82612a37565b604082019050919050565b6120138161242b565b82525050565b61202281612435565b82525050565b600060208201905061203d6000830184611d3d565b92915050565b60006020820190506120586000830184611d4c565b92915050565b600060208201905081810360008301526120788184611d5b565b905092915050565b6000602082019050818103600083015261209981611d94565b9050919050565b600060208201905081810360008301526120b981611db7565b9050919050565b600060208201905081810360008301526120d981611dda565b9050919050565b600060208201905081810360008301526120f981611dfd565b9050919050565b6000602082019050818103600083015261211981611e20565b9050919050565b6000602082019050818103600083015261213981611e43565b9050919050565b6000602082019050818103600083015261215981611e66565b9050919050565b6000602082019050818103600083015261217981611e89565b9050919050565b6000602082019050818103600083015261219981611eac565b9050919050565b600060208201905081810360008301526121b981611ecf565b9050919050565b600060208201905081810360008301526121d981611ef2565b9050919050565b600060208201905081810360008301526121f981611f15565b9050919050565b6000602082019050818103600083015261221981611f38565b9050919050565b6000602082019050818103600083015261223981611f5b565b9050919050565b6000602082019050818103600083015261225981611f7e565b9050919050565b6000602082019050818103600083015261227981611fa1565b9050919050565b6000602082019050818103600083015261229981611fc4565b9050919050565b600060208201905081810360008301526122b981611fe7565b9050919050565b60006020820190506122d5600083018461200a565b92915050565b60006020820190506122f06000830184612019565b92915050565b6000612300612311565b905061230c82826124a7565b919050565b6000604051905090565b600067ffffffffffffffff821115612336576123356125ae565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600061236e8261242b565b91506123798361242b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156123ae576123ad612521565b5b828201905092915050565b60006123c48261242b565b91506123cf8361242b565b9250828210156123e2576123e1612521565b5b828203905092915050565b60006123f88261240b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612460578082015181840152602081019050612445565b8381111561246f576000848401525b50505050565b6000600282049050600182168061248d57607f821691505b602082108114156124a1576124a0612550565b5b50919050565b6124b0826125f1565b810181811067ffffffffffffffff821117156124cf576124ce6125ae565b5b80604052505050565b60006124e38261242b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561251657612515612521565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f696e76616c6964206d696e746572000000000000000000000000000000000000600082015250565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f6f766572206d6178537570706c79000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b612a8f816123ed565b8114612a9a57600080fd5b50565b612aa68161242b565b8114612ab157600080fd5b5056fea2646970667358221220fae2a110185f785175710f47873ab1e9175235b69614564d60a80e04e8fbd89164736f6c63430008060033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000000456616e6100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000556414e4120000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Vana
Arg [1] : _symbol (string): VANA
Arg [2] : _amount (uint256): 1000000000

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [4] : 56616e6100000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [6] : 56414e4120000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

24832:1724:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12006:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26416:60;;;:::i;:::-;;14357:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13126:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15138:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12968:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15842:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23426:38;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25574:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25475:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2566:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23985:733;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13297:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5431:103;;;:::i;:::-;;23579:398;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25760:368;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23395:24;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4783:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12225:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16583:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13630:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24726:99;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26484:63;;;:::i;:::-;;25242:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13886:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5689:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12006:100;12060:13;12093:5;12086:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12006:100;:::o;26416:60::-;4669:13;:11;:13::i;:::-;26460:8:::1;:6;:8::i;:::-;26416:60::o:0;14357:201::-;14440:4;14457:13;14473:12;:10;:12::i;:::-;14457:28;;14496:32;14505:5;14512:7;14521:6;14496:8;:32::i;:::-;14546:4;14539:11;;;14357:201;;;;:::o;13126:108::-;13187:7;13214:12;;13207:19;;13126:108;:::o;15138:295::-;15269:4;15286:15;15304:12;:10;:12::i;:::-;15286:30;;15327:38;15343:4;15349:7;15358:6;15327:15;:38::i;:::-;15376:27;15386:4;15392:2;15396:6;15376:9;:27::i;:::-;15421:4;15414:11;;;15138:295;;;;;:::o;12968:93::-;13026:5;13051:2;13044:9;;12968:93;:::o;15842:238::-;15930:4;15947:13;15963:12;:10;:12::i;:::-;15947:28;;15986:64;15995:5;16002:7;16039:10;16011:25;16021:5;16028:7;16011:9;:25::i;:::-;:38;;;;:::i;:::-;15986:8;:64::i;:::-;16068:4;16061:11;;;15842:238;;;;:::o;23426:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;25574:178::-;23514:6;:18;23521:10;23514:18;;;;;;;;;;;;;;;;;;;;;;;;;23506:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;25687:10:::1;;25677:6;25661:13;:11;:13::i;:::-;:22;;;;:::i;:::-;:36;;25653:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;25727:17;25733:2;25737:6;25727:5;:17::i;:::-;25574:178:::0;;:::o;25475:91::-;25531:27;25537:12;:10;:12::i;:::-;25551:6;25531:5;:27::i;:::-;25475:91;:::o;2566:86::-;2613:4;2637:7;;;;;;;;;;;2630:14;;2566:86;:::o;23985:733::-;4669:13;:11;:13::i;:::-;24070:15:::1;24103:10:::0;24116:1:::1;24103:14;;24098:253;24124:15;:22;24119:2;:27;24098:253;;;24179:15;24195:2;24179:19;;;;;;;;:::i;:::-;;;;;;;;24169:29;;24219:6;:15;24226:7;24219:15;;;;;;;;;;;;;;;;;;;;;;;;;24215:125;;;24273:5;24255:6;:15;24262:7;24255:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;24316:7;24302:22;;;;;;;;;;;;24215:125;24148:4;;;;;:::i;:::-;;;;24098:253;;;;24363:9;24389:322;24400:7;:14;;;;24396:1;:18;24389:322;;;24441:7;24449:1;24441:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24431:20;;24473:6;:15;24480:7;24473:15;;;;;;;;;;;;;;;;;;;;;;;;;24468:232;;24522:7;24547:1;24530:7;:14;;;;:18;;;;:::i;:::-;24522:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24509:7;24517:1;24509:10;;;;;;;;:::i;:::-;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;24575:7;24600:1;24583:7;:14;;;;:18;;;;:::i;:::-;24575:27;;;;;;;;:::i;:::-;;;;;;;;;;24568:34;;;;;;;;;;;24468:232;;;24681:3;;;;;:::i;:::-;;;;24468:232;24389:322;;;24059:659;;23985:733:::0;:::o;13297:127::-;13371:7;13398:9;:18;13408:7;13398:18;;;;;;;;;;;;;;;;13391:25;;13297:127;;;:::o;5431:103::-;4669:13;:11;:13::i;:::-;5496:30:::1;5523:1;5496:18;:30::i;:::-;5431:103::o:0;23579:398::-;4669:13;:11;:13::i;:::-;23659:15:::1;23692:9:::0;23704:1:::1;23692:13;;23687:283;23711:13;:20;23707:1;:24;23687:283;;;23763:13;23777:1;23763:16;;;;;;;;:::i;:::-;;;;;;;;23753:26;;23801:6;:15;23808:7;23801:15;;;;;;;;;;;;;;;;;;;;;;;;;23796:163;;23837:7;23850;23837:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23895:4;23877:6;:15;23884:7;23877:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;23935:7;23923:20;;;;;;;;;;;;23796:163;23733:3;;;;;:::i;:::-;;;;23687:283;;;;23648:329;23579:398:::0;:::o;25760:368::-;25837:24;25864:32;25874:7;25883:12;:10;:12::i;:::-;25864:9;:32::i;:::-;25837:59;;25935:6;25915:16;:26;;25907:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;26018:58;26027:7;26036:12;:10;:12::i;:::-;26069:6;26050:16;:25;26018:8;:58::i;:::-;26098:22;26104:7;26113:6;26098:5;:22::i;:::-;25826:302;25760:368;;:::o;23395:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4783:87::-;4829:7;4856:6;;;;;;;;;;;4849:13;;4783:87;:::o;12225:104::-;12281:13;12314:7;12307:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12225:104;:::o;16583:436::-;16676:4;16693:13;16709:12;:10;:12::i;:::-;16693:28;;16732:24;16759:25;16769:5;16776:7;16759:9;:25::i;:::-;16732:52;;16823:15;16803:16;:35;;16795:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;16916:60;16925:5;16932:7;16960:15;16941:16;:34;16916:8;:60::i;:::-;17007:4;17000:11;;;;16583:436;;;;:::o;13630:193::-;13709:4;13726:13;13742:12;:10;:12::i;:::-;13726:28;;13765;13775:5;13782:2;13786:6;13765:9;:28::i;:::-;13811:4;13804:11;;;13630:193;;;;:::o;24726:99::-;24780:4;24804:6;:13;24811:5;24804:13;;;;;;;;;;;;;;;;;;;;;;;;;24797:20;;24726:99;;;:::o;26484:63::-;4669:13;:11;:13::i;:::-;26529:10:::1;:8;:10::i;:::-;26484:63::o:0;25242:87::-;25284:7;25311:10;;25304:17;;25242:87;:::o;13886:151::-;13975:7;14002:11;:18;14014:5;14002:18;;;;;;;;;;;;;;;:27;14021:7;14002:27;;;;;;;;;;;;;;;;13995:34;;13886:151;;;;:::o;5689:201::-;4669:13;:11;:13::i;:::-;5798:1:::1;5778:22;;:8;:22;;;;5770:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5854:28;5873:8;5854:18;:28::i;:::-;5689:201:::0;:::o;22334:125::-;;;;:::o;4948:132::-;5023:12;:10;:12::i;:::-;5012:23;;:7;:5;:7::i;:::-;:23;;;5004:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4948:132::o;3162:118::-;2171:19;:17;:19::i;:::-;3232:4:::1;3222:7;;:14;;;;;;;;;;;;;;;;;;3252:20;3259:12;:10;:12::i;:::-;3252:20;;;;;;:::i;:::-;;;;;;;;3162:118::o:0;679:98::-;732:7;759:10;752:17;;679:98;:::o;20610:380::-;20763:1;20746:19;;:5;:19;;;;20738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20844:1;20825:21;;:7;:21;;;;20817:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20928:6;20898:11;:18;20910:5;20898:18;;;;;;;;;;;;;;;:27;20917:7;20898:27;;;;;;;;;;;;;;;:36;;;;20966:7;20950:32;;20959:5;20950:32;;;20975:6;20950:32;;;;;;:::i;:::-;;;;;;;;20610:380;;;:::o;21281:453::-;21416:24;21443:25;21453:5;21460:7;21443:9;:25::i;:::-;21416:52;;21503:17;21483:16;:37;21479:248;;21565:6;21545:16;:26;;21537:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21649:51;21658:5;21665:7;21693:6;21674:16;:25;21649:8;:51::i;:::-;21479:248;21405:329;21281:453;;;:::o;17489:840::-;17636:1;17620:18;;:4;:18;;;;17612:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17713:1;17699:16;;:2;:16;;;;17691:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17768:38;17789:4;17795:2;17799:6;17768:20;:38::i;:::-;17819:19;17841:9;:15;17851:4;17841:15;;;;;;;;;;;;;;;;17819:37;;17890:6;17875:11;:21;;17867:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;18007:6;17993:11;:20;17975:9;:15;17985:4;17975:15;;;;;;;;;;;;;;;:38;;;;18210:6;18193:9;:13;18203:2;18193:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;18260:2;18245:26;;18254:4;18245:26;;;18264:6;18245:26;;;;;;:::i;:::-;;;;;;;;18284:37;18304:4;18310:2;18314:6;18284:19;:37::i;:::-;17601:728;17489:840;;;:::o;18616:548::-;18719:1;18700:21;;:7;:21;;;;18692:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;18770:49;18799:1;18803:7;18812:6;18770:20;:49::i;:::-;18848:6;18832:12;;:22;;;;;;;:::i;:::-;;;;;;;;19025:6;19003:9;:18;19013:7;19003:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;19079:7;19058:37;;19075:1;19058:37;;;19088:6;19058:37;;;;;;:::i;:::-;;;;;;;;19108:48;19136:1;19140:7;19149:6;19108:19;:48::i;:::-;18616:548;;:::o;19497:675::-;19600:1;19581:21;;:7;:21;;;;19573:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19653:49;19674:7;19691:1;19695:6;19653:20;:49::i;:::-;19715:22;19740:9;:18;19750:7;19740:18;;;;;;;;;;;;;;;;19715:43;;19795:6;19777:14;:24;;19769:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;19914:6;19897:14;:23;19876:9;:18;19886:7;19876:18;;;;;;;;;;;;;;;:44;;;;20031:6;20015:12;;:22;;;;;;;;;;;20092:1;20066:37;;20075:7;20066:37;;;20096:6;20066:37;;;;;;:::i;:::-;;;;;;;;20116:48;20136:7;20153:1;20157:6;20116:19;:48::i;:::-;19562:610;19497:675;;:::o;6050:191::-;6124:16;6143:6;;;;;;;;;;;6124:25;;6169:8;6160:6;;:17;;;;;;;;;;;;;;;;;;6224:8;6193:40;;6214:8;6193:40;;;;;;;;;;;;6113:128;6050:191;:::o;3421:120::-;2430:16;:14;:16::i;:::-;3490:5:::1;3480:7;;:15;;;;;;;;;;;;;;;;;;3511:22;3520:12;:10;:12::i;:::-;3511:22;;;;;;:::i;:::-;;;;;;;;3421:120::o:0;2725:108::-;2796:8;:6;:8::i;:::-;2795:9;2787:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2725:108::o;26136:272::-;26279:44;26306:4;26312:2;26316:6;26279:26;:44::i;:::-;26345:8;:6;:8::i;:::-;26344:9;26336:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;26136:272;;;:::o;23063:124::-;;;;:::o;2910:108::-;2977:8;:6;:8::i;:::-;2969:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2910:108::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;404:79;;:::i;:::-;350:2;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;804:87;;;;:::o;914:370::-;985:5;1034:3;1027:4;1019:6;1015:17;1011:27;1001:2;;1042:79;;:::i;:::-;1001:2;1159:6;1146:20;1184:94;1274:3;1266:6;1259:4;1251:6;1247:17;1184:94;:::i;:::-;1175:103;;991:293;;;;;:::o;1290:139::-;1336:5;1374:6;1361:20;1352:29;;1390:33;1417:5;1390:33;:::i;:::-;1342:87;;;;:::o;1435:329::-;1494:6;1543:2;1531:9;1522:7;1518:23;1514:32;1511:2;;;1549:79;;:::i;:::-;1511:2;1669:1;1694:53;1739:7;1730:6;1719:9;1715:22;1694:53;:::i;:::-;1684:63;;1640:117;1501:263;;;;:::o;1770:474::-;1838:6;1846;1895:2;1883:9;1874:7;1870:23;1866:32;1863:2;;;1901:79;;:::i;:::-;1863:2;2021:1;2046:53;2091:7;2082:6;2071:9;2067:22;2046:53;:::i;:::-;2036:63;;1992:117;2148:2;2174:53;2219:7;2210:6;2199:9;2195:22;2174:53;:::i;:::-;2164:63;;2119:118;1853:391;;;;;:::o;2250:619::-;2327:6;2335;2343;2392:2;2380:9;2371:7;2367:23;2363:32;2360:2;;;2398:79;;:::i;:::-;2360:2;2518:1;2543:53;2588:7;2579:6;2568:9;2564:22;2543:53;:::i;:::-;2533:63;;2489:117;2645:2;2671:53;2716:7;2707:6;2696:9;2692:22;2671:53;:::i;:::-;2661:63;;2616:118;2773:2;2799:53;2844:7;2835:6;2824:9;2820:22;2799:53;:::i;:::-;2789:63;;2744:118;2350:519;;;;;:::o;2875:474::-;2943:6;2951;3000:2;2988:9;2979:7;2975:23;2971:32;2968:2;;;3006:79;;:::i;:::-;2968:2;3126:1;3151:53;3196:7;3187:6;3176:9;3172:22;3151:53;:::i;:::-;3141:63;;3097:117;3253:2;3279:53;3324:7;3315:6;3304:9;3300:22;3279:53;:::i;:::-;3269:63;;3224:118;2958:391;;;;;:::o;3355:539::-;3439:6;3488:2;3476:9;3467:7;3463:23;3459:32;3456:2;;;3494:79;;:::i;:::-;3456:2;3642:1;3631:9;3627:17;3614:31;3672:18;3664:6;3661:30;3658:2;;;3694:79;;:::i;:::-;3658:2;3799:78;3869:7;3860:6;3849:9;3845:22;3799:78;:::i;:::-;3789:88;;3585:302;3446:448;;;;:::o;3900:329::-;3959:6;4008:2;3996:9;3987:7;3983:23;3979:32;3976:2;;;4014:79;;:::i;:::-;3976:2;4134:1;4159:53;4204:7;4195:6;4184:9;4180:22;4159:53;:::i;:::-;4149:63;;4105:117;3966:263;;;;:::o;4235:118::-;4322:24;4340:5;4322:24;:::i;:::-;4317:3;4310:37;4300:53;;:::o;4359:109::-;4440:21;4455:5;4440:21;:::i;:::-;4435:3;4428:34;4418:50;;:::o;4474:364::-;4562:3;4590:39;4623:5;4590:39;:::i;:::-;4645:71;4709:6;4704:3;4645:71;:::i;:::-;4638:78;;4725:52;4770:6;4765:3;4758:4;4751:5;4747:16;4725:52;:::i;:::-;4802:29;4824:6;4802:29;:::i;:::-;4797:3;4793:39;4786:46;;4566:272;;;;;:::o;4844:366::-;4986:3;5007:67;5071:2;5066:3;5007:67;:::i;:::-;5000:74;;5083:93;5172:3;5083:93;:::i;:::-;5201:2;5196:3;5192:12;5185:19;;4990:220;;;:::o;5216:366::-;5358:3;5379:67;5443:2;5438:3;5379:67;:::i;:::-;5372:74;;5455:93;5544:3;5455:93;:::i;:::-;5573:2;5568:3;5564:12;5557:19;;5362:220;;;:::o;5588:366::-;5730:3;5751:67;5815:2;5810:3;5751:67;:::i;:::-;5744:74;;5827:93;5916:3;5827:93;:::i;:::-;5945:2;5940:3;5936:12;5929:19;;5734:220;;;:::o;5960:366::-;6102:3;6123:67;6187:2;6182:3;6123:67;:::i;:::-;6116:74;;6199:93;6288:3;6199:93;:::i;:::-;6317:2;6312:3;6308:12;6301:19;;6106:220;;;:::o;6332:366::-;6474:3;6495:67;6559:2;6554:3;6495:67;:::i;:::-;6488:74;;6571:93;6660:3;6571:93;:::i;:::-;6689:2;6684:3;6680:12;6673:19;;6478:220;;;:::o;6704:366::-;6846:3;6867:67;6931:2;6926:3;6867:67;:::i;:::-;6860:74;;6943:93;7032:3;6943:93;:::i;:::-;7061:2;7056:3;7052:12;7045:19;;6850:220;;;:::o;7076:366::-;7218:3;7239:67;7303:2;7298:3;7239:67;:::i;:::-;7232:74;;7315:93;7404:3;7315:93;:::i;:::-;7433:2;7428:3;7424:12;7417:19;;7222:220;;;:::o;7448:366::-;7590:3;7611:67;7675:2;7670:3;7611:67;:::i;:::-;7604:74;;7687:93;7776:3;7687:93;:::i;:::-;7805:2;7800:3;7796:12;7789:19;;7594:220;;;:::o;7820:366::-;7962:3;7983:67;8047:2;8042:3;7983:67;:::i;:::-;7976:74;;8059:93;8148:3;8059:93;:::i;:::-;8177:2;8172:3;8168:12;8161:19;;7966:220;;;:::o;8192:366::-;8334:3;8355:67;8419:2;8414:3;8355:67;:::i;:::-;8348:74;;8431:93;8520:3;8431:93;:::i;:::-;8549:2;8544:3;8540:12;8533:19;;8338:220;;;:::o;8564:366::-;8706:3;8727:67;8791:2;8786:3;8727:67;:::i;:::-;8720:74;;8803:93;8892:3;8803:93;:::i;:::-;8921:2;8916:3;8912:12;8905:19;;8710:220;;;:::o;8936:366::-;9078:3;9099:67;9163:2;9158:3;9099:67;:::i;:::-;9092:74;;9175:93;9264:3;9175:93;:::i;:::-;9293:2;9288:3;9284:12;9277:19;;9082:220;;;:::o;9308:366::-;9450:3;9471:67;9535:2;9530:3;9471:67;:::i;:::-;9464:74;;9547:93;9636:3;9547:93;:::i;:::-;9665:2;9660:3;9656:12;9649:19;;9454:220;;;:::o;9680:366::-;9822:3;9843:67;9907:2;9902:3;9843:67;:::i;:::-;9836:74;;9919:93;10008:3;9919:93;:::i;:::-;10037:2;10032:3;10028:12;10021:19;;9826:220;;;:::o;10052:366::-;10194:3;10215:67;10279:2;10274:3;10215:67;:::i;:::-;10208:74;;10291:93;10380:3;10291:93;:::i;:::-;10409:2;10404:3;10400:12;10393:19;;10198:220;;;:::o;10424:366::-;10566:3;10587:67;10651:2;10646:3;10587:67;:::i;:::-;10580:74;;10663:93;10752:3;10663:93;:::i;:::-;10781:2;10776:3;10772:12;10765:19;;10570:220;;;:::o;10796:366::-;10938:3;10959:67;11023:2;11018:3;10959:67;:::i;:::-;10952:74;;11035:93;11124:3;11035:93;:::i;:::-;11153:2;11148:3;11144:12;11137:19;;10942:220;;;:::o;11168:366::-;11310:3;11331:67;11395:2;11390:3;11331:67;:::i;:::-;11324:74;;11407:93;11496:3;11407:93;:::i;:::-;11525:2;11520:3;11516:12;11509:19;;11314:220;;;:::o;11540:118::-;11627:24;11645:5;11627:24;:::i;:::-;11622:3;11615:37;11605:53;;:::o;11664:112::-;11747:22;11763:5;11747:22;:::i;:::-;11742:3;11735:35;11725:51;;:::o;11782:222::-;11875:4;11913:2;11902:9;11898:18;11890:26;;11926:71;11994:1;11983:9;11979:17;11970:6;11926:71;:::i;:::-;11880:124;;;;:::o;12010:210::-;12097:4;12135:2;12124:9;12120:18;12112:26;;12148:65;12210:1;12199:9;12195:17;12186:6;12148:65;:::i;:::-;12102:118;;;;:::o;12226:313::-;12339:4;12377:2;12366:9;12362:18;12354:26;;12426:9;12420:4;12416:20;12412:1;12401:9;12397:17;12390:47;12454:78;12527:4;12518:6;12454:78;:::i;:::-;12446:86;;12344:195;;;;:::o;12545:419::-;12711:4;12749:2;12738:9;12734:18;12726:26;;12798:9;12792:4;12788:20;12784:1;12773:9;12769:17;12762:47;12826:131;12952:4;12826:131;:::i;:::-;12818:139;;12716:248;;;:::o;12970:419::-;13136:4;13174:2;13163:9;13159:18;13151:26;;13223:9;13217:4;13213:20;13209:1;13198:9;13194:17;13187:47;13251:131;13377:4;13251:131;:::i;:::-;13243:139;;13141:248;;;:::o;13395:419::-;13561:4;13599:2;13588:9;13584:18;13576:26;;13648:9;13642:4;13638:20;13634:1;13623:9;13619:17;13612:47;13676:131;13802:4;13676:131;:::i;:::-;13668:139;;13566:248;;;:::o;13820:419::-;13986:4;14024:2;14013:9;14009:18;14001:26;;14073:9;14067:4;14063:20;14059:1;14048:9;14044:17;14037:47;14101:131;14227:4;14101:131;:::i;:::-;14093:139;;13991:248;;;:::o;14245:419::-;14411:4;14449:2;14438:9;14434:18;14426:26;;14498:9;14492:4;14488:20;14484:1;14473:9;14469:17;14462:47;14526:131;14652:4;14526:131;:::i;:::-;14518:139;;14416:248;;;:::o;14670:419::-;14836:4;14874:2;14863:9;14859:18;14851:26;;14923:9;14917:4;14913:20;14909:1;14898:9;14894:17;14887:47;14951:131;15077:4;14951:131;:::i;:::-;14943:139;;14841:248;;;:::o;15095:419::-;15261:4;15299:2;15288:9;15284:18;15276:26;;15348:9;15342:4;15338:20;15334:1;15323:9;15319:17;15312:47;15376:131;15502:4;15376:131;:::i;:::-;15368:139;;15266:248;;;:::o;15520:419::-;15686:4;15724:2;15713:9;15709:18;15701:26;;15773:9;15767:4;15763:20;15759:1;15748:9;15744:17;15737:47;15801:131;15927:4;15801:131;:::i;:::-;15793:139;;15691:248;;;:::o;15945:419::-;16111:4;16149:2;16138:9;16134:18;16126:26;;16198:9;16192:4;16188:20;16184:1;16173:9;16169:17;16162:47;16226:131;16352:4;16226:131;:::i;:::-;16218:139;;16116:248;;;:::o;16370:419::-;16536:4;16574:2;16563:9;16559:18;16551:26;;16623:9;16617:4;16613:20;16609:1;16598:9;16594:17;16587:47;16651:131;16777:4;16651:131;:::i;:::-;16643:139;;16541:248;;;:::o;16795:419::-;16961:4;16999:2;16988:9;16984:18;16976:26;;17048:9;17042:4;17038:20;17034:1;17023:9;17019:17;17012:47;17076:131;17202:4;17076:131;:::i;:::-;17068:139;;16966:248;;;:::o;17220:419::-;17386:4;17424:2;17413:9;17409:18;17401:26;;17473:9;17467:4;17463:20;17459:1;17448:9;17444:17;17437:47;17501:131;17627:4;17501:131;:::i;:::-;17493:139;;17391:248;;;:::o;17645:419::-;17811:4;17849:2;17838:9;17834:18;17826:26;;17898:9;17892:4;17888:20;17884:1;17873:9;17869:17;17862:47;17926:131;18052:4;17926:131;:::i;:::-;17918:139;;17816:248;;;:::o;18070:419::-;18236:4;18274:2;18263:9;18259:18;18251:26;;18323:9;18317:4;18313:20;18309:1;18298:9;18294:17;18287:47;18351:131;18477:4;18351:131;:::i;:::-;18343:139;;18241:248;;;:::o;18495:419::-;18661:4;18699:2;18688:9;18684:18;18676:26;;18748:9;18742:4;18738:20;18734:1;18723:9;18719:17;18712:47;18776:131;18902:4;18776:131;:::i;:::-;18768:139;;18666:248;;;:::o;18920:419::-;19086:4;19124:2;19113:9;19109:18;19101:26;;19173:9;19167:4;19163:20;19159:1;19148:9;19144:17;19137:47;19201:131;19327:4;19201:131;:::i;:::-;19193:139;;19091:248;;;:::o;19345:419::-;19511:4;19549:2;19538:9;19534:18;19526:26;;19598:9;19592:4;19588:20;19584:1;19573:9;19569:17;19562:47;19626:131;19752:4;19626:131;:::i;:::-;19618:139;;19516:248;;;:::o;19770:419::-;19936:4;19974:2;19963:9;19959:18;19951:26;;20023:9;20017:4;20013:20;20009:1;19998:9;19994:17;19987:47;20051:131;20177:4;20051:131;:::i;:::-;20043:139;;19941:248;;;:::o;20195:222::-;20288:4;20326:2;20315:9;20311:18;20303:26;;20339:71;20407:1;20396:9;20392:17;20383:6;20339:71;:::i;:::-;20293:124;;;;:::o;20423:214::-;20512:4;20550:2;20539:9;20535:18;20527:26;;20563:67;20627:1;20616:9;20612:17;20603:6;20563:67;:::i;:::-;20517:120;;;;:::o;20643:129::-;20677:6;20704:20;;:::i;:::-;20694:30;;20733:33;20761:4;20753:6;20733:33;:::i;:::-;20684:88;;;:::o;20778:75::-;20811:6;20844:2;20838:9;20828:19;;20818:35;:::o;20859:311::-;20936:4;21026:18;21018:6;21015:30;21012:2;;;21048:18;;:::i;:::-;21012:2;21098:4;21090:6;21086:17;21078:25;;21158:4;21152;21148:15;21140:23;;20941:229;;;:::o;21176:99::-;21228:6;21262:5;21256:12;21246:22;;21235:40;;;:::o;21281:169::-;21365:11;21399:6;21394:3;21387:19;21439:4;21434:3;21430:14;21415:29;;21377:73;;;;:::o;21456:305::-;21496:3;21515:20;21533:1;21515:20;:::i;:::-;21510:25;;21549:20;21567:1;21549:20;:::i;:::-;21544:25;;21703:1;21635:66;21631:74;21628:1;21625:81;21622:2;;;21709:18;;:::i;:::-;21622:2;21753:1;21750;21746:9;21739:16;;21500:261;;;;:::o;21767:191::-;21807:4;21827:20;21845:1;21827:20;:::i;:::-;21822:25;;21861:20;21879:1;21861:20;:::i;:::-;21856:25;;21900:1;21897;21894:8;21891:2;;;21905:18;;:::i;:::-;21891:2;21950:1;21947;21943:9;21935:17;;21812:146;;;;:::o;21964:96::-;22001:7;22030:24;22048:5;22030:24;:::i;:::-;22019:35;;22009:51;;;:::o;22066:90::-;22100:7;22143:5;22136:13;22129:21;22118:32;;22108:48;;;:::o;22162:126::-;22199:7;22239:42;22232:5;22228:54;22217:65;;22207:81;;;:::o;22294:77::-;22331:7;22360:5;22349:16;;22339:32;;;:::o;22377:86::-;22412:7;22452:4;22445:5;22441:16;22430:27;;22420:43;;;:::o;22469:307::-;22537:1;22547:113;22561:6;22558:1;22555:13;22547:113;;;22646:1;22641:3;22637:11;22631:18;22627:1;22622:3;22618:11;22611:39;22583:2;22580:1;22576:10;22571:15;;22547:113;;;22678:6;22675:1;22672:13;22669:2;;;22758:1;22749:6;22744:3;22740:16;22733:27;22669:2;22518:258;;;;:::o;22782:320::-;22826:6;22863:1;22857:4;22853:12;22843:22;;22910:1;22904:4;22900:12;22931:18;22921:2;;22987:4;22979:6;22975:17;22965:27;;22921:2;23049;23041:6;23038:14;23018:18;23015:38;23012:2;;;23068:18;;:::i;:::-;23012:2;22833:269;;;;:::o;23108:281::-;23191:27;23213:4;23191:27;:::i;:::-;23183:6;23179:40;23321:6;23309:10;23306:22;23285:18;23273:10;23270:34;23267:62;23264:2;;;23332:18;;:::i;:::-;23264:2;23372:10;23368:2;23361:22;23151:238;;;:::o;23395:233::-;23434:3;23457:24;23475:5;23457:24;:::i;:::-;23448:33;;23503:66;23496:5;23493:77;23490:2;;;23573:18;;:::i;:::-;23490:2;23620:1;23613:5;23609:13;23602:20;;23438:190;;;:::o;23634:180::-;23682:77;23679:1;23672:88;23779:4;23776:1;23769:15;23803:4;23800:1;23793:15;23820:180;23868:77;23865:1;23858:88;23965:4;23962:1;23955:15;23989:4;23986:1;23979:15;24006:180;24054:77;24051:1;24044:88;24151:4;24148:1;24141:15;24175:4;24172:1;24165:15;24192:180;24240:77;24237:1;24230:88;24337:4;24334:1;24327:15;24361:4;24358:1;24351:15;24378:117;24487:1;24484;24477:12;24501:117;24610:1;24607;24600:12;24624:117;24733:1;24730;24723:12;24747:117;24856:1;24853;24846:12;24870:102;24911:6;24962:2;24958:7;24953:2;24946:5;24942:14;24938:28;24928:38;;24918:54;;;:::o;24978:222::-;25118:34;25114:1;25106:6;25102:14;25095:58;25187:5;25182:2;25174:6;25170:15;25163:30;25084:116;:::o;25206:170::-;25346:22;25342:1;25334:6;25330:14;25323:46;25312:64;:::o;25382:221::-;25522:34;25518:1;25510:6;25506:14;25499:58;25591:4;25586:2;25578:6;25574:15;25567:29;25488:115;:::o;25609:225::-;25749:34;25745:1;25737:6;25733:14;25726:58;25818:8;25813:2;25805:6;25801:15;25794:33;25715:119;:::o;25840:221::-;25980:34;25976:1;25968:6;25964:14;25957:58;26049:4;26044:2;26036:6;26032:15;26025:29;25946:115;:::o;26067:179::-;26207:31;26203:1;26195:6;26191:14;26184:55;26173:73;:::o;26252:225::-;26392:34;26388:1;26380:6;26376:14;26369:58;26461:8;26456:2;26448:6;26444:15;26437:33;26358:119;:::o;26483:166::-;26623:18;26619:1;26611:6;26607:14;26600:42;26589:60;:::o;26655:182::-;26795:34;26791:1;26783:6;26779:14;26772:58;26761:76;:::o;26843:164::-;26983:16;26979:1;26971:6;26967:14;26960:40;26949:58;:::o;27013:223::-;27153:34;27149:1;27141:6;27137:14;27130:58;27222:6;27217:2;27209:6;27205:15;27198:31;27119:117;:::o;27242:220::-;27382:34;27378:1;27370:6;27366:14;27359:58;27451:3;27446:2;27438:6;27434:15;27427:28;27348:114;:::o;27468:224::-;27608:34;27604:1;27596:6;27592:14;27585:58;27677:7;27672:2;27664:6;27660:15;27653:32;27574:118;:::o;27698:164::-;27838:16;27834:1;27826:6;27822:14;27815:40;27804:58;:::o;27868:223::-;28008:34;28004:1;27996:6;27992:14;27985:58;28077:6;28072:2;28064:6;28060:15;28053:31;27974:117;:::o;28097:224::-;28237:34;28233:1;28225:6;28221:14;28214:58;28306:7;28301:2;28293:6;28289:15;28282:32;28203:118;:::o;28327:181::-;28467:33;28463:1;28455:6;28451:14;28444:57;28433:75;:::o;28514:229::-;28654:34;28650:1;28642:6;28638:14;28631:58;28723:12;28718:2;28710:6;28706:15;28699:37;28620:123;:::o;28749:122::-;28822:24;28840:5;28822:24;:::i;:::-;28815:5;28812:35;28802:2;;28861:1;28858;28851:12;28802:2;28792:79;:::o;28877:122::-;28950:24;28968:5;28950:24;:::i;:::-;28943:5;28940:35;28930:2;;28989:1;28986;28979:12;28930:2;28920:79;:::o

Swarm Source

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