ETH Price: $3,134.02 (-4.99%)
Gas: 4 Gwei

Token

Melon (MELON)
 

Overview

Max Total Supply

800,000,000,000,008 MELON

Holders

1,119 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
jermain.eth
Balance
325,505,395,844.575758303334551343 MELON

Value
$0.00
0xa227b5ef06410639d4985d6be693352b71b8a165
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Melon is a community-based meme coin with the mission of spreading joy across the world. Melons represent a new symbol of something we all love and enjoy that becomes more enjoyable as it is shared. No more predatory markets no rugpulls, scams, or vaporware. Melons are for all.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Melon

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-11
*/

// SPDX-License-Identifier: MIT

// File: @openzeppelin/[email protected]/utils/Context.sol


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

pragma solidity ^0.8.0;
//                          Summer is here, and it’s time for us all to enjoy some melon!         
//                                              .         .                                           
//                                                                                                    
//                                                                                                    
//                                                 ..                                                 
//                                 .     ^::..:::::^::::::..:^:                                       
//                                      .7~^^^^^^^^^^^^^^^^^^!~    ..                                 
//                                      :~^^^^!7?!^^^^~??7~^^^~.                                      
//                                     .^~^^~~~^^^7PPJ^^^~~~^^~^                                      
//                                     ::::^^^^7!~!JY7~!!^^^^:::.                                     
//                                     .......^B#BBBBBBBB^.......                                     
//                                     .....  .YBG5YYYPBJ   .....                                     
//                                     ......   ::^^^^::   .....                                      
//                                       .:....          ......                                       
//                          !::~!!!!!!!!!7?7777777!7!!7!7777??!7!7!!~^^^^..~                          
//                          J~:?JJJYYY55YY8YYYYYYYYYYYYYYYYYYYYY5YYYJJJJ?^^Y                          
//                          !?.!JJJJJJYYYY8YYYYYYYYYYYYYYYYYYYYYYYJJJJJJ7.77                          
//                           J~:7JJJJJJYJY8YYYJYYYYYYYYYYYYYY5YJJJJJJJJ?:^J.                          
//                           .J~:7JJJJJJJYYYYY5YYYYYYYYYY5YYYYYJJJJJJJ?^^J:                           
//                            .?!:!?JJJJJJJYYJ5YYYY55YYYY5JYYJJJJJJJ?!:~?:                            
//                              !?~^!??JJJJJJJJYYYYJJYYYJJJJJJJJJJ?!^^7!.                             
//                               .!7~^~!7?JJJJJJJJJJJJJJJJJJJJ??7~^~7!.                               
//                             :^^^~?J7~^~~!7???JJJJJJJJJ??77!~^~7??!^^^.                             
//                             :~77?77????7!~~~~~~~~~~~~~~~~!7??J??777~:                              
//                                .:^~!!77????????7777????????77!!~^.                                 
//                                      ..:::^^^^~~~~~~~^^^:::..                                      

/**
 * @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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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: @openzeppelin/[email protected]/token/ERC20/extensions/ERC20Burnable.sol


// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol)

pragma solidity ^0.8.0;



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

    /**
     * @dev Destroys `amount` tokens from `account`, deducting from the caller's
     * allowance.
     *
     * See {ERC20-_burn} and {ERC20-allowance}.
     *
     * Requirements:
     *
     * - the caller must have allowance for ``accounts``'s tokens of at least
     * `amount`.
     */
    function burnFrom(address account, uint256 amount) public virtual {
        _spendAllowance(account, _msgSender(), amount);
        _burn(account, amount);
    }
}

// File: melon_contract.sol


pragma solidity ^0.8.9;




