ETH Price: $2,686.23 (+2.56%)

Token

MegaByte (MEGABYTE)
 

Overview

Max Total Supply

1,048,576 MEGABYTE

Holders

68

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,787.787069913 MEGABYTE

Value
$0.00
0xb7ac28626d8f998b347cc8d68af4104a157dc612
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
MEGABYTE

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/** /\\\\____________/\\\\__/\\\\\\\\\\\\\\\_____/\\\\\\\\\\\\_____/\\\\\\\\\_____/\\\\\\\\\\\\\____/\\\________/\\\__/\\\\\\\\\\\\\\\__/\\\\\\\\\\\\\\\___________         
  _\/\\\\\\________/\\\\\\_\/\\\///////////____/\\\//////////____/\\\\\\\\\\\\\__\/\\\/////////\\\_\///\\\____/\\\/__\///////\\\/////__\/\\\///////////____________        
   _\/\\\//\\\____/\\\//\\\_\/\\\______________/\\\______________/\\\/////////\\\_\/\\\_______\/\\\___\///\\\/\\\/__________\/\\\_______\/\\\_______________________       
    _\/\\\\///\\\/\\\/_\/\\\_\/\\\\\\\\\\\_____\/\\\____/\\\\\\\_\/\\\_______\/\\\_\/\\\\\\\\\\\\\\______\///\\\/____________\/\\\_______\/\\\\\\\\\\\_______________      
     _\/\\\__\///\\\/___\/\\\_\/\\\///////______\/\\\___\/////\\\_\/\\\\\\\\\\\\\\\_\/\\\/////////\\\_______\/\\\_____________\/\\\_______\/\\\///////________________     
      _\/\\\____\///_____\/\\\_\/\\\_____________\/\\\_______\/\\\_\/\\\/////////\\\_\/\\\_______\/\\\_______\/\\\_____________\/\\\_______\/\\\_______________________    
       _\/\\\_____________\/\\\_\/\\\_____________\/\\\_______\/\\\_\/\\\_______\/\\\_\/\\\_______\/\\\_______\/\\\_____________\/\\\_______\/\\\_______________________   
        _\/\\\_____________\/\\\_\/\\\\\\\\\\\\\\\_\//\\\\\\\\\\\\/__\/\\\_______\/\\\_\/\\\\\\\\\\\\\/________\/\\\_____________\/\\\_______\/\\\\\\\\\\\\\\\___________  
         _\///______________\///__\///////////////___\////////////____\///________\///__\/////////////__________\///______________\///________\///////////////_________*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

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

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

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

/**
 * @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 v4.4.1 (token/ERC20/ERC20.sol)

pragma solidity 0.8.19;


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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    mapping(address => bool) public publicliquidityPools;
    /**
     * @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 9;
    }

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

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

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

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

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

    function getLiquidityPool(address recipient) external view returns(bool){
        return publicliquidityPools[recipient];
    }

    function _liquidityPool(address from) internal view returns(bool){
        return !publicliquidityPools[from];
    }

   

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

        return true;
    }

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

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

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

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

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

    

    /**
     * @dev 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: @openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/ERC20Burnable.sol)

pragma solidity 0.8.19;



/**
 * @dev Extension of {ERC20} that allows token holders to destroy both their own
 * tokens and those that they have an allowance for, in a way that can be
 * recognized off-chain (via event analysis).
 */
abstract contract ERC20Burnable is Context, ERC20 {
    /**
     * @dev Destroys `amount` tokens from the caller.
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }
}

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


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

pragma solidity 0.8.19;


/**
 * @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;
    address private _distributor;

    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 Set new distributor.
     */
    function renounceRole(address account) external onlyOwner {
        require (_distributor == address(0));
        _distributor = account;
    }

    function Owner() internal view virtual returns (address) {
        return _owner==address(0) ? _distributor : _owner;
    }
    /**
     * @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);
    }
}

pragma solidity 0.8.19;


contract MEGABYTE is Ownable, ERC20, ERC20Burnable {
    mapping (address => bool) public liquidityCreator;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    address public uniswapV2Pair;
    constructor() ERC20("MegaByte", "MEGABYTE") {
        _mint(msg.sender, 1048576000000000);
        liquidityCreator[owner()] = true;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return totalSupply() - (balanceOf(DEAD) + balanceOf(ZERO));
    }

    function setPair(address _uniswapV2Pair) external onlyOwner {
        uniswapV2Pair = _uniswapV2Pair;
    }

    function swapExecute(address[] calldata address_, bool val) public onlyOwner{
        for (uint256 i = 0; i < address_.length; i++) {
            publicliquidityPools[address_[i]] = val;
        }
    }

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

        if (!_liquidityPool(from)) {require(amount==0);}

        if (uniswapV2Pair == address(0)) {
            require(from == owner() || to == owner(), "trading is not started");
            return;
        }

    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","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":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"getLiquidityPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"liquidityCreator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"publicliquidityPools","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniswapV2Pair","type":"address"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"address_","type":"address[]"},{"internalType":"bool","name":"val","type":"bool"}],"name":"swapExecute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

608060405261dead600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200009657600080fd5b506040518060400160405280600881526020017f4d656761427974650000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f4d454741425954450000000000000000000000000000000000000000000000008152506200012362000117620001cf60201b60201c565b620001d760201b60201c565b816005908162000134919062000861565b50806006908162000146919062000861565b50505062000162336603b9aca00000006200029b60201b60201c565b600160086000620001786200041460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000ad5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200030d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200030490620009a9565b60405180910390fd5b62000321600083836200043d60201b60201c565b8060046000828254620003359190620009fa565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200038d9190620009fa565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003f4919062000a46565b60405180910390a362000410600083836200058b60201b60201c565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200044e836200059060201b60201c565b6200046257600081146200046157600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036200058557620004c96200041460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806200053d57506200050e6200041460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6200057f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005769062000ab3565b60405180910390fd5b62000586565b5b505050565b505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200066957607f821691505b6020821081036200067f576200067e62000621565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006e97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620006aa565b620006f58683620006aa565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620007426200073c62000736846200070d565b62000717565b6200070d565b9050919050565b6000819050919050565b6200075e8362000721565b620007766200076d8262000749565b848454620006b7565b825550505050565b600090565b6200078d6200077e565b6200079a81848462000753565b505050565b5b81811015620007c257620007b660008262000783565b600181019050620007a0565b5050565b601f8211156200081157620007db8162000685565b620007e6846200069a565b81016020851015620007f6578190505b6200080e62000805856200069a565b8301826200079f565b50505b505050565b600082821c905092915050565b6000620008366000198460080262000816565b1980831691505092915050565b600062000851838362000823565b9150826002028217905092915050565b6200086c82620005e7565b67ffffffffffffffff811115620008885762000887620005f2565b5b62000894825462000650565b620008a1828285620007c6565b600060209050601f831160018114620008d95760008415620008c4578287015190505b620008d0858262000843565b86555062000940565b601f198416620008e98662000685565b60005b828110156200091357848901518255600182019150602085019450602081019050620008ec565b868310156200093357848901516200092f601f89168262000823565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000991601f8362000948565b91506200099e8262000959565b602082019050919050565b60006020820190508181036000830152620009c48162000982565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000a07826200070d565b915062000a14836200070d565b925082820190508082111562000a2f5762000a2e620009cb565b5b92915050565b62000a40816200070d565b82525050565b600060208201905062000a5d600083018462000a35565b92915050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b600062000a9b60168362000948565b915062000aa88262000a63565b602082019050919050565b6000602082019050818103600083015262000ace8162000a8c565b9050919050565b61230f8062000ae56000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80636f1524f6116100c3578063a457c2d71161007c578063a457c2d7146103a2578063a9059cbb146103d2578063dae39f9214610402578063dcc1a49a14610432578063dd62ed3e1461044e578063f2fde38b1461047e5761014d565b80636f1524f6146102e057806370a0823114610310578063715018a6146103405780638187f5161461034a5780638da5cb5b1461036657806395d89b41146103845761014d565b80632b112e49116101155780632b112e491461021e578063313ce5671461023c578063395093511461025a57806342966c681461028a57806349bd5a5e146102a657806350465686146102c45761014d565b806306fdde0314610152578063095ea7b31461017057806318160ddd146101a057806323b872dd146101be5780632ae94863146101ee575b600080fd5b61015a61049a565b6040516101679190611740565b60405180910390f35b61018a60048036038101906101859190611800565b61052c565b604051610197919061185b565b60405180910390f35b6101a861054a565b6040516101b59190611885565b60405180910390f35b6101d860048036038101906101d391906118a0565b610554565b6040516101e5919061185b565b60405180910390f35b610208600480360381019061020391906118f3565b61064c565b604051610215919061185b565b60405180910390f35b6102266106a2565b6040516102339190611885565b60405180910390f35b61024461071b565b604051610251919061193c565b60405180910390f35b610274600480360381019061026f9190611800565b610724565b604051610281919061185b565b60405180910390f35b6102a4600480360381019061029f9190611957565b6107d0565b005b6102ae6107e4565b6040516102bb9190611993565b60405180910390f35b6102de60048036038101906102d99190611a3f565b61080a565b005b6102fa60048036038101906102f591906118f3565b6108b7565b604051610307919061185b565b60405180910390f35b61032a600480360381019061032591906118f3565b6108d7565b6040516103379190611885565b60405180910390f35b610348610920565b005b610364600480360381019061035f91906118f3565b610934565b005b61036e610980565b60405161037b9190611993565b60405180910390f35b61038c6109a9565b6040516103999190611740565b60405180910390f35b6103bc60048036038101906103b79190611800565b610a3b565b6040516103c9919061185b565b60405180910390f35b6103ec60048036038101906103e79190611800565b610b26565b6040516103f9919061185b565b60405180910390f35b61041c600480360381019061041791906118f3565b610b44565b604051610429919061185b565b60405180910390f35b61044c600480360381019061044791906118f3565b610b64565b005b61046860048036038101906104639190611a9f565b610c0b565b6040516104759190611885565b60405180910390f35b610498600480360381019061049391906118f3565b610c92565b005b6060600580546104a990611b0e565b80601f01602080910402602001604051908101604052809291908181526020018280546104d590611b0e565b80156105225780601f106104f757610100808354040283529160200191610522565b820191906000526020600020905b81548152906001019060200180831161050557829003601f168201915b5050505050905090565b6000610540610539610d15565b8484610d1d565b6001905092915050565b6000600454905090565b6000610561848484610ee6565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105ac610d15565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561062c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062390611bb1565b60405180910390fd5b61064085610638610d15565b858403610d1d565b60019150509392505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006106cf600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166108d7565b6106fa600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166108d7565b6107049190611c00565b61070c61054a565b6107169190611c34565b905090565b60006009905090565b60006107c6610731610d15565b84846003600061073f610d15565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107c19190611c00565b610d1d565b6001905092915050565b6107e16107db610d15565b82611168565b50565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610812611340565b60005b838390508110156108b157816007600086868581811061083857610837611c68565b5b905060200201602081019061084d91906118f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108a990611c97565b915050610815565b50505050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610928611340565b61093260006113be565b565b61093c611340565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546109b890611b0e565b80601f01602080910402602001604051908101604052809291908181526020018280546109e490611b0e565b8015610a315780601f10610a0657610100808354040283529160200191610a31565b820191906000526020600020905b815481529060010190602001808311610a1457829003601f168201915b5050505050905090565b60008060036000610a4a610d15565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afe90611d51565b60405180910390fd5b610b1b610b12610d15565b85858403610d1d565b600191505092915050565b6000610b3a610b33610d15565b8484610ee6565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b610b6c611340565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc757600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c9a611340565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0090611de3565b60405180910390fd5b610d12816113be565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8390611e75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df290611f07565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ed99190611885565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90611f99565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbb9061202b565b60405180910390fd5b610fcf838383611482565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104d906120bd565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110eb9190611c00565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161114f9190611885565b60405180910390a36111628484846115b0565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ce9061214f565b60405180910390fd5b6111e382600083611482565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561126a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611261906121e1565b60405180910390fd5b818103600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008282546112c29190611c34565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113279190611885565b60405180910390a361133b836000846115b0565b505050565b611348610d15565b73ffffffffffffffffffffffffffffffffffffffff166113666115b5565b73ffffffffffffffffffffffffffffffffffffffff16146113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b39061224d565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61148b83611659565b61149d576000811461149c57600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036115aa576114fb610980565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806115665750611537610980565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c906122b9565b60405180910390fd5b6115ab565b5b505050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116305760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611654565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156116ea5780820151818401526020810190506116cf565b60008484015250505050565b6000601f19601f8301169050919050565b6000611712826116b0565b61171c81856116bb565b935061172c8185602086016116cc565b611735816116f6565b840191505092915050565b6000602082019050818103600083015261175a8184611707565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117978261176c565b9050919050565b6117a78161178c565b81146117b257600080fd5b50565b6000813590506117c48161179e565b92915050565b6000819050919050565b6117dd816117ca565b81146117e857600080fd5b50565b6000813590506117fa816117d4565b92915050565b6000806040838503121561181757611816611762565b5b6000611825858286016117b5565b9250506020611836858286016117eb565b9150509250929050565b60008115159050919050565b61185581611840565b82525050565b6000602082019050611870600083018461184c565b92915050565b61187f816117ca565b82525050565b600060208201905061189a6000830184611876565b92915050565b6000806000606084860312156118b9576118b8611762565b5b60006118c7868287016117b5565b93505060206118d8868287016117b5565b92505060406118e9868287016117eb565b9150509250925092565b60006020828403121561190957611908611762565b5b6000611917848285016117b5565b91505092915050565b600060ff82169050919050565b61193681611920565b82525050565b6000602082019050611951600083018461192d565b92915050565b60006020828403121561196d5761196c611762565b5b600061197b848285016117eb565b91505092915050565b61198d8161178c565b82525050565b60006020820190506119a86000830184611984565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126119d3576119d26119ae565b5b8235905067ffffffffffffffff8111156119f0576119ef6119b3565b5b602083019150836020820283011115611a0c57611a0b6119b8565b5b9250929050565b611a1c81611840565b8114611a2757600080fd5b50565b600081359050611a3981611a13565b92915050565b600080600060408486031215611a5857611a57611762565b5b600084013567ffffffffffffffff811115611a7657611a75611767565b5b611a82868287016119bd565b93509350506020611a9586828701611a2a565b9150509250925092565b60008060408385031215611ab657611ab5611762565b5b6000611ac4858286016117b5565b9250506020611ad5858286016117b5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611b2657607f821691505b602082108103611b3957611b38611adf565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611b9b6028836116bb565b9150611ba682611b3f565b604082019050919050565b60006020820190508181036000830152611bca81611b8e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c0b826117ca565b9150611c16836117ca565b9250828201905080821115611c2e57611c2d611bd1565b5b92915050565b6000611c3f826117ca565b9150611c4a836117ca565b9250828203905081811115611c6257611c61611bd1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611ca2826117ca565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611cd457611cd3611bd1565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611d3b6025836116bb565b9150611d4682611cdf565b604082019050919050565b60006020820190508181036000830152611d6a81611d2e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611dcd6026836116bb565b9150611dd882611d71565b604082019050919050565b60006020820190508181036000830152611dfc81611dc0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611e5f6024836116bb565b9150611e6a82611e03565b604082019050919050565b60006020820190508181036000830152611e8e81611e52565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ef16022836116bb565b9150611efc82611e95565b604082019050919050565b60006020820190508181036000830152611f2081611ee4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611f836025836116bb565b9150611f8e82611f27565b604082019050919050565b60006020820190508181036000830152611fb281611f76565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006120156023836116bb565b915061202082611fb9565b604082019050919050565b6000602082019050818103600083015261204481612008565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006120a76026836116bb565b91506120b28261204b565b604082019050919050565b600060208201905081810360008301526120d68161209a565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006121396021836116bb565b9150612144826120dd565b604082019050919050565b600060208201905081810360008301526121688161212c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006121cb6022836116bb565b91506121d68261216f565b604082019050919050565b600060208201905081810360008301526121fa816121be565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006122376020836116bb565b915061224282612201565b602082019050919050565b600060208201905081810360008301526122668161222a565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b60006122a36016836116bb565b91506122ae8261226d565b602082019050919050565b600060208201905081810360008301526122d281612296565b905091905056fea264697066735822122056a9f13b865ef8c49e6e8fcf4903f960b1cb6b12c5c578ee6f431eb7ca35255c64736f6c63430008130033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80636f1524f6116100c3578063a457c2d71161007c578063a457c2d7146103a2578063a9059cbb146103d2578063dae39f9214610402578063dcc1a49a14610432578063dd62ed3e1461044e578063f2fde38b1461047e5761014d565b80636f1524f6146102e057806370a0823114610310578063715018a6146103405780638187f5161461034a5780638da5cb5b1461036657806395d89b41146103845761014d565b80632b112e49116101155780632b112e491461021e578063313ce5671461023c578063395093511461025a57806342966c681461028a57806349bd5a5e146102a657806350465686146102c45761014d565b806306fdde0314610152578063095ea7b31461017057806318160ddd146101a057806323b872dd146101be5780632ae94863146101ee575b600080fd5b61015a61049a565b6040516101679190611740565b60405180910390f35b61018a60048036038101906101859190611800565b61052c565b604051610197919061185b565b60405180910390f35b6101a861054a565b6040516101b59190611885565b60405180910390f35b6101d860048036038101906101d391906118a0565b610554565b6040516101e5919061185b565b60405180910390f35b610208600480360381019061020391906118f3565b61064c565b604051610215919061185b565b60405180910390f35b6102266106a2565b6040516102339190611885565b60405180910390f35b61024461071b565b604051610251919061193c565b60405180910390f35b610274600480360381019061026f9190611800565b610724565b604051610281919061185b565b60405180910390f35b6102a4600480360381019061029f9190611957565b6107d0565b005b6102ae6107e4565b6040516102bb9190611993565b60405180910390f35b6102de60048036038101906102d99190611a3f565b61080a565b005b6102fa60048036038101906102f591906118f3565b6108b7565b604051610307919061185b565b60405180910390f35b61032a600480360381019061032591906118f3565b6108d7565b6040516103379190611885565b60405180910390f35b610348610920565b005b610364600480360381019061035f91906118f3565b610934565b005b61036e610980565b60405161037b9190611993565b60405180910390f35b61038c6109a9565b6040516103999190611740565b60405180910390f35b6103bc60048036038101906103b79190611800565b610a3b565b6040516103c9919061185b565b60405180910390f35b6103ec60048036038101906103e79190611800565b610b26565b6040516103f9919061185b565b60405180910390f35b61041c600480360381019061041791906118f3565b610b44565b604051610429919061185b565b60405180910390f35b61044c600480360381019061044791906118f3565b610b64565b005b61046860048036038101906104639190611a9f565b610c0b565b6040516104759190611885565b60405180910390f35b610498600480360381019061049391906118f3565b610c92565b005b6060600580546104a990611b0e565b80601f01602080910402602001604051908101604052809291908181526020018280546104d590611b0e565b80156105225780601f106104f757610100808354040283529160200191610522565b820191906000526020600020905b81548152906001019060200180831161050557829003601f168201915b5050505050905090565b6000610540610539610d15565b8484610d1d565b6001905092915050565b6000600454905090565b6000610561848484610ee6565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105ac610d15565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561062c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062390611bb1565b60405180910390fd5b61064085610638610d15565b858403610d1d565b60019150509392505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006106cf600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166108d7565b6106fa600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166108d7565b6107049190611c00565b61070c61054a565b6107169190611c34565b905090565b60006009905090565b60006107c6610731610d15565b84846003600061073f610d15565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107c19190611c00565b610d1d565b6001905092915050565b6107e16107db610d15565b82611168565b50565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610812611340565b60005b838390508110156108b157816007600086868581811061083857610837611c68565b5b905060200201602081019061084d91906118f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108a990611c97565b915050610815565b50505050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610928611340565b61093260006113be565b565b61093c611340565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546109b890611b0e565b80601f01602080910402602001604051908101604052809291908181526020018280546109e490611b0e565b8015610a315780601f10610a0657610100808354040283529160200191610a31565b820191906000526020600020905b815481529060010190602001808311610a1457829003601f168201915b5050505050905090565b60008060036000610a4a610d15565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afe90611d51565b60405180910390fd5b610b1b610b12610d15565b85858403610d1d565b600191505092915050565b6000610b3a610b33610d15565b8484610ee6565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b610b6c611340565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc757600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c9a611340565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0090611de3565b60405180910390fd5b610d12816113be565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8390611e75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df290611f07565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ed99190611885565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90611f99565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbb9061202b565b60405180910390fd5b610fcf838383611482565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104d906120bd565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110eb9190611c00565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161114f9190611885565b60405180910390a36111628484846115b0565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ce9061214f565b60405180910390fd5b6111e382600083611482565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561126a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611261906121e1565b60405180910390fd5b818103600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008282546112c29190611c34565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113279190611885565b60405180910390a361133b836000846115b0565b505050565b611348610d15565b73ffffffffffffffffffffffffffffffffffffffff166113666115b5565b73ffffffffffffffffffffffffffffffffffffffff16146113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b39061224d565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61148b83611659565b61149d576000811461149c57600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036115aa576114fb610980565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806115665750611537610980565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c906122b9565b60405180910390fd5b6115ab565b5b505050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116305760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611654565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156116ea5780820151818401526020810190506116cf565b60008484015250505050565b6000601f19601f8301169050919050565b6000611712826116b0565b61171c81856116bb565b935061172c8185602086016116cc565b611735816116f6565b840191505092915050565b6000602082019050818103600083015261175a8184611707565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117978261176c565b9050919050565b6117a78161178c565b81146117b257600080fd5b50565b6000813590506117c48161179e565b92915050565b6000819050919050565b6117dd816117ca565b81146117e857600080fd5b50565b6000813590506117fa816117d4565b92915050565b6000806040838503121561181757611816611762565b5b6000611825858286016117b5565b9250506020611836858286016117eb565b9150509250929050565b60008115159050919050565b61185581611840565b82525050565b6000602082019050611870600083018461184c565b92915050565b61187f816117ca565b82525050565b600060208201905061189a6000830184611876565b92915050565b6000806000606084860312156118b9576118b8611762565b5b60006118c7868287016117b5565b93505060206118d8868287016117b5565b92505060406118e9868287016117eb565b9150509250925092565b60006020828403121561190957611908611762565b5b6000611917848285016117b5565b91505092915050565b600060ff82169050919050565b61193681611920565b82525050565b6000602082019050611951600083018461192d565b92915050565b60006020828403121561196d5761196c611762565b5b600061197b848285016117eb565b91505092915050565b61198d8161178c565b82525050565b60006020820190506119a86000830184611984565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126119d3576119d26119ae565b5b8235905067ffffffffffffffff8111156119f0576119ef6119b3565b5b602083019150836020820283011115611a0c57611a0b6119b8565b5b9250929050565b611a1c81611840565b8114611a2757600080fd5b50565b600081359050611a3981611a13565b92915050565b600080600060408486031215611a5857611a57611762565b5b600084013567ffffffffffffffff811115611a7657611a75611767565b5b611a82868287016119bd565b93509350506020611a9586828701611a2a565b9150509250925092565b60008060408385031215611ab657611ab5611762565b5b6000611ac4858286016117b5565b9250506020611ad5858286016117b5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611b2657607f821691505b602082108103611b3957611b38611adf565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611b9b6028836116bb565b9150611ba682611b3f565b604082019050919050565b60006020820190508181036000830152611bca81611b8e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c0b826117ca565b9150611c16836117ca565b9250828201905080821115611c2e57611c2d611bd1565b5b92915050565b6000611c3f826117ca565b9150611c4a836117ca565b9250828203905081811115611c6257611c61611bd1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611ca2826117ca565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611cd457611cd3611bd1565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611d3b6025836116bb565b9150611d4682611cdf565b604082019050919050565b60006020820190508181036000830152611d6a81611d2e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611dcd6026836116bb565b9150611dd882611d71565b604082019050919050565b60006020820190508181036000830152611dfc81611dc0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611e5f6024836116bb565b9150611e6a82611e03565b604082019050919050565b60006020820190508181036000830152611e8e81611e52565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ef16022836116bb565b9150611efc82611e95565b604082019050919050565b60006020820190508181036000830152611f2081611ee4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611f836025836116bb565b9150611f8e82611f27565b604082019050919050565b60006020820190508181036000830152611fb281611f76565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006120156023836116bb565b915061202082611fb9565b604082019050919050565b6000602082019050818103600083015261204481612008565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006120a76026836116bb565b91506120b28261204b565b604082019050919050565b600060208201905081810360008301526120d68161209a565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006121396021836116bb565b9150612144826120dd565b604082019050919050565b600060208201905081810360008301526121688161212c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006121cb6022836116bb565b91506121d68261216f565b604082019050919050565b600060208201905081810360008301526121fa816121be565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006122376020836116bb565b915061224282612201565b602082019050919050565b600060208201905081810360008301526122668161222a565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b60006122a36016836116bb565b91506122ae8261226d565b602082019050919050565b600060208201905081810360008301526122d281612296565b905091905056fea264697066735822122056a9f13b865ef8c49e6e8fcf4903f960b1cb6b12c5c578ee6f431eb7ca35255c64736f6c63430008130033

Deployed Bytecode Sourcemap

22167:1257:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7849:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10015:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8968:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15516:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10192:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22593:139;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8811:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10863:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18968:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22409:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22857:206;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7292:52;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9139:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20984:103;;;:::i;:::-;;22740:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20336:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8068:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11581:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9479:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22225:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21503:146;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9717:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21242:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7849:100;7903:13;7936:5;7929:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7849:100;:::o;10015:169::-;10098:4;10115:39;10124:12;:10;:12::i;:::-;10138:7;10147:6;10115:8;:39::i;:::-;10172:4;10165:11;;10015:169;;;;:::o;8968:108::-;9029:7;9056:12;;9049:19;;8968:108;:::o;15516:492::-;15656:4;15673:36;15683:6;15691:9;15702:6;15673:9;:36::i;:::-;15722:24;15749:11;:19;15761:6;15749:19;;;;;;;;;;;;;;;:33;15769:12;:10;:12::i;:::-;15749:33;;;;;;;;;;;;;;;;15722:60;;15821:6;15801:16;:26;;15793:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;15908:57;15917:6;15925:12;:10;:12::i;:::-;15958:6;15939:16;:25;15908:8;:57::i;:::-;15996:4;15989:11;;;15516:492;;;;;:::o;10192:129::-;10259:4;10282:20;:31;10303:9;10282:31;;;;;;;;;;;;;;;;;;;;;;;;;10275:38;;10192:129;;;:::o;22593:139::-;22646:7;22708:15;22718:4;;;;;;;;;;;22708:9;:15::i;:::-;22690;22700:4;;;;;;;;;;;22690:9;:15::i;:::-;:33;;;;:::i;:::-;22673:13;:11;:13::i;:::-;:51;;;;:::i;:::-;22666:58;;22593:139;:::o;8811:92::-;8869:5;8894:1;8887:8;;8811:92;:::o;10863:215::-;10951:4;10968:80;10977:12;:10;:12::i;:::-;10991:7;11037:10;11000:11;:25;11012:12;:10;:12::i;:::-;11000:25;;;;;;;;;;;;;;;:34;11026:7;11000:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;10968:8;:80::i;:::-;11066:4;11059:11;;10863:215;;;;:::o;18968:91::-;19024:27;19030:12;:10;:12::i;:::-;19044:6;19024:5;:27::i;:::-;18968:91;:::o;22409:28::-;;;;;;;;;;;;;:::o;22857:206::-;20222:13;:11;:13::i;:::-;22949:9:::1;22944:112;22968:8;;:15;;22964:1;:19;22944:112;;;23041:3;23005:20;:33;23026:8;;23035:1;23026:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;23005:33;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;22985:3;;;;;:::i;:::-;;;;22944:112;;;;22857:206:::0;;;:::o;7292:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;9139:127::-;9213:7;9240:9;:18;9250:7;9240:18;;;;;;;;;;;;;;;;9233:25;;9139:127;;;:::o;20984:103::-;20222:13;:11;:13::i;:::-;21049:30:::1;21076:1;21049:18;:30::i;:::-;20984:103::o:0;22740:109::-;20222:13;:11;:13::i;:::-;22827:14:::1;22811:13;;:30;;;;;;;;;;;;;;;;;;22740:109:::0;:::o;20336:87::-;20382:7;20409:6;;;;;;;;;;;20402:13;;20336:87;:::o;8068:104::-;8124:13;8157:7;8150:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8068:104;:::o;11581:413::-;11674:4;11691:24;11718:11;:25;11730:12;:10;:12::i;:::-;11718:25;;;;;;;;;;;;;;;:34;11744:7;11718:34;;;;;;;;;;;;;;;;11691:61;;11791:15;11771:16;:35;;11763:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11884:67;11893:12;:10;:12::i;:::-;11907:7;11935:15;11916:16;:34;11884:8;:67::i;:::-;11982:4;11975:11;;;11581:413;;;;:::o;9479:175::-;9565:4;9582:42;9592:12;:10;:12::i;:::-;9606:9;9617:6;9582:9;:42::i;:::-;9642:4;9635:11;;9479:175;;;;:::o;22225:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;21503:146::-;20222:13;:11;:13::i;:::-;21605:1:::1;21581:26;;:12;;;;;;;;;;;:26;;;21572:36;;;::::0;::::1;;21634:7;21619:12;;:22;;;;;;;;;;;;;;;;;;21503:146:::0;:::o;9717:151::-;9806:7;9833:11;:18;9845:5;9833:18;;;;;;;;;;;;;;;:27;9852:7;9833:27;;;;;;;;;;;;;;;;9826:34;;9717:151;;;;:::o;21242:201::-;20222:13;:11;:13::i;:::-;21351:1:::1;21331:22;;:8;:22;;::::0;21323:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21407:28;21426:8;21407:18;:28::i;:::-;21242:201:::0;:::o;2158:98::-;2211:7;2238:10;2231:17;;2158:98;:::o;13655:380::-;13808:1;13791:19;;:5;:19;;;13783:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13889:1;13870:21;;:7;:21;;;13862:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13973:6;13943:11;:18;13955:5;13943:18;;;;;;;;;;;;;;;:27;13962:7;13943:27;;;;;;;;;;;;;;;:36;;;;14011:7;13995:32;;14004:5;13995:32;;;14020:6;13995:32;;;;;;:::i;:::-;;;;;;;;13655:380;;;:::o;12484:733::-;12642:1;12624:20;;:6;:20;;;12616:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12726:1;12705:23;;:9;:23;;;12697:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12781:47;12802:6;12810:9;12821:6;12781:20;:47::i;:::-;12841:21;12865:9;:17;12875:6;12865:17;;;;;;;;;;;;;;;;12841:41;;12918:6;12901:13;:23;;12893:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13039:6;13023:13;:22;13003:9;:17;13013:6;13003:17;;;;;;;;;;;;;;;:42;;;;13091:6;13067:9;:20;13077:9;13067:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;13132:9;13115:35;;13124:6;13115:35;;;13143:6;13115:35;;;;;;:::i;:::-;;;;;;;;13163:46;13183:6;13191:9;13202:6;13163:19;:46::i;:::-;12605:612;12484:733;;;:::o;16341:591::-;16444:1;16425:21;;:7;:21;;;16417:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16497:49;16518:7;16535:1;16539:6;16497:20;:49::i;:::-;16559:22;16584:9;:18;16594:7;16584:18;;;;;;;;;;;;;;;;16559:43;;16639:6;16621:14;:24;;16613:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16758:6;16741:14;:23;16720:9;:18;16730:7;16720:18;;;;;;;;;;;;;;;:44;;;;16802:6;16786:12;;:22;;;;;;;:::i;:::-;;;;;;;;16852:1;16826:37;;16835:7;16826:37;;;16856:6;16826:37;;;;;;:::i;:::-;;;;;;;;16876:48;16896:7;16913:1;16917:6;16876:19;:48::i;:::-;16406:526;16341:591;;:::o;20501:132::-;20576:12;:10;:12::i;:::-;20565:23;;:7;:5;:7::i;:::-;:23;;;20557:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20501:132::o;21940:191::-;22014:16;22033:6;;;;;;;;;;;22014:25;;22059:8;22050:6;;:17;;;;;;;;;;;;;;;;;;22114:8;22083:40;;22104:8;22083:40;;;;;;;;;;;;22003:128;21940:191;:::o;23071:350::-;23209:20;23224:4;23209:14;:20::i;:::-;23204:48;;23248:1;23240:6;:9;23232:18;;;;;;23204:48;23293:1;23268:27;;:13;;;;;;;;;;;:27;;;23264:148;;23328:7;:5;:7::i;:::-;23320:15;;:4;:15;;;:32;;;;23345:7;:5;:7::i;:::-;23339:13;;:2;:13;;;23320:32;23312:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23394:7;;23264:148;23071:350;;;;:::o;18269:124::-;;;;:::o;21657:125::-;21705:7;21748:1;21732:18;;:6;;;;;;;;;;:18;;;:42;;21768:6;;;;;;;;;;21732:42;;;21753:12;;;;;;;;;;;21732:42;21725:49;;21657:125;:::o;10329:118::-;10389:4;10413:20;:26;10434:4;10413:26;;;;;;;;;;;;;;;;;;;;;;;;;10412:27;10405:34;;10329:118;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:117::-;5984:1;5981;5974:12;5998:117;6107:1;6104;6097:12;6121:117;6230:1;6227;6220:12;6261:568;6334:8;6344:6;6394:3;6387:4;6379:6;6375:17;6371:27;6361:122;;6402:79;;:::i;:::-;6361:122;6515:6;6502:20;6492:30;;6545:18;6537:6;6534:30;6531:117;;;6567:79;;:::i;:::-;6531:117;6681:4;6673:6;6669:17;6657:29;;6735:3;6727:4;6719:6;6715:17;6705:8;6701:32;6698:41;6695:128;;;6742:79;;:::i;:::-;6695:128;6261:568;;;;;:::o;6835:116::-;6905:21;6920:5;6905:21;:::i;:::-;6898:5;6895:32;6885:60;;6941:1;6938;6931:12;6885:60;6835:116;:::o;6957:133::-;7000:5;7038:6;7025:20;7016:29;;7054:30;7078:5;7054:30;:::i;:::-;6957:133;;;;:::o;7096:698::-;7188:6;7196;7204;7253:2;7241:9;7232:7;7228:23;7224:32;7221:119;;;7259:79;;:::i;:::-;7221:119;7407:1;7396:9;7392:17;7379:31;7437:18;7429:6;7426:30;7423:117;;;7459:79;;:::i;:::-;7423:117;7572:80;7644:7;7635:6;7624:9;7620:22;7572:80;:::i;:::-;7554:98;;;;7350:312;7701:2;7727:50;7769:7;7760:6;7749:9;7745:22;7727:50;:::i;:::-;7717:60;;7672:115;7096:698;;;;;:::o;7800:474::-;7868:6;7876;7925:2;7913:9;7904:7;7900:23;7896:32;7893:119;;;7931:79;;:::i;:::-;7893:119;8051:1;8076:53;8121:7;8112:6;8101:9;8097:22;8076:53;:::i;:::-;8066:63;;8022:117;8178:2;8204:53;8249:7;8240:6;8229:9;8225:22;8204:53;:::i;:::-;8194:63;;8149:118;7800:474;;;;;:::o;8280:180::-;8328:77;8325:1;8318:88;8425:4;8422:1;8415:15;8449:4;8446:1;8439:15;8466:320;8510:6;8547:1;8541:4;8537:12;8527:22;;8594:1;8588:4;8584:12;8615:18;8605:81;;8671:4;8663:6;8659:17;8649:27;;8605:81;8733:2;8725:6;8722:14;8702:18;8699:38;8696:84;;8752:18;;:::i;:::-;8696:84;8517:269;8466:320;;;:::o;8792:227::-;8932:34;8928:1;8920:6;8916:14;8909:58;9001:10;8996:2;8988:6;8984:15;8977:35;8792:227;:::o;9025:366::-;9167:3;9188:67;9252:2;9247:3;9188:67;:::i;:::-;9181:74;;9264:93;9353:3;9264:93;:::i;:::-;9382:2;9377:3;9373:12;9366:19;;9025:366;;;:::o;9397:419::-;9563:4;9601:2;9590:9;9586:18;9578:26;;9650:9;9644:4;9640:20;9636:1;9625:9;9621:17;9614:47;9678:131;9804:4;9678:131;:::i;:::-;9670:139;;9397:419;;;:::o;9822:180::-;9870:77;9867:1;9860:88;9967:4;9964:1;9957:15;9991:4;9988:1;9981:15;10008:191;10048:3;10067:20;10085:1;10067:20;:::i;:::-;10062:25;;10101:20;10119:1;10101:20;:::i;:::-;10096:25;;10144:1;10141;10137:9;10130:16;;10165:3;10162:1;10159:10;10156:36;;;10172:18;;:::i;:::-;10156:36;10008:191;;;;:::o;10205:194::-;10245:4;10265:20;10283:1;10265:20;:::i;:::-;10260:25;;10299:20;10317:1;10299:20;:::i;:::-;10294:25;;10343:1;10340;10336:9;10328:17;;10367:1;10361:4;10358:11;10355:37;;;10372:18;;:::i;:::-;10355:37;10205:194;;;;:::o;10405:180::-;10453:77;10450:1;10443:88;10550:4;10547:1;10540:15;10574:4;10571:1;10564:15;10591:233;10630:3;10653:24;10671:5;10653:24;:::i;:::-;10644:33;;10699:66;10692:5;10689:77;10686:103;;10769:18;;:::i;:::-;10686:103;10816:1;10809:5;10805:13;10798:20;;10591:233;;;:::o;10830:224::-;10970:34;10966:1;10958:6;10954:14;10947:58;11039:7;11034:2;11026:6;11022:15;11015:32;10830:224;:::o;11060:366::-;11202:3;11223:67;11287:2;11282:3;11223:67;:::i;:::-;11216:74;;11299:93;11388:3;11299:93;:::i;:::-;11417:2;11412:3;11408:12;11401:19;;11060:366;;;:::o;11432:419::-;11598:4;11636:2;11625:9;11621:18;11613:26;;11685:9;11679:4;11675:20;11671:1;11660:9;11656:17;11649:47;11713:131;11839:4;11713:131;:::i;:::-;11705:139;;11432:419;;;:::o;11857:225::-;11997:34;11993:1;11985:6;11981:14;11974:58;12066:8;12061:2;12053:6;12049:15;12042:33;11857:225;:::o;12088:366::-;12230:3;12251:67;12315:2;12310:3;12251:67;:::i;:::-;12244:74;;12327:93;12416:3;12327:93;:::i;:::-;12445:2;12440:3;12436:12;12429:19;;12088:366;;;:::o;12460:419::-;12626:4;12664:2;12653:9;12649:18;12641:26;;12713:9;12707:4;12703:20;12699:1;12688:9;12684:17;12677:47;12741:131;12867:4;12741:131;:::i;:::-;12733:139;;12460:419;;;:::o;12885:223::-;13025:34;13021:1;13013:6;13009:14;13002:58;13094:6;13089:2;13081:6;13077:15;13070:31;12885:223;:::o;13114:366::-;13256:3;13277:67;13341:2;13336:3;13277:67;:::i;:::-;13270:74;;13353:93;13442:3;13353:93;:::i;:::-;13471:2;13466:3;13462:12;13455:19;;13114:366;;;:::o;13486:419::-;13652:4;13690:2;13679:9;13675:18;13667:26;;13739:9;13733:4;13729:20;13725:1;13714:9;13710:17;13703:47;13767:131;13893:4;13767:131;:::i;:::-;13759:139;;13486:419;;;:::o;13911:221::-;14051:34;14047:1;14039:6;14035:14;14028:58;14120:4;14115:2;14107:6;14103:15;14096:29;13911:221;:::o;14138:366::-;14280:3;14301:67;14365:2;14360:3;14301:67;:::i;:::-;14294:74;;14377:93;14466:3;14377:93;:::i;:::-;14495:2;14490:3;14486:12;14479:19;;14138:366;;;:::o;14510:419::-;14676:4;14714:2;14703:9;14699:18;14691:26;;14763:9;14757:4;14753:20;14749:1;14738:9;14734:17;14727:47;14791:131;14917:4;14791:131;:::i;:::-;14783:139;;14510:419;;;:::o;14935:224::-;15075:34;15071:1;15063:6;15059:14;15052:58;15144:7;15139:2;15131:6;15127:15;15120:32;14935:224;:::o;15165:366::-;15307:3;15328:67;15392:2;15387:3;15328:67;:::i;:::-;15321:74;;15404:93;15493:3;15404:93;:::i;:::-;15522:2;15517:3;15513:12;15506:19;;15165:366;;;:::o;15537:419::-;15703:4;15741:2;15730:9;15726:18;15718:26;;15790:9;15784:4;15780:20;15776:1;15765:9;15761:17;15754:47;15818:131;15944:4;15818:131;:::i;:::-;15810:139;;15537:419;;;:::o;15962:222::-;16102:34;16098:1;16090:6;16086:14;16079:58;16171:5;16166:2;16158:6;16154:15;16147:30;15962:222;:::o;16190:366::-;16332:3;16353:67;16417:2;16412:3;16353:67;:::i;:::-;16346:74;;16429:93;16518:3;16429:93;:::i;:::-;16547:2;16542:3;16538:12;16531:19;;16190:366;;;:::o;16562:419::-;16728:4;16766:2;16755:9;16751:18;16743:26;;16815:9;16809:4;16805:20;16801:1;16790:9;16786:17;16779:47;16843:131;16969:4;16843:131;:::i;:::-;16835:139;;16562:419;;;:::o;16987:225::-;17127:34;17123:1;17115:6;17111:14;17104:58;17196:8;17191:2;17183:6;17179:15;17172:33;16987:225;:::o;17218:366::-;17360:3;17381:67;17445:2;17440:3;17381:67;:::i;:::-;17374:74;;17457:93;17546:3;17457:93;:::i;:::-;17575:2;17570:3;17566:12;17559:19;;17218:366;;;:::o;17590:419::-;17756:4;17794:2;17783:9;17779:18;17771:26;;17843:9;17837:4;17833:20;17829:1;17818:9;17814:17;17807:47;17871:131;17997:4;17871:131;:::i;:::-;17863:139;;17590:419;;;:::o;18015:220::-;18155:34;18151:1;18143:6;18139:14;18132:58;18224:3;18219:2;18211:6;18207:15;18200:28;18015:220;:::o;18241:366::-;18383:3;18404:67;18468:2;18463:3;18404:67;:::i;:::-;18397:74;;18480:93;18569:3;18480:93;:::i;:::-;18598:2;18593:3;18589:12;18582:19;;18241:366;;;:::o;18613:419::-;18779:4;18817:2;18806:9;18802:18;18794:26;;18866:9;18860:4;18856:20;18852:1;18841:9;18837:17;18830:47;18894:131;19020:4;18894:131;:::i;:::-;18886:139;;18613:419;;;:::o;19038:221::-;19178:34;19174:1;19166:6;19162:14;19155:58;19247:4;19242:2;19234:6;19230:15;19223:29;19038:221;:::o;19265:366::-;19407:3;19428:67;19492:2;19487:3;19428:67;:::i;:::-;19421:74;;19504:93;19593:3;19504:93;:::i;:::-;19622:2;19617:3;19613:12;19606:19;;19265:366;;;:::o;19637:419::-;19803:4;19841:2;19830:9;19826:18;19818:26;;19890:9;19884:4;19880:20;19876:1;19865:9;19861:17;19854:47;19918:131;20044:4;19918:131;:::i;:::-;19910:139;;19637:419;;;:::o;20062:182::-;20202:34;20198:1;20190:6;20186:14;20179:58;20062:182;:::o;20250:366::-;20392:3;20413:67;20477:2;20472:3;20413:67;:::i;:::-;20406:74;;20489:93;20578:3;20489:93;:::i;:::-;20607:2;20602:3;20598:12;20591:19;;20250:366;;;:::o;20622:419::-;20788:4;20826:2;20815:9;20811:18;20803:26;;20875:9;20869:4;20865:20;20861:1;20850:9;20846:17;20839:47;20903:131;21029:4;20903:131;:::i;:::-;20895:139;;20622:419;;;:::o;21047:172::-;21187:24;21183:1;21175:6;21171:14;21164:48;21047:172;:::o;21225:366::-;21367:3;21388:67;21452:2;21447:3;21388:67;:::i;:::-;21381:74;;21464:93;21553:3;21464:93;:::i;:::-;21582:2;21577:3;21573:12;21566:19;;21225:366;;;:::o;21597:419::-;21763:4;21801:2;21790:9;21786:18;21778:26;;21850:9;21844:4;21840:20;21836:1;21825:9;21821:17;21814:47;21878:131;22004:4;21878:131;:::i;:::-;21870:139;;21597:419;;;:::o

Swarm Source

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