contract Melon is ERC20, ERC20Burnable, Ownable {
    bool public limited;
    uint256 public maxHoldingAmount;
    uint256 public minHoldingAmount;
    address public uniswapV2Pair;
    mapping(address => bool) public blacklists;
    
    constructor() ERC20("Melon", "MELON") {
        _mint(msg.sender, 800000000000008 * 10 ** decimals());
    }

    function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
    blacklists[_address] = _isBlacklisting;
    }

    function setRule(bool _limited, address _uniswapV2Pair, uint256 _maxHoldingAmount, uint256 _minHoldingAmount) external onlyOwner {
        limited = _limited;
        uniswapV2Pair = _uniswapV2Pair;
        maxHoldingAmount = _maxHoldingAmount;
        minHoldingAmount = _minHoldingAmount;
    }
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) override internal virtual {
        require(!blacklists[to] && !blacklists[from], "Blacklisted");

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

        if (limited && from == uniswapV2Pair) {
            require(super.balanceOf(to) + amount <= maxHoldingAmount && super.balanceOf(to) + amount >= minHoldingAmount, "Forbid");
        }
    }

}

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":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_limited","type":"bool"},{"internalType":"address","name":"_uniswapV2Pair","type":"address"},{"internalType":"uint256","name":"_maxHoldingAmount","type":"uint256"},{"internalType":"uint256","name":"_minHoldingAmount","type":"uint256"}],"name":"setRule","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600581526020017f4d656c6f6e0000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4d454c4f4e00000000000000000000000000000000000000000000000000000081525081600390816200008f91906200095e565b508060049081620000a191906200095e565b505050620000c4620000b86200010d60201b60201c565b6200011560201b60201c565b6200010733620000d9620001db60201b60201c565b600a620000e7919062000bd5565b6602d79883d20008620000fb919062000c26565b620001e460201b60201c565b62000eb3565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000256576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200024d9062000cd2565b60405180910390fd5b6200026a600083836200035160201b60201c565b80600260008282546200027e919062000cf4565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000331919062000d40565b60405180910390a36200034d600083836200066d60201b60201c565b5050565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015620003f65750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b62000438576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200042f9062000dad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036200055b576200049f6200067260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620005135750620004e46200067260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b62000555576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200054c9062000e1f565b60405180910390fd5b62000668565b600560149054906101000a900460ff168015620005c55750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15620006675760065481620005e5846200069c60201b620006de1760201c565b620005f1919062000cf4565b111580156200062457506007548162000615846200069c60201b620006de1760201c565b62000621919062000cf4565b10155b62000666576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200065d9062000e91565b60405180910390fd5b5b5b505050565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200076657607f821691505b6020821081036200077c576200077b6200071e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620007a7565b620007f28683620007a7565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200083f6200083962000833846200080a565b62000814565b6200080a565b9050919050565b6000819050919050565b6200085b836200081e565b620008736200086a8262000846565b848454620007b4565b825550505050565b600090565b6200088a6200087b565b6200089781848462000850565b505050565b5b81811015620008bf57620008b360008262000880565b6001810190506200089d565b5050565b601f8211156200090e57620008d88162000782565b620008e38462000797565b81016020851015620008f3578190505b6200090b620009028562000797565b8301826200089c565b50505b505050565b600082821c905092915050565b6000620009336000198460080262000913565b1980831691505092915050565b60006200094e838362000920565b9150826002028217905092915050565b6200096982620006e4565b67ffffffffffffffff811115620009855762000984620006ef565b5b6200099182546200074d565b6200099e828285620008c3565b600060209050601f831160018114620009d65760008415620009c1578287015190505b620009cd858262000940565b86555062000a3d565b601f198416620009e68662000782565b60005b8281101562000a1057848901518255600182019150602085019450602081019050620009e9565b8683101562000a30578489015162000a2c601f89168262000920565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ad35780860481111562000aab5762000aaa62000a45565b5b600185161562000abb5780820291505b808102905062000acb8562000a74565b945062000a8b565b94509492505050565b60008262000aee576001905062000bc1565b8162000afe576000905062000bc1565b816001811462000b17576002811462000b225762000b58565b600191505062000bc1565b60ff84111562000b375762000b3662000a45565b5b8360020a91508482111562000b515762000b5062000a45565b5b5062000bc1565b5060208310610133831016604e8410600b841016171562000b925782820a90508381111562000b8c5762000b8b62000a45565b5b62000bc1565b62000ba1848484600162000a81565b9250905081840481111562000bbb5762000bba62000a45565b5b81810290505b9392505050565b600060ff82169050919050565b600062000be2826200080a565b915062000bef8362000bc8565b925062000c1e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000adc565b905092915050565b600062000c33826200080a565b915062000c40836200080a565b925082820262000c50816200080a565b9150828204841483151762000c6a5762000c6962000a45565b5b5092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000cba601f8362000c71565b915062000cc78262000c82565b602082019050919050565b6000602082019050818103600083015262000ced8162000cab565b9050919050565b600062000d01826200080a565b915062000d0e836200080a565b925082820190508082111562000d295762000d2862000a45565b5b92915050565b62000d3a816200080a565b82525050565b600060208201905062000d57600083018462000d2f565b92915050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b600062000d95600b8362000c71565b915062000da28262000d5d565b602082019050919050565b6000602082019050818103600083015262000dc88162000d86565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b600062000e0760168362000c71565b915062000e148262000dcf565b602082019050919050565b6000602082019050818103600083015262000e3a8162000df8565b9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b600062000e7960068362000c71565b915062000e868262000e41565b602082019050919050565b6000602082019050818103600083015262000eac8162000e6a565b9050919050565b6120dd8062000ec36000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806349bd5a5e116100c35780638da5cb5b1161007c5780638da5cb5b1461038e57806395d89b41146103ac578063a457c2d7146103ca578063a9059cbb146103fa578063dd62ed3e1461042a578063f2fde38b1461045a5761014d565b806349bd5a5e146102de57806370a08231146102fc578063715018a61461032c57806379cc679014610336578063860a32ec1461035257806389f9a1d3146103705761014d565b806323b872dd1161011557806323b872dd1461020c578063313ce5671461023c578063395093511461025a5780633aa633aa1461028a578063404e5129146102a657806342966c68146102c25761014d565b806306fdde0314610152578063095ea7b31461017057806316c02129146101a057806318160ddd146101d05780631ab99e12146101ee575b600080fd5b61015a610476565b604051610167919061152a565b60405180910390f35b61018a600480360381019061018591906115e5565b610508565b6040516101979190611640565b60405180910390f35b6101ba60048036038101906101b5919061165b565b61052b565b6040516101c79190611640565b60405180910390f35b6101d861054b565b6040516101e59190611697565b60405180910390f35b6101f6610555565b6040516102039190611697565b60405180910390f35b610226600480360381019061022191906116b2565b61055b565b6040516102339190611640565b60405180910390f35b61024461058a565b6040516102519190611721565b60405180910390f35b610274600480360381019061026f91906115e5565b610593565b6040516102819190611640565b60405180910390f35b6102a4600480360381019061029f9190611768565b6105ca565b005b6102c060048036038101906102bb91906117cf565b610641565b005b6102dc60048036038101906102d7919061180f565b6106a4565b005b6102e66106b8565b6040516102f3919061184b565b60405180910390f35b6103166004803603810190610311919061165b565b6106de565b6040516103239190611697565b60405180910390f35b610334610726565b005b610350600480360381019061034b91906115e5565b61073a565b005b61035a61075a565b6040516103679190611640565b60405180910390f35b61037861076d565b6040516103859190611697565b60405180910390f35b610396610773565b6040516103a3919061184b565b60405180910390f35b6103b461079d565b6040516103c1919061152a565b60405180910390f35b6103e460048036038101906103df91906115e5565b61082f565b6040516103f19190611640565b60405180910390f35b610414600480360381019061040f91906115e5565b6108a6565b6040516104219190611640565b60405180910390f35b610444600480360381019061043f9190611866565b6108c9565b6040516104519190611697565b60405180910390f35b610474600480360381019061046f919061165b565b610950565b005b606060038054610485906118d5565b80601f01602080910402602001604051908101604052809291908181526020018280546104b1906118d5565b80156104fe5780601f106104d3576101008083540402835291602001916104fe565b820191906000526020600020905b8154815290600101906020018083116104e157829003601f168201915b5050505050905090565b6000806105136109d3565b90506105208185856109db565b600191505092915050565b60096020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60075481565b6000806105666109d3565b9050610573858285610ba4565b61057e858585610c30565b60019150509392505050565b60006012905090565b60008061059e6109d3565b90506105bf8185856105b085896108c9565b6105ba9190611935565b6109db565b600191505092915050565b6105d2610ea6565b83600560146101000a81548160ff02191690831515021790555082600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816006819055508060078190555050505050565b610649610ea6565b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6106b56106af6109d3565b82610f24565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61072e610ea6565b61073860006110f1565b565b61074c826107466109d3565b83610ba4565b6107568282610f24565b5050565b600560149054906101000a900460ff1681565b60065481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546107ac906118d5565b80601f01602080910402602001604051908101604052809291908181526020018280546107d8906118d5565b80156108255780601f106107fa57610100808354040283529160200191610825565b820191906000526020600020905b81548152906001019060200180831161080857829003601f168201915b5050505050905090565b60008061083a6109d3565b9050600061084882866108c9565b90508381101561088d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610884906119db565b60405180910390fd5b61089a82868684036109db565b60019250505092915050565b6000806108b16109d3565b90506108be818585610c30565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610958610ea6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109be90611a6d565b60405180910390fd5b6109d0816110f1565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190611aff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab090611b91565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b979190611697565b60405180910390a3505050565b6000610bb084846108c9565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c2a5781811015610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1390611bfd565b60405180910390fd5b610c2984848484036109db565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9690611c8f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0590611d21565b60405180910390fd5b610d198383836111b7565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9690611db3565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e8d9190611697565b60405180910390a3610ea0848484611495565b50505050565b610eae6109d3565b73ffffffffffffffffffffffffffffffffffffffff16610ecc610773565b73ffffffffffffffffffffffffffffffffffffffff1614610f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1990611e1f565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8a90611eb1565b60405180910390fd5b610f9f826000836111b7565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101c90611f43565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110d89190611697565b60405180910390a36110ec83600084611495565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561125b5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61129a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129190611faf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036113a7576112f8610773565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806113635750611334610773565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6113a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113999061201b565b60405180910390fd5b611490565b600560149054906101000a900460ff1680156114105750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561148f5760065481611422846106de565b61142c9190611935565b1115801561144f575060075481611442846106de565b61144c9190611935565b10155b61148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590612087565b60405180910390fd5b5b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156114d45780820151818401526020810190506114b9565b60008484015250505050565b6000601f19601f8301169050919050565b60006114fc8261149a565b61150681856114a5565b93506115168185602086016114b6565b61151f816114e0565b840191505092915050565b6000602082019050818103600083015261154481846114f1565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061157c82611551565b9050919050565b61158c81611571565b811461159757600080fd5b50565b6000813590506115a981611583565b92915050565b6000819050919050565b6115c2816115af565b81146115cd57600080fd5b50565b6000813590506115df816115b9565b92915050565b600080604083850312156115fc576115fb61154c565b5b600061160a8582860161159a565b925050602061161b858286016115d0565b9150509250929050565b60008115159050919050565b61163a81611625565b82525050565b60006020820190506116556000830184611631565b92915050565b6000602082840312156116715761167061154c565b5b600061167f8482850161159a565b91505092915050565b611691816115af565b82525050565b60006020820190506116ac6000830184611688565b92915050565b6000806000606084860312156116cb576116ca61154c565b5b60006116d98682870161159a565b93505060206116ea8682870161159a565b92505060406116fb868287016115d0565b9150509250925092565b600060ff82169050919050565b61171b81611705565b82525050565b60006020820190506117366000830184611712565b92915050565b61174581611625565b811461175057600080fd5b50565b6000813590506117628161173c565b92915050565b600080600080608085870312156117825761178161154c565b5b600061179087828801611753565b94505060206117a18782880161159a565b93505060406117b2878288016115d0565b92505060606117c3878288016115d0565b91505092959194509250565b600080604083850312156117e6576117e561154c565b5b60006117f48582860161159a565b925050602061180585828601611753565b9150509250929050565b6000602082840312156118255761182461154c565b5b6000611833848285016115d0565b91505092915050565b61184581611571565b82525050565b6000602082019050611860600083018461183c565b92915050565b6000806040838503121561187d5761187c61154c565b5b600061188b8582860161159a565b925050602061189c8582860161159a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806118ed57607f821691505b602082108103611900576118ff6118a6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611940826115af565b915061194b836115af565b925082820190508082111561196357611962611906565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006119c56025836114a5565b91506119d082611969565b604082019050919050565b600060208201905081810360008301526119f4816119b8565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611a576026836114a5565b9150611a62826119fb565b604082019050919050565b60006020820190508181036000830152611a8681611a4a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611ae96024836114a5565b9150611af482611a8d565b604082019050919050565b60006020820190508181036000830152611b1881611adc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611b7b6022836114a5565b9150611b8682611b1f565b604082019050919050565b60006020820190508181036000830152611baa81611b6e565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611be7601d836114a5565b9150611bf282611bb1565b602082019050919050565b60006020820190508181036000830152611c1681611bda565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611c796025836114a5565b9150611c8482611c1d565b604082019050919050565b60006020820190508181036000830152611ca881611c6c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611d0b6023836114a5565b9150611d1682611caf565b604082019050919050565b60006020820190508181036000830152611d3a81611cfe565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611d9d6026836114a5565b9150611da882611d41565b604082019050919050565b60006020820190508181036000830152611dcc81611d90565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611e096020836114a5565b9150611e1482611dd3565b602082019050919050565b60006020820190508181036000830152611e3881611dfc565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611e9b6021836114a5565b9150611ea682611e3f565b604082019050919050565b60006020820190508181036000830152611eca81611e8e565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f2d6022836114a5565b9150611f3882611ed1565b604082019050919050565b60006020820190508181036000830152611f5c81611f20565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000611f99600b836114a5565b9150611fa482611f63565b602082019050919050565b60006020820190508181036000830152611fc881611f8c565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b60006120056016836114a5565b915061201082611fcf565b602082019050919050565b6000602082019050818103600083015261203481611ff8565b9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b60006120716006836114a5565b915061207c8261203b565b602082019050919050565b600060208201905081810360008301526120a081612064565b905091905056fea2646970667358221220a9dcc79a4affdfef3b36fe3dc4a64957c7bd541242420e9f6d61fdff9bc2754a64736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806349bd5a5e116100c35780638da5cb5b1161007c5780638da5cb5b1461038e57806395d89b41146103ac578063a457c2d7146103ca578063a9059cbb146103fa578063dd62ed3e1461042a578063f2fde38b1461045a5761014d565b806349bd5a5e146102de57806370a08231146102fc578063715018a61461032c57806379cc679014610336578063860a32ec1461035257806389f9a1d3146103705761014d565b806323b872dd1161011557806323b872dd1461020c578063313ce5671461023c578063395093511461025a5780633aa633aa1461028a578063404e5129146102a657806342966c68146102c25761014d565b806306fdde0314610152578063095ea7b31461017057806316c02129146101a057806318160ddd146101d05780631ab99e12146101ee575b600080fd5b61015a610476565b604051610167919061152a565b60405180910390f35b61018a600480360381019061018591906115e5565b610508565b6040516101979190611640565b60405180910390f35b6101ba60048036038101906101b5919061165b565b61052b565b6040516101c79190611640565b60405180910390f35b6101d861054b565b6040516101e59190611697565b60405180910390f35b6101f6610555565b6040516102039190611697565b60405180910390f35b610226600480360381019061022191906116b2565b61055b565b6040516102339190611640565b60405180910390f35b61024461058a565b6040516102519190611721565b60405180910390f35b610274600480360381019061026f91906115e5565b610593565b6040516102819190611640565b60405180910390f35b6102a4600480360381019061029f9190611768565b6105ca565b005b6102c060048036038101906102bb91906117cf565b610641565b005b6102dc60048036038101906102d7919061180f565b6106a4565b005b6102e66106b8565b6040516102f3919061184b565b60405180910390f35b6103166004803603810190610311919061165b565b6106de565b6040516103239190611697565b60405180910390f35b610334610726565b005b610350600480360381019061034b91906115e5565b61073a565b005b61035a61075a565b6040516103679190611640565b60405180910390f35b61037861076d565b6040516103859190611697565b60405180910390f35b610396610773565b6040516103a3919061184b565b60405180910390f35b6103b461079d565b6040516103c1919061152a565b60405180910390f35b6103e460048036038101906103df91906115e5565b61082f565b6040516103f19190611640565b60405180910390f35b610414600480360381019061040f91906115e5565b6108a6565b6040516104219190611640565b60405180910390f35b610444600480360381019061043f9190611866565b6108c9565b6040516104519190611697565b60405180910390f35b610474600480360381019061046f919061165b565b610950565b005b606060038054610485906118d5565b80601f01602080910402602001604051908101604052809291908181526020018280546104b1906118d5565b80156104fe5780601f106104d3576101008083540402835291602001916104fe565b820191906000526020600020905b8154815290600101906020018083116104e157829003601f168201915b5050505050905090565b6000806105136109d3565b90506105208185856109db565b600191505092915050565b60096020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60075481565b6000806105666109d3565b9050610573858285610ba4565b61057e858585610c30565b60019150509392505050565b60006012905090565b60008061059e6109d3565b90506105bf8185856105b085896108c9565b6105ba9190611935565b6109db565b600191505092915050565b6105d2610ea6565b83600560146101000a81548160ff02191690831515021790555082600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816006819055508060078190555050505050565b610649610ea6565b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6106b56106af6109d3565b82610f24565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61072e610ea6565b61073860006110f1565b565b61074c826107466109d3565b83610ba4565b6107568282610f24565b5050565b600560149054906101000a900460ff1681565b60065481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546107ac906118d5565b80601f01602080910402602001604051908101604052809291908181526020018280546107d8906118d5565b80156108255780601f106107fa57610100808354040283529160200191610825565b820191906000526020600020905b81548152906001019060200180831161080857829003601f168201915b5050505050905090565b60008061083a6109d3565b9050600061084882866108c9565b90508381101561088d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610884906119db565b60405180910390fd5b61089a82868684036109db565b60019250505092915050565b6000806108b16109d3565b90506108be818585610c30565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610958610ea6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109be90611a6d565b60405180910390fd5b6109d0816110f1565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190611aff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab090611b91565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b979190611697565b60405180910390a3505050565b6000610bb084846108c9565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c2a5781811015610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1390611bfd565b60405180910390fd5b610c2984848484036109db565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9690611c8f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0590611d21565b60405180910390fd5b610d198383836111b7565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9690611db3565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e8d9190611697565b60405180910390a3610ea0848484611495565b50505050565b610eae6109d3565b73ffffffffffffffffffffffffffffffffffffffff16610ecc610773565b73ffffffffffffffffffffffffffffffffffffffff1614610f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1990611e1f565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8a90611eb1565b60405180910390fd5b610f9f826000836111b7565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101c90611f43565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110d89190611697565b60405180910390a36110ec83600084611495565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561125b5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61129a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129190611faf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036113a7576112f8610773565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806113635750611334610773565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6113a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113999061201b565b60405180910390fd5b611490565b600560149054906101000a900460ff1680156114105750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561148f5760065481611422846106de565b61142c9190611935565b1115801561144f575060075481611442846106de565b61144c9190611935565b10155b61148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590612087565b60405180910390fd5b5b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156114d45780820151818401526020810190506114b9565b60008484015250505050565b6000601f19601f8301169050919050565b60006114fc8261149a565b61150681856114a5565b93506115168185602086016114b6565b61151f816114e0565b840191505092915050565b6000602082019050818103600083015261154481846114f1565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061157c82611551565b9050919050565b61158c81611571565b811461159757600080fd5b50565b6000813590506115a981611583565b92915050565b6000819050919050565b6115c2816115af565b81146115cd57600080fd5b50565b6000813590506115df816115b9565b92915050565b600080604083850312156115fc576115fb61154c565b5b600061160a8582860161159a565b925050602061161b858286016115d0565b9150509250929050565b60008115159050919050565b61163a81611625565b82525050565b60006020820190506116556000830184611631565b92915050565b6000602082840312156116715761167061154c565b5b600061167f8482850161159a565b91505092915050565b611691816115af565b82525050565b60006020820190506116ac6000830184611688565b92915050565b6000806000606084860312156116cb576116ca61154c565b5b60006116d98682870161159a565b93505060206116ea8682870161159a565b92505060406116fb868287016115d0565b9150509250925092565b600060ff82169050919050565b61171b81611705565b82525050565b60006020820190506117366000830184611712565b92915050565b61174581611625565b811461175057600080fd5b50565b6000813590506117628161173c565b92915050565b600080600080608085870312156117825761178161154c565b5b600061179087828801611753565b94505060206117a18782880161159a565b93505060406117b2878288016115d0565b92505060606117c3878288016115d0565b91505092959194509250565b600080604083850312156117e6576117e561154c565b5b60006117f48582860161159a565b925050602061180585828601611753565b9150509250929050565b6000602082840312156118255761182461154c565b5b6000611833848285016115d0565b91505092915050565b61184581611571565b82525050565b6000602082019050611860600083018461183c565b92915050565b6000806040838503121561187d5761187c61154c565b5b600061188b8582860161159a565b925050602061189c8582860161159a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806118ed57607f821691505b602082108103611900576118ff6118a6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611940826115af565b915061194b836115af565b925082820190508082111561196357611962611906565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006119c56025836114a5565b91506119d082611969565b604082019050919050565b600060208201905081810360008301526119f4816119b8565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611a576026836114a5565b9150611a62826119fb565b604082019050919050565b60006020820190508181036000830152611a8681611a4a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611ae96024836114a5565b9150611af482611a8d565b604082019050919050565b60006020820190508181036000830152611b1881611adc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611b7b6022836114a5565b9150611b8682611b1f565b604082019050919050565b60006020820190508181036000830152611baa81611b6e565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611be7601d836114a5565b9150611bf282611bb1565b602082019050919050565b60006020820190508181036000830152611c1681611bda565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611c796025836114a5565b9150611c8482611c1d565b604082019050919050565b60006020820190508181036000830152611ca881611c6c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611d0b6023836114a5565b9150611d1682611caf565b604082019050919050565b60006020820190508181036000830152611d3a81611cfe565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611d9d6026836114a5565b9150611da882611d41565b604082019050919050565b60006020820190508181036000830152611dcc81611d90565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611e096020836114a5565b9150611e1482611dd3565b602082019050919050565b60006020820190508181036000830152611e3881611dfc565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611e9b6021836114a5565b9150611ea682611e3f565b604082019050919050565b60006020820190508181036000830152611eca81611e8e565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f2d6022836114a5565b9150611f3882611ed1565b604082019050919050565b60006020820190508181036000830152611f5c81611f20565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000611f99600b836114a5565b9150611fa482611f63565b602082019050919050565b60006020820190508181036000830152611fc881611f8c565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b60006120056016836114a5565b915061201082611fcf565b602082019050919050565b6000602082019050818103600083015261203481611ff8565b9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b60006120716006836114a5565b915061207c8261203b565b602082019050919050565b600060208201905081810360008301526120a081612064565b905091905056fea2646970667358221220a9dcc79a4affdfef3b36fe3dc4a64957c7bd541242420e9f6d61fdff9bc2754a64736f6c63430008120033

Deployed Bytecode Sourcemap

24542:1383:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12118:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14469:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24734:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13238:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24661:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15250:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13080:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15954:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25046:301;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24907:131;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23895:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24699:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13409:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5525:103;;;:::i;:::-;;24305:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24597:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24623:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4877:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12337:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16695:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13742:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13998:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5783:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12118:100;12172:13;12205:5;12198:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12118:100;:::o;14469:201::-;14552:4;14569:13;14585:12;:10;:12::i;:::-;14569:28;;14608:32;14617:5;14624:7;14633:6;14608:8;:32::i;:::-;14658:4;14651:11;;;14469:201;;;;:::o;24734:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;13238:108::-;13299:7;13326:12;;13319:19;;13238:108;:::o;24661:31::-;;;;:::o;15250:295::-;15381:4;15398:15;15416:12;:10;:12::i;:::-;15398:30;;15439:38;15455:4;15461:7;15470:6;15439:15;:38::i;:::-;15488:27;15498:4;15504:2;15508:6;15488:9;:27::i;:::-;15533:4;15526:11;;;15250:295;;;;;:::o;13080:93::-;13138:5;13163:2;13156:9;;13080:93;:::o;15954:238::-;16042:4;16059:13;16075:12;:10;:12::i;:::-;16059:28;;16098:64;16107:5;16114:7;16151:10;16123:25;16133:5;16140:7;16123:9;:25::i;:::-;:38;;;;:::i;:::-;16098:8;:64::i;:::-;16180:4;16173:11;;;15954:238;;;;:::o;25046:301::-;4763:13;:11;:13::i;:::-;25196:8:::1;25186:7;;:18;;;;;;;;;;;;;;;;;;25231:14;25215:13;;:30;;;;;;;;;;;;;;;;;;25275:17;25256:16;:36;;;;25322:17;25303:16;:36;;;;25046:301:::0;;;;:::o;24907:131::-;4763:13;:11;:13::i;:::-;25015:15:::1;24992:10;:20;25003:8;24992:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;24907:131:::0;;:::o;23895:91::-;23951:27;23957:12;:10;:12::i;:::-;23971:6;23951:5;:27::i;:::-;23895:91;:::o;24699:28::-;;;;;;;;;;;;;:::o;13409:127::-;13483:7;13510:9;:18;13520:7;13510:18;;;;;;;;;;;;;;;;13503:25;;13409:127;;;:::o;5525:103::-;4763:13;:11;:13::i;:::-;5590:30:::1;5617:1;5590:18;:30::i;:::-;5525:103::o:0;24305:164::-;24382:46;24398:7;24407:12;:10;:12::i;:::-;24421:6;24382:15;:46::i;:::-;24439:22;24445:7;24454:6;24439:5;:22::i;:::-;24305:164;;:::o;24597:19::-;;;;;;;;;;;;;:::o;24623:31::-;;;;:::o;4877:87::-;4923:7;4950:6;;;;;;;;;;;4943:13;;4877:87;:::o;12337:104::-;12393:13;12426:7;12419:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12337:104;:::o;16695:436::-;16788:4;16805:13;16821:12;:10;:12::i;:::-;16805:28;;16844:24;16871:25;16881:5;16888:7;16871:9;:25::i;:::-;16844:52;;16935:15;16915:16;:35;;16907:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17028:60;17037:5;17044:7;17072:15;17053:16;:34;17028:8;:60::i;:::-;17119:4;17112:11;;;;16695:436;;;;:::o;13742:193::-;13821:4;13838:13;13854:12;:10;:12::i;:::-;13838:28;;13877;13887:5;13894:2;13898:6;13877:9;:28::i;:::-;13923:4;13916:11;;;13742:193;;;;:::o;13998:151::-;14087:7;14114:11;:18;14126:5;14114:18;;;;;;;;;;;;;;;:27;14133:7;14114:27;;;;;;;;;;;;;;;;14107:34;;13998:151;;;;:::o;5783:201::-;4763:13;:11;:13::i;:::-;5892:1:::1;5872:22;;:8;:22;;::::0;5864:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5948:28;5967:8;5948:18;:28::i;:::-;5783:201:::0;:::o;3422:98::-;3475:7;3502:10;3495:17;;3422:98;:::o;20722:380::-;20875:1;20858:19;;:5;:19;;;20850:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20956:1;20937:21;;:7;:21;;;20929:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21040:6;21010:11;:18;21022:5;21010:18;;;;;;;;;;;;;;;:27;21029:7;21010:27;;;;;;;;;;;;;;;:36;;;;21078:7;21062:32;;21071:5;21062:32;;;21087:6;21062:32;;;;;;:::i;:::-;;;;;;;;20722:380;;;:::o;21393:453::-;21528:24;21555:25;21565:5;21572:7;21555:9;:25::i;:::-;21528:52;;21615:17;21595:16;:37;21591:248;;21677:6;21657:16;:26;;21649:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21761:51;21770:5;21777:7;21805:6;21786:16;:25;21761:8;:51::i;:::-;21591:248;21517:329;21393:453;;;:::o;17601:840::-;17748:1;17732:18;;:4;:18;;;17724:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17825:1;17811:16;;:2;:16;;;17803:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17880:38;17901:4;17907:2;17911:6;17880:20;:38::i;:::-;17931:19;17953:9;:15;17963:4;17953:15;;;;;;;;;;;;;;;;17931:37;;18002:6;17987:11;:21;;17979:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;18119:6;18105:11;:20;18087:9;:15;18097:4;18087:15;;;;;;;;;;;;;;;:38;;;;18322:6;18305:9;:13;18315:2;18305:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;18372:2;18357:26;;18366:4;18357:26;;;18376:6;18357:26;;;;;;:::i;:::-;;;;;;;;18396:37;18416:4;18422:2;18426:6;18396:19;:37::i;:::-;17713:728;17601:840;;;:::o;5042:132::-;5117:12;:10;:12::i;:::-;5106:23;;:7;:5;:7::i;:::-;:23;;;5098:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5042:132::o;19609:675::-;19712:1;19693:21;;:7;:21;;;19685:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19765:49;19786:7;19803:1;19807:6;19765:20;:49::i;:::-;19827:22;19852:9;:18;19862:7;19852:18;;;;;;;;;;;;;;;;19827:43;;19907:6;19889:14;:24;;19881:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20026:6;20009:14;:23;19988:9;:18;19998:7;19988:18;;;;;;;;;;;;;;;:44;;;;20143:6;20127:12;;:22;;;;;;;;;;;20204:1;20178:37;;20187:7;20178:37;;;20208:6;20178:37;;;;;;:::i;:::-;;;;;;;;20228:48;20248:7;20265:1;20269:6;20228:19;:48::i;:::-;19674:610;19609:675;;:::o;6144:191::-;6218:16;6237:6;;;;;;;;;;;6218:25;;6263:8;6254:6;;:17;;;;;;;;;;;;;;;;;;6318:8;6287:40;;6308:8;6287:40;;;;;;;;;;;;6207:128;6144:191;:::o;25353:567::-;25505:10;:14;25516:2;25505:14;;;;;;;;;;;;;;;;;;;;;;;;;25504:15;:36;;;;;25524:10;:16;25535:4;25524:16;;;;;;;;;;;;;;;;;;;;;;;;;25523:17;25504:36;25496:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;25598:1;25573:27;;:13;;;;;;;;;;;:27;;;25569:148;;25633:7;:5;:7::i;:::-;25625:15;;:4;:15;;;:32;;;;25650:7;:5;:7::i;:::-;25644:13;;:2;:13;;;25625:32;25617:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25699:7;;25569:148;25733:7;;;;;;;;;;;:32;;;;;25752:13;;;;;;;;;;;25744:21;;:4;:21;;;25733:32;25729:184;;;25822:16;;25812:6;25790:19;25806:2;25790:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;:100;;;;;25874:16;;25864:6;25842:19;25858:2;25842:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;25790:100;25782:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;25729:184;25353:567;;;;:::o;23175:124::-;;;;:::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;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:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::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:116::-;5258:21;5273:5;5258:21;:::i;:::-;5251:5;5248:32;5238:60;;5294:1;5291;5284:12;5238:60;5188:116;:::o;5310:133::-;5353:5;5391:6;5378:20;5369:29;;5407:30;5431:5;5407:30;:::i;:::-;5310:133;;;;:::o;5449:759::-;5532:6;5540;5548;5556;5605:3;5593:9;5584:7;5580:23;5576:33;5573:120;;;5612:79;;:::i;:::-;5573:120;5732:1;5757:50;5799:7;5790:6;5779:9;5775:22;5757:50;:::i;:::-;5747:60;;5703:114;5856:2;5882:53;5927:7;5918:6;5907:9;5903:22;5882:53;:::i;:::-;5872:63;;5827:118;5984:2;6010:53;6055:7;6046:6;6035:9;6031:22;6010:53;:::i;:::-;6000:63;;5955:118;6112:2;6138:53;6183:7;6174:6;6163:9;6159:22;6138:53;:::i;:::-;6128:63;;6083:118;5449:759;;;;;;;:::o;6214:468::-;6279:6;6287;6336:2;6324:9;6315:7;6311:23;6307:32;6304:119;;;6342:79;;:::i;:::-;6304:119;6462:1;6487:53;6532:7;6523:6;6512:9;6508:22;6487:53;:::i;:::-;6477:63;;6433:117;6589:2;6615:50;6657:7;6648:6;6637:9;6633:22;6615:50;:::i;:::-;6605:60;;6560:115;6214:468;;;;;:::o;6688:329::-;6747:6;6796:2;6784:9;6775:7;6771:23;6767:32;6764:119;;;6802:79;;:::i;:::-;6764:119;6922:1;6947:53;6992:7;6983:6;6972:9;6968:22;6947:53;:::i;:::-;6937:63;;6893:117;6688:329;;;;:::o;7023:118::-;7110:24;7128:5;7110:24;:::i;:::-;7105:3;7098:37;7023:118;;:::o;7147:222::-;7240:4;7278:2;7267:9;7263:18;7255:26;;7291:71;7359:1;7348:9;7344:17;7335:6;7291:71;:::i;:::-;7147:222;;;;:::o;7375:474::-;7443:6;7451;7500:2;7488:9;7479:7;7475:23;7471:32;7468:119;;;7506:79;;:::i;:::-;7468:119;7626:1;7651:53;7696:7;7687:6;7676:9;7672:22;7651:53;:::i;:::-;7641:63;;7597:117;7753:2;7779:53;7824:7;7815:6;7804:9;7800:22;7779:53;:::i;:::-;7769:63;;7724:118;7375:474;;;;;:::o;7855:180::-;7903:77;7900:1;7893:88;8000:4;7997:1;7990:15;8024:4;8021:1;8014:15;8041:320;8085:6;8122:1;8116:4;8112:12;8102:22;;8169:1;8163:4;8159:12;8190:18;8180:81;;8246:4;8238:6;8234:17;8224:27;;8180:81;8308:2;8300:6;8297:14;8277:18;8274:38;8271:84;;8327:18;;:::i;:::-;8271:84;8092:269;8041:320;;;:::o;8367:180::-;8415:77;8412:1;8405:88;8512:4;8509:1;8502:15;8536:4;8533:1;8526:15;8553:191;8593:3;8612:20;8630:1;8612:20;:::i;:::-;8607:25;;8646:20;8664:1;8646:20;:::i;:::-;8641:25;;8689:1;8686;8682:9;8675:16;;8710:3;8707:1;8704:10;8701:36;;;8717:18;;:::i;:::-;8701:36;8553:191;;;;:::o;8750:224::-;8890:34;8886:1;8878:6;8874:14;8867:58;8959:7;8954:2;8946:6;8942:15;8935:32;8750:224;:::o;8980:366::-;9122:3;9143:67;9207:2;9202:3;9143:67;:::i;:::-;9136:74;;9219:93;9308:3;9219:93;:::i;:::-;9337:2;9332:3;9328:12;9321:19;;8980:366;;;:::o;9352:419::-;9518:4;9556:2;9545:9;9541:18;9533:26;;9605:9;9599:4;9595:20;9591:1;9580:9;9576:17;9569:47;9633:131;9759:4;9633:131;:::i;:::-;9625:139;;9352:419;;;:::o;9777:225::-;9917:34;9913:1;9905:6;9901:14;9894:58;9986:8;9981:2;9973:6;9969:15;9962:33;9777:225;:::o;10008:366::-;10150:3;10171:67;10235:2;10230:3;10171:67;:::i;:::-;10164:74;;10247:93;10336:3;10247:93;:::i;:::-;10365:2;10360:3;10356:12;10349:19;;10008:366;;;:::o;10380:419::-;10546:4;10584:2;10573:9;10569:18;10561:26;;10633:9;10627:4;10623:20;10619:1;10608:9;10604:17;10597:47;10661:131;10787:4;10661:131;:::i;:::-;10653:139;;10380:419;;;:::o;10805:223::-;10945:34;10941:1;10933:6;10929:14;10922:58;11014:6;11009:2;11001:6;10997:15;10990:31;10805:223;:::o;11034:366::-;11176:3;11197:67;11261:2;11256:3;11197:67;:::i;:::-;11190:74;;11273:93;11362:3;11273:93;:::i;:::-;11391:2;11386:3;11382:12;11375:19;;11034:366;;;:::o;11406:419::-;11572:4;11610:2;11599:9;11595:18;11587:26;;11659:9;11653:4;11649:20;11645:1;11634:9;11630:17;11623:47;11687:131;11813:4;11687:131;:::i;:::-;11679:139;;11406:419;;;:::o;11831:221::-;11971:34;11967:1;11959:6;11955:14;11948:58;12040:4;12035:2;12027:6;12023:15;12016:29;11831:221;:::o;12058:366::-;12200:3;12221:67;12285:2;12280:3;12221:67;:::i;:::-;12214:74;;12297:93;12386:3;12297:93;:::i;:::-;12415:2;12410:3;12406:12;12399:19;;12058:366;;;:::o;12430:419::-;12596:4;12634:2;12623:9;12619:18;12611:26;;12683:9;12677:4;12673:20;12669:1;12658:9;12654:17;12647:47;12711:131;12837:4;12711:131;:::i;:::-;12703:139;;12430:419;;;:::o;12855:179::-;12995:31;12991:1;12983:6;12979:14;12972:55;12855:179;:::o;13040:366::-;13182:3;13203:67;13267:2;13262:3;13203:67;:::i;:::-;13196:74;;13279:93;13368:3;13279:93;:::i;:::-;13397:2;13392:3;13388:12;13381:19;;13040:366;;;:::o;13412:419::-;13578:4;13616:2;13605:9;13601:18;13593:26;;13665:9;13659:4;13655:20;13651:1;13640:9;13636:17;13629:47;13693:131;13819:4;13693:131;:::i;:::-;13685:139;;13412:419;;;:::o;13837:224::-;13977:34;13973:1;13965:6;13961:14;13954:58;14046:7;14041:2;14033:6;14029:15;14022:32;13837:224;:::o;14067:366::-;14209:3;14230:67;14294:2;14289:3;14230:67;:::i;:::-;14223:74;;14306:93;14395:3;14306:93;:::i;:::-;14424:2;14419:3;14415:12;14408:19;;14067:366;;;:::o;14439:419::-;14605:4;14643:2;14632:9;14628:18;14620:26;;14692:9;14686:4;14682:20;14678:1;14667:9;14663:17;14656:47;14720:131;14846:4;14720:131;:::i;:::-;14712:139;;14439:419;;;:::o;14864:222::-;15004:34;15000:1;14992:6;14988:14;14981:58;15073:5;15068:2;15060:6;15056:15;15049:30;14864:222;:::o;15092:366::-;15234:3;15255:67;15319:2;15314:3;15255:67;:::i;:::-;15248:74;;15331:93;15420:3;15331:93;:::i;:::-;15449:2;15444:3;15440:12;15433:19;;15092:366;;;:::o;15464:419::-;15630:4;15668:2;15657:9;15653:18;15645:26;;15717:9;15711:4;15707:20;15703:1;15692:9;15688:17;15681:47;15745:131;15871:4;15745:131;:::i;:::-;15737:139;;15464:419;;;:::o;15889:225::-;16029:34;16025:1;16017:6;16013:14;16006:58;16098:8;16093:2;16085:6;16081:15;16074:33;15889:225;:::o;16120:366::-;16262:3;16283:67;16347:2;16342:3;16283:67;:::i;:::-;16276:74;;16359:93;16448:3;16359:93;:::i;:::-;16477:2;16472:3;16468:12;16461:19;;16120:366;;;:::o;16492:419::-;16658:4;16696:2;16685:9;16681:18;16673:26;;16745:9;16739:4;16735:20;16731:1;16720:9;16716:17;16709:47;16773:131;16899:4;16773:131;:::i;:::-;16765:139;;16492:419;;;:::o;16917:182::-;17057:34;17053:1;17045:6;17041:14;17034:58;16917:182;:::o;17105:366::-;17247:3;17268:67;17332:2;17327:3;17268:67;:::i;:::-;17261:74;;17344:93;17433:3;17344:93;:::i;:::-;17462:2;17457:3;17453:12;17446:19;;17105:366;;;:::o;17477:419::-;17643:4;17681:2;17670:9;17666:18;17658:26;;17730:9;17724:4;17720:20;17716:1;17705:9;17701:17;17694:47;17758:131;17884:4;17758:131;:::i;:::-;17750:139;;17477:419;;;:::o;17902:220::-;18042:34;18038:1;18030:6;18026:14;18019:58;18111:3;18106:2;18098:6;18094:15;18087:28;17902:220;:::o;18128:366::-;18270:3;18291:67;18355:2;18350:3;18291:67;:::i;:::-;18284:74;;18367:93;18456:3;18367:93;:::i;:::-;18485:2;18480:3;18476:12;18469:19;;18128:366;;;:::o;18500:419::-;18666:4;18704:2;18693:9;18689:18;18681:26;;18753:9;18747:4;18743:20;18739:1;18728:9;18724:17;18717:47;18781:131;18907:4;18781:131;:::i;:::-;18773:139;;18500:419;;;:::o;18925:221::-;19065:34;19061:1;19053:6;19049:14;19042:58;19134:4;19129:2;19121:6;19117:15;19110:29;18925:221;:::o;19152:366::-;19294:3;19315:67;19379:2;19374:3;19315:67;:::i;:::-;19308:74;;19391:93;19480:3;19391:93;:::i;:::-;19509:2;19504:3;19500:12;19493:19;;19152:366;;;:::o;19524:419::-;19690:4;19728:2;19717:9;19713:18;19705:26;;19777:9;19771:4;19767:20;19763:1;19752:9;19748:17;19741:47;19805:131;19931:4;19805:131;:::i;:::-;19797:139;;19524:419;;;:::o;19949:161::-;20089:13;20085:1;20077:6;20073:14;20066:37;19949:161;:::o;20116:366::-;20258:3;20279:67;20343:2;20338:3;20279:67;:::i;:::-;20272:74;;20355:93;20444:3;20355:93;:::i;:::-;20473:2;20468:3;20464:12;20457:19;;20116:366;;;:::o;20488:419::-;20654:4;20692:2;20681:9;20677:18;20669:26;;20741:9;20735:4;20731:20;20727:1;20716:9;20712:17;20705:47;20769:131;20895:4;20769:131;:::i;:::-;20761:139;;20488:419;;;:::o;20913:172::-;21053:24;21049:1;21041:6;21037:14;21030:48;20913:172;:::o;21091:366::-;21233:3;21254:67;21318:2;21313:3;21254:67;:::i;:::-;21247:74;;21330:93;21419:3;21330:93;:::i;:::-;21448:2;21443:3;21439:12;21432:19;;21091:366;;;:::o;21463:419::-;21629:4;21667:2;21656:9;21652:18;21644:26;;21716:9;21710:4;21706:20;21702:1;21691:9;21687:17;21680:47;21744:131;21870:4;21744:131;:::i;:::-;21736:139;;21463:419;;;:::o;21888:156::-;22028:8;22024:1;22016:6;22012:14;22005:32;21888:156;:::o;22050:365::-;22192:3;22213:66;22277:1;22272:3;22213:66;:::i;:::-;22206:73;;22288:93;22377:3;22288:93;:::i;:::-;22406:2;22401:3;22397:12;22390:19;;22050:365;;;:::o;22421:419::-;22587:4;22625:2;22614:9;22610:18;22602:26;;22674:9;22668:4;22664:20;22660:1;22649:9;22645:17;22638:47;22702:131;22828:4;22702:131;:::i;:::-;22694:139;;22421:419;;;:::o

Swarm Source

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