ETH Price: $1,977.42 (+0.84%)
 

Overview

Max Total Supply

1,000,000,000,000,000 CHOW

Holders

167

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Arbitrum: Bridge
Balance
3,000,000,000 CHOW

Value
$0.00
0x8315177ab297ba92a06054ce80a67ed4dbd7ed3a
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:
ChowChow

Compiler Version
v0.8.30+commit.73712a01

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2025-05-12
*/

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


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

pragma solidity ^0.8.0;

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

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

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

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

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

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

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

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

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


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

pragma solidity ^0.8.0;


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

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

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

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


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

pragma solidity ^0.8.0;

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

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

// File: @openzeppelin/contracts@4.8.0/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/contracts@4.8.0/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: ChowChow.sol


pragma solidity ^0.8.9;



contract ChowChow is ERC20, Ownable {
    uint256 public maxWalletAmount;
    bool public maxWalletEnabled = true;
    mapping(address => bool) public isExcludedFromMaxWallet;

    address public uniswapPair;
    address public taxWallet;
    uint256 public tradingStartBlock;
    uint256 public constant BUY_TAX_BLOCKS = 5;
    uint256 public constant BUY_TAX_PERCENT = 90;

    constructor() ERC20("CHOW CHOW", "CHOW") Ownable() {
        uint256 totalSupply = 1_000_000_000_000_000 * 10 ** decimals();
        _mint(msg.sender, totalSupply);

        maxWalletAmount = (totalSupply * 2) / 100;

        taxWallet = msg.sender;

        isExcludedFromMaxWallet[msg.sender] = true;
        isExcludedFromMaxWallet[address(this)] = true;
    }

    function setUniswapPair(address pair) external onlyOwner {
        uniswapPair = pair;
    }

    function startTrading() external onlyOwner {
        require(tradingStartBlock == 0, "Trading already started");
        tradingStartBlock = block.number;
    }

    function setTaxWallet(address wallet) external onlyOwner {
        taxWallet = wallet;
    }

    function setMaxWalletAmount(uint256 newMaxWalletAmount) external onlyOwner {
        require(newMaxWalletAmount > 0, "Max wallet must be greater than 0");
        maxWalletAmount = newMaxWalletAmount;
    }

    function setExcludedFromMaxWallet(address account, bool excluded) external onlyOwner {
        isExcludedFromMaxWallet[account] = excluded;
    }

    function setMaxWalletEnabled(bool enabled) external onlyOwner {
        maxWalletEnabled = enabled;
    }

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

        // Enforce max wallet only after trading has started
        if (tradingStartBlock != 0 && !isExcludedFromMaxWallet[to]) {
            require(balanceOf(to) + amount <= maxWalletAmount, "Transfer exceeds max wallet limit");
        }

        uint256 taxedAmount = amount;

        // Apply 90% buy tax for first 5 blocks after trading starts
        if (
            tradingStartBlock != 0 &&
            block.number <= tradingStartBlock + BUY_TAX_BLOCKS &&
            from == uniswapPair &&
            taxWallet != address(0)
        ) {
            uint256 tax = (amount * BUY_TAX_PERCENT) / 100;
            super._beforeTokenTransfer(from, taxWallet, tax);
            taxedAmount = amount - tax;
        }

        super._beforeTokenTransfer(from, to, taxedAmount);
    }
}


// Links:
// Twitter: https://x.com/ChowChow0x
// Telegram: https://t.me/CHOWCHOW0x
// Website: chow.meme

Contract Security Audit

Contract ABI

API
[{"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":[],"name":"BUY_TAX_BLOCKS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BUY_TAX_PERCENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setMaxWalletEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"setTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"setUniswapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingStartBlock","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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

6080604052600160075f6101000a81548160ff021916908315150217905550348015610029575f5ffd5b506040518060400160405280600981526020017f43484f572043484f5700000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f43484f570000000000000000000000000000000000000000000000000000000081525081600390816100a591906108f7565b5080600490816100b591906108f7565b5050506100d46100c961022260201b60201c565b61022960201b60201c565b5f6100e36102ec60201b60201c565b600a6100ef9190610b2e565b66038d7ea4c680006101019190610b78565b905061011333826102f460201b60201c565b60646002826101229190610b78565b61012c9190610be6565b60068190555033600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050610daa565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035990610c70565b60405180910390fd5b6103735f838361044e60201b60201c565b8060025f8282546103849190610c8e565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104319190610cd0565b60405180910390a361044a5f838361066b60201b60201c565b5050565b61045f83838361067060201b60201c565b5f600b54141580156104b8575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561051c57600654816104d08461067560201b60201c565b6104da9190610c8e565b111561051b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051290610d59565b60405180910390fd5b5b5f8190505f600b541415801561054057506005600b5461053c9190610c8e565b4311155b8015610598575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156105f157505f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15610654575f6064605a846106069190610b78565b6106109190610be6565b905061064485600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361067060201b60201c565b80836106509190610d77565b9150505b61066584848361067060201b60201c565b50505050565b505050565b505050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061073557607f821691505b602082108103610748576107476106f1565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026107aa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261076f565b6107b4868361076f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6107f86107f36107ee846107cc565b6107d5565b6107cc565b9050919050565b5f819050919050565b610811836107de565b61082561081d826107ff565b84845461077b565b825550505050565b5f5f905090565b61083c61082d565b610847818484610808565b505050565b5b8181101561086a5761085f5f82610834565b60018101905061084d565b5050565b601f8211156108af576108808161074e565b61088984610760565b81016020851015610898578190505b6108ac6108a485610760565b83018261084c565b50505b505050565b5f82821c905092915050565b5f6108cf5f19846008026108b4565b1980831691505092915050565b5f6108e783836108c0565b9150826002028217905092915050565b610900826106ba565b67ffffffffffffffff811115610919576109186106c4565b5b610923825461071e565b61092e82828561086e565b5f60209050601f83116001811461095f575f841561094d578287015190505b61095785826108dc565b8655506109be565b601f19841661096d8661074e565b5f5b828110156109945784890151825560018201915060208501945060208101905061096f565b868310156109b157848901516109ad601f8916826108c0565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b6001851115610a4857808604811115610a2457610a236109c6565b5b6001851615610a335780820291505b8081029050610a41856109f3565b9450610a08565b94509492505050565b5f82610a605760019050610b1b565b81610a6d575f9050610b1b565b8160018114610a835760028114610a8d57610abc565b6001915050610b1b565b60ff841115610a9f57610a9e6109c6565b5b8360020a915084821115610ab657610ab56109c6565b5b50610b1b565b5060208310610133831016604e8410600b8410161715610af15782820a905083811115610aec57610aeb6109c6565b5b610b1b565b610afe84848460016109ff565b92509050818404811115610b1557610b146109c6565b5b81810290505b9392505050565b5f60ff82169050919050565b5f610b38826107cc565b9150610b4383610b22565b9250610b707fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610a51565b905092915050565b5f610b82826107cc565b9150610b8d836107cc565b9250828202610b9b816107cc565b91508282048414831517610bb257610bb16109c6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610bf0826107cc565b9150610bfb836107cc565b925082610c0b57610c0a610bb9565b5b828204905092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610c5a601f83610c16565b9150610c6582610c26565b602082019050919050565b5f6020820190508181035f830152610c8781610c4e565b9050919050565b5f610c98826107cc565b9150610ca3836107cc565b9250828201905080821115610cbb57610cba6109c6565b5b92915050565b610cca816107cc565b82525050565b5f602082019050610ce35f830184610cc1565b92915050565b7f5472616e736665722065786365656473206d61782077616c6c6574206c696d695f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f610d43602183610c16565b9150610d4e82610ce9565b604082019050919050565b5f6020820190508181035f830152610d7081610d37565b9050919050565b5f610d81826107cc565b9150610d8c836107cc565b9250828203905081811115610da457610da36109c6565b5b92915050565b611f2680610db75f395ff3fe608060405234801561000f575f5ffd5b50600436106101c2575f3560e01c806395d89b41116100f7578063c816841b11610095578063d798cbd21161006f578063d798cbd2146104e4578063dd62ed3e14610502578063ea414b2814610532578063f2fde38b1461054e576101c2565b8063c816841b1461048c578063d045a329146104aa578063d5aed6bf146104c8576101c2565b8063a614ff75116100d1578063a614ff7514610404578063a9059cbb14610420578063aa4bde2814610450578063b416d1a31461046e576101c2565b806395d89b4114610398578063a457c2d7146103b6578063a4be2840146103e6576101c2565b8063313ce567116101645780636dd3d39f1161013e5780636dd3d39f1461031057806370a0823114610340578063715018a6146103705780638da5cb5b1461037a576101c2565b8063313ce567146102a657806339509351146102c457806341220104146102f4576101c2565b806323b872dd116101a057806323b872dd1461023257806327a14fc214610262578063293230b81461027e5780632dc0562d14610288576101c2565b806306fdde03146101c6578063095ea7b3146101e457806318160ddd14610214575b5f5ffd5b6101ce61056a565b6040516101db919061140f565b60405180910390f35b6101fe60048036038101906101f991906114c0565b6105fa565b60405161020b9190611518565b60405180910390f35b61021c61061c565b6040516102299190611540565b60405180910390f35b61024c60048036038101906102479190611559565b610625565b6040516102599190611518565b60405180910390f35b61027c600480360381019061027791906115a9565b610653565b005b6102866106a7565b005b6102906106fc565b60405161029d91906115e3565b60405180910390f35b6102ae610721565b6040516102bb9190611617565b60405180910390f35b6102de60048036038101906102d991906114c0565b610729565b6040516102eb9190611518565b60405180910390f35b61030e6004803603810190610309919061165a565b61075f565b005b61032a60048036038101906103259190611698565b6107bf565b6040516103379190611518565b60405180910390f35b61035a60048036038101906103559190611698565b6107dc565b6040516103679190611540565b60405180910390f35b610378610821565b005b610382610834565b60405161038f91906115e3565b60405180910390f35b6103a061085c565b6040516103ad919061140f565b60405180910390f35b6103d060048036038101906103cb91906114c0565b6108ec565b6040516103dd9190611518565b60405180910390f35b6103ee610961565b6040516103fb9190611540565b60405180910390f35b61041e600480360381019061041991906116c3565b610966565b005b61043a600480360381019061043591906114c0565b61098a565b6040516104479190611518565b60405180910390f35b6104586109ac565b6040516104659190611540565b60405180910390f35b6104766109b2565b6040516104839190611540565b60405180910390f35b6104946109b7565b6040516104a191906115e3565b60405180910390f35b6104b26109dc565b6040516104bf9190611518565b60405180910390f35b6104e260048036038101906104dd9190611698565b6109ee565b005b6104ec610a39565b6040516104f99190611540565b60405180910390f35b61051c600480360381019061051791906116ee565b610a3f565b6040516105299190611540565b60405180910390f35b61054c60048036038101906105479190611698565b610ac1565b005b61056860048036038101906105639190611698565b610b0c565b005b60606003805461057990611759565b80601f01602080910402602001604051908101604052809291908181526020018280546105a590611759565b80156105f05780601f106105c7576101008083540402835291602001916105f0565b820191905f5260205f20905b8154815290600101906020018083116105d357829003601f168201915b5050505050905090565b5f5f610604610b8e565b9050610611818585610b95565b600191505092915050565b5f600254905090565b5f5f61062f610b8e565b905061063c858285610d58565b610647858585610de3565b60019150509392505050565b61065b61104f565b5f811161069d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610694906117f9565b60405180910390fd5b8060068190555050565b6106af61104f565b5f600b54146106f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ea90611861565b60405180910390fd5b43600b81905550565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012905090565b5f5f610733610b8e565b90506107548185856107458589610a3f565b61074f91906118ac565b610b95565b600191505092915050565b61076761104f565b8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6008602052805f5260405f205f915054906101000a900460ff1681565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61082961104f565b6108325f6110cd565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461086b90611759565b80601f016020809104026020016040519081016040528092919081815260200182805461089790611759565b80156108e25780601f106108b9576101008083540402835291602001916108e2565b820191905f5260205f20905b8154815290600101906020018083116108c557829003601f168201915b5050505050905090565b5f5f6108f6610b8e565b90505f6109038286610a3f565b905083811015610948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093f9061194f565b60405180910390fd5b6109558286868403610b95565b60019250505092915050565b600581565b61096e61104f565b8060075f6101000a81548160ff02191690831515021790555050565b5f5f610994610b8e565b90506109a1818585610de3565b600191505092915050565b60065481565b605a81565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900460ff1681565b6109f661104f565b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ac961104f565b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610b1461104f565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b79906119dd565b60405180910390fd5b610b8b816110cd565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfa90611a6b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6890611af9565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d4b9190611540565b60405180910390a3505050565b5f610d638484610a3f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610ddd5781811015610dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc690611b61565b60405180910390fd5b610ddc8484848403610b95565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4890611bef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb690611c7d565b60405180910390fd5b610eca838383611190565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4490611d0b565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110369190611540565b60405180910390a3611049848484611395565b50505050565b611057610b8e565b73ffffffffffffffffffffffffffffffffffffffff16611075610834565b73ffffffffffffffffffffffffffffffffffffffff16146110cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c290611d73565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61119b83838361139a565b5f600b54141580156111f4575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156112525760065481611206846107dc565b61121091906118ac565b1115611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890611e01565b60405180910390fd5b5b5f8190505f600b541415801561127657506005600b5461127291906118ac565b4311155b80156112ce575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561132757505f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611384575f6064605a8461133c9190611e1f565b6113469190611e8d565b905061137485600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361139a565b80836113809190611ebd565b9150505b61138f84848361139a565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6113e18261139f565b6113eb81856113a9565b93506113fb8185602086016113b9565b611404816113c7565b840191505092915050565b5f6020820190508181035f83015261142781846113d7565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61145c82611433565b9050919050565b61146c81611452565b8114611476575f5ffd5b50565b5f8135905061148781611463565b92915050565b5f819050919050565b61149f8161148d565b81146114a9575f5ffd5b50565b5f813590506114ba81611496565b92915050565b5f5f604083850312156114d6576114d561142f565b5b5f6114e385828601611479565b92505060206114f4858286016114ac565b9150509250929050565b5f8115159050919050565b611512816114fe565b82525050565b5f60208201905061152b5f830184611509565b92915050565b61153a8161148d565b82525050565b5f6020820190506115535f830184611531565b92915050565b5f5f5f606084860312156115705761156f61142f565b5b5f61157d86828701611479565b935050602061158e86828701611479565b925050604061159f868287016114ac565b9150509250925092565b5f602082840312156115be576115bd61142f565b5b5f6115cb848285016114ac565b91505092915050565b6115dd81611452565b82525050565b5f6020820190506115f65f8301846115d4565b92915050565b5f60ff82169050919050565b611611816115fc565b82525050565b5f60208201905061162a5f830184611608565b92915050565b611639816114fe565b8114611643575f5ffd5b50565b5f8135905061165481611630565b92915050565b5f5f604083850312156116705761166f61142f565b5b5f61167d85828601611479565b925050602061168e85828601611646565b9150509250929050565b5f602082840312156116ad576116ac61142f565b5b5f6116ba84828501611479565b91505092915050565b5f602082840312156116d8576116d761142f565b5b5f6116e584828501611646565b91505092915050565b5f5f604083850312156117045761170361142f565b5b5f61171185828601611479565b925050602061172285828601611479565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061177057607f821691505b6020821081036117835761178261172c565b5b50919050565b7f4d61782077616c6c6574206d7573742062652067726561746572207468616e205f8201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b5f6117e36021836113a9565b91506117ee82611789565b604082019050919050565b5f6020820190508181035f830152611810816117d7565b9050919050565b7f54726164696e6720616c726561647920737461727465640000000000000000005f82015250565b5f61184b6017836113a9565b915061185682611817565b602082019050919050565b5f6020820190508181035f8301526118788161183f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6118b68261148d565b91506118c18361148d565b92508282019050808211156118d9576118d861187f565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6119396025836113a9565b9150611944826118df565b604082019050919050565b5f6020820190508181035f8301526119668161192d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6119c76026836113a9565b91506119d28261196d565b604082019050919050565b5f6020820190508181035f8301526119f4816119bb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611a556024836113a9565b9150611a60826119fb565b604082019050919050565b5f6020820190508181035f830152611a8281611a49565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611ae36022836113a9565b9150611aee82611a89565b604082019050919050565b5f6020820190508181035f830152611b1081611ad7565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f611b4b601d836113a9565b9150611b5682611b17565b602082019050919050565b5f6020820190508181035f830152611b7881611b3f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611bd96025836113a9565b9150611be482611b7f565b604082019050919050565b5f6020820190508181035f830152611c0681611bcd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611c676023836113a9565b9150611c7282611c0d565b604082019050919050565b5f6020820190508181035f830152611c9481611c5b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611cf56026836113a9565b9150611d0082611c9b565b604082019050919050565b5f6020820190508181035f830152611d2281611ce9565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611d5d6020836113a9565b9150611d6882611d29565b602082019050919050565b5f6020820190508181035f830152611d8a81611d51565b9050919050565b7f5472616e736665722065786365656473206d61782077616c6c6574206c696d695f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f611deb6021836113a9565b9150611df682611d91565b604082019050919050565b5f6020820190508181035f830152611e1881611ddf565b9050919050565b5f611e298261148d565b9150611e348361148d565b9250828202611e428161148d565b91508282048414831517611e5957611e5861187f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611e978261148d565b9150611ea28361148d565b925082611eb257611eb1611e60565b5b828204905092915050565b5f611ec78261148d565b9150611ed28361148d565b9250828203905081811115611eea57611ee961187f565b5b9291505056fea2646970667358221220c9adb4c1bf882078f39765ebc977cac5354f5c7b430955e88d15339bcdafb76764736f6c634300081e0033

Deployed Bytecode

0x608060405234801561000f575f5ffd5b50600436106101c2575f3560e01c806395d89b41116100f7578063c816841b11610095578063d798cbd21161006f578063d798cbd2146104e4578063dd62ed3e14610502578063ea414b2814610532578063f2fde38b1461054e576101c2565b8063c816841b1461048c578063d045a329146104aa578063d5aed6bf146104c8576101c2565b8063a614ff75116100d1578063a614ff7514610404578063a9059cbb14610420578063aa4bde2814610450578063b416d1a31461046e576101c2565b806395d89b4114610398578063a457c2d7146103b6578063a4be2840146103e6576101c2565b8063313ce567116101645780636dd3d39f1161013e5780636dd3d39f1461031057806370a0823114610340578063715018a6146103705780638da5cb5b1461037a576101c2565b8063313ce567146102a657806339509351146102c457806341220104146102f4576101c2565b806323b872dd116101a057806323b872dd1461023257806327a14fc214610262578063293230b81461027e5780632dc0562d14610288576101c2565b806306fdde03146101c6578063095ea7b3146101e457806318160ddd14610214575b5f5ffd5b6101ce61056a565b6040516101db919061140f565b60405180910390f35b6101fe60048036038101906101f991906114c0565b6105fa565b60405161020b9190611518565b60405180910390f35b61021c61061c565b6040516102299190611540565b60405180910390f35b61024c60048036038101906102479190611559565b610625565b6040516102599190611518565b60405180910390f35b61027c600480360381019061027791906115a9565b610653565b005b6102866106a7565b005b6102906106fc565b60405161029d91906115e3565b60405180910390f35b6102ae610721565b6040516102bb9190611617565b60405180910390f35b6102de60048036038101906102d991906114c0565b610729565b6040516102eb9190611518565b60405180910390f35b61030e6004803603810190610309919061165a565b61075f565b005b61032a60048036038101906103259190611698565b6107bf565b6040516103379190611518565b60405180910390f35b61035a60048036038101906103559190611698565b6107dc565b6040516103679190611540565b60405180910390f35b610378610821565b005b610382610834565b60405161038f91906115e3565b60405180910390f35b6103a061085c565b6040516103ad919061140f565b60405180910390f35b6103d060048036038101906103cb91906114c0565b6108ec565b6040516103dd9190611518565b60405180910390f35b6103ee610961565b6040516103fb9190611540565b60405180910390f35b61041e600480360381019061041991906116c3565b610966565b005b61043a600480360381019061043591906114c0565b61098a565b6040516104479190611518565b60405180910390f35b6104586109ac565b6040516104659190611540565b60405180910390f35b6104766109b2565b6040516104839190611540565b60405180910390f35b6104946109b7565b6040516104a191906115e3565b60405180910390f35b6104b26109dc565b6040516104bf9190611518565b60405180910390f35b6104e260048036038101906104dd9190611698565b6109ee565b005b6104ec610a39565b6040516104f99190611540565b60405180910390f35b61051c600480360381019061051791906116ee565b610a3f565b6040516105299190611540565b60405180910390f35b61054c60048036038101906105479190611698565b610ac1565b005b61056860048036038101906105639190611698565b610b0c565b005b60606003805461057990611759565b80601f01602080910402602001604051908101604052809291908181526020018280546105a590611759565b80156105f05780601f106105c7576101008083540402835291602001916105f0565b820191905f5260205f20905b8154815290600101906020018083116105d357829003601f168201915b5050505050905090565b5f5f610604610b8e565b9050610611818585610b95565b600191505092915050565b5f600254905090565b5f5f61062f610b8e565b905061063c858285610d58565b610647858585610de3565b60019150509392505050565b61065b61104f565b5f811161069d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610694906117f9565b60405180910390fd5b8060068190555050565b6106af61104f565b5f600b54146106f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ea90611861565b60405180910390fd5b43600b81905550565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012905090565b5f5f610733610b8e565b90506107548185856107458589610a3f565b61074f91906118ac565b610b95565b600191505092915050565b61076761104f565b8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6008602052805f5260405f205f915054906101000a900460ff1681565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61082961104f565b6108325f6110cd565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461086b90611759565b80601f016020809104026020016040519081016040528092919081815260200182805461089790611759565b80156108e25780601f106108b9576101008083540402835291602001916108e2565b820191905f5260205f20905b8154815290600101906020018083116108c557829003601f168201915b5050505050905090565b5f5f6108f6610b8e565b90505f6109038286610a3f565b905083811015610948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093f9061194f565b60405180910390fd5b6109558286868403610b95565b60019250505092915050565b600581565b61096e61104f565b8060075f6101000a81548160ff02191690831515021790555050565b5f5f610994610b8e565b90506109a1818585610de3565b600191505092915050565b60065481565b605a81565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900460ff1681565b6109f661104f565b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ac961104f565b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610b1461104f565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b79906119dd565b60405180910390fd5b610b8b816110cd565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfa90611a6b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6890611af9565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d4b9190611540565b60405180910390a3505050565b5f610d638484610a3f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610ddd5781811015610dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc690611b61565b60405180910390fd5b610ddc8484848403610b95565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4890611bef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb690611c7d565b60405180910390fd5b610eca838383611190565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4490611d0b565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110369190611540565b60405180910390a3611049848484611395565b50505050565b611057610b8e565b73ffffffffffffffffffffffffffffffffffffffff16611075610834565b73ffffffffffffffffffffffffffffffffffffffff16146110cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c290611d73565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61119b83838361139a565b5f600b54141580156111f4575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156112525760065481611206846107dc565b61121091906118ac565b1115611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890611e01565b60405180910390fd5b5b5f8190505f600b541415801561127657506005600b5461127291906118ac565b4311155b80156112ce575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561132757505f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611384575f6064605a8461133c9190611e1f565b6113469190611e8d565b905061137485600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361139a565b80836113809190611ebd565b9150505b61138f84848361139a565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6113e18261139f565b6113eb81856113a9565b93506113fb8185602086016113b9565b611404816113c7565b840191505092915050565b5f6020820190508181035f83015261142781846113d7565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61145c82611433565b9050919050565b61146c81611452565b8114611476575f5ffd5b50565b5f8135905061148781611463565b92915050565b5f819050919050565b61149f8161148d565b81146114a9575f5ffd5b50565b5f813590506114ba81611496565b92915050565b5f5f604083850312156114d6576114d561142f565b5b5f6114e385828601611479565b92505060206114f4858286016114ac565b9150509250929050565b5f8115159050919050565b611512816114fe565b82525050565b5f60208201905061152b5f830184611509565b92915050565b61153a8161148d565b82525050565b5f6020820190506115535f830184611531565b92915050565b5f5f5f606084860312156115705761156f61142f565b5b5f61157d86828701611479565b935050602061158e86828701611479565b925050604061159f868287016114ac565b9150509250925092565b5f602082840312156115be576115bd61142f565b5b5f6115cb848285016114ac565b91505092915050565b6115dd81611452565b82525050565b5f6020820190506115f65f8301846115d4565b92915050565b5f60ff82169050919050565b611611816115fc565b82525050565b5f60208201905061162a5f830184611608565b92915050565b611639816114fe565b8114611643575f5ffd5b50565b5f8135905061165481611630565b92915050565b5f5f604083850312156116705761166f61142f565b5b5f61167d85828601611479565b925050602061168e85828601611646565b9150509250929050565b5f602082840312156116ad576116ac61142f565b5b5f6116ba84828501611479565b91505092915050565b5f602082840312156116d8576116d761142f565b5b5f6116e584828501611646565b91505092915050565b5f5f604083850312156117045761170361142f565b5b5f61171185828601611479565b925050602061172285828601611479565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061177057607f821691505b6020821081036117835761178261172c565b5b50919050565b7f4d61782077616c6c6574206d7573742062652067726561746572207468616e205f8201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b5f6117e36021836113a9565b91506117ee82611789565b604082019050919050565b5f6020820190508181035f830152611810816117d7565b9050919050565b7f54726164696e6720616c726561647920737461727465640000000000000000005f82015250565b5f61184b6017836113a9565b915061185682611817565b602082019050919050565b5f6020820190508181035f8301526118788161183f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6118b68261148d565b91506118c18361148d565b92508282019050808211156118d9576118d861187f565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6119396025836113a9565b9150611944826118df565b604082019050919050565b5f6020820190508181035f8301526119668161192d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6119c76026836113a9565b91506119d28261196d565b604082019050919050565b5f6020820190508181035f8301526119f4816119bb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611a556024836113a9565b9150611a60826119fb565b604082019050919050565b5f6020820190508181035f830152611a8281611a49565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611ae36022836113a9565b9150611aee82611a89565b604082019050919050565b5f6020820190508181035f830152611b1081611ad7565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f611b4b601d836113a9565b9150611b5682611b17565b602082019050919050565b5f6020820190508181035f830152611b7881611b3f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611bd96025836113a9565b9150611be482611b7f565b604082019050919050565b5f6020820190508181035f830152611c0681611bcd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611c676023836113a9565b9150611c7282611c0d565b604082019050919050565b5f6020820190508181035f830152611c9481611c5b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611cf56026836113a9565b9150611d0082611c9b565b604082019050919050565b5f6020820190508181035f830152611d2281611ce9565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611d5d6020836113a9565b9150611d6882611d29565b602082019050919050565b5f6020820190508181035f830152611d8a81611d51565b9050919050565b7f5472616e736665722065786365656473206d61782077616c6c6574206c696d695f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f611deb6021836113a9565b9150611df682611d91565b604082019050919050565b5f6020820190508181035f830152611e1881611ddf565b9050919050565b5f611e298261148d565b9150611e348361148d565b9250828202611e428161148d565b91508282048414831517611e5957611e5861187f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611e978261148d565b9150611ea28361148d565b925082611eb257611eb1611e60565b5b828204905092915050565b5f611ec78261148d565b9150611ed28361148d565b9250828203905081811115611eea57611ee961187f565b5b9291505056fea2646970667358221220c9adb4c1bf882078f39765ebc977cac5354f5c7b430955e88d15339bcdafb76764736f6c634300081e0033

Deployed Bytecode Sourcemap

20627:2595:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6675:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9026:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7795:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9807:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21774:209;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21501:163;;;:::i;:::-;;20846:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7637:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10511:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21991:147;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20749:55;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7966:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19752:103;;;:::i;:::-;;19104:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6894:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11252:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20916:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22146:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8299:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20670:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20965:44;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20813:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20707:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21399:94;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20877:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8555:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21672:94;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20010:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6675:100;6729:13;6762:5;6755:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6675:100;:::o;9026:201::-;9109:4;9126:13;9142:12;:10;:12::i;:::-;9126:28;;9165:32;9174:5;9181:7;9190:6;9165:8;:32::i;:::-;9215:4;9208:11;;;9026:201;;;;:::o;7795:108::-;7856:7;7883:12;;7876:19;;7795:108;:::o;9807:295::-;9938:4;9955:15;9973:12;:10;:12::i;:::-;9955:30;;9996:38;10012:4;10018:7;10027:6;9996:15;:38::i;:::-;10045:27;10055:4;10061:2;10065:6;10045:9;:27::i;:::-;10090:4;10083:11;;;9807:295;;;;;:::o;21774:209::-;18990:13;:11;:13::i;:::-;21889:1:::1;21868:18;:22;21860:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21957:18;21939:15;:36;;;;21774:209:::0;:::o;21501:163::-;18990:13;:11;:13::i;:::-;21584:1:::1;21563:17;;:22;21555:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;21644:12;21624:17;:32;;;;21501:163::o:0;20846:24::-;;;;;;;;;;;;;:::o;7637:93::-;7695:5;7720:2;7713:9;;7637:93;:::o;10511:238::-;10599:4;10616:13;10632:12;:10;:12::i;:::-;10616:28;;10655:64;10664:5;10671:7;10708:10;10680:25;10690:5;10697:7;10680:9;:25::i;:::-;:38;;;;:::i;:::-;10655:8;:64::i;:::-;10737:4;10730:11;;;10511:238;;;;:::o;21991:147::-;18990:13;:11;:13::i;:::-;22122:8:::1;22087:23;:32;22111:7;22087:32;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;21991:147:::0;;:::o;20749:55::-;;;;;;;;;;;;;;;;;;;;;;:::o;7966:127::-;8040:7;8067:9;:18;8077:7;8067:18;;;;;;;;;;;;;;;;8060:25;;7966:127;;;:::o;19752:103::-;18990:13;:11;:13::i;:::-;19817:30:::1;19844:1;19817:18;:30::i;:::-;19752:103::o:0;19104:87::-;19150:7;19177:6;;;;;;;;;;;19170:13;;19104:87;:::o;6894:104::-;6950:13;6983:7;6976:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6894:104;:::o;11252:436::-;11345:4;11362:13;11378:12;:10;:12::i;:::-;11362:28;;11401:24;11428:25;11438:5;11445:7;11428:9;:25::i;:::-;11401:52;;11492:15;11472:16;:35;;11464:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11585:60;11594:5;11601:7;11629:15;11610:16;:34;11585:8;:60::i;:::-;11676:4;11669:11;;;;11252:436;;;;:::o;20916:42::-;20957:1;20916:42;:::o;22146:107::-;18990:13;:11;:13::i;:::-;22238:7:::1;22219:16;;:26;;;;;;;;;;;;;;;;;;22146:107:::0;:::o;8299:193::-;8378:4;8395:13;8411:12;:10;:12::i;:::-;8395:28;;8434;8444:5;8451:2;8455:6;8434:9;:28::i;:::-;8480:4;8473:11;;;8299:193;;;;:::o;20670:30::-;;;;:::o;20965:44::-;21007:2;20965:44;:::o;20813:26::-;;;;;;;;;;;;;:::o;20707:35::-;;;;;;;;;;;;;:::o;21399:94::-;18990:13;:11;:13::i;:::-;21481:4:::1;21467:11;;:18;;;;;;;;;;;;;;;;;;21399:94:::0;:::o;20877:32::-;;;;:::o;8555:151::-;8644:7;8671:11;:18;8683:5;8671:18;;;;;;;;;;;;;;;:27;8690:7;8671:27;;;;;;;;;;;;;;;;8664:34;;8555:151;;;;:::o;21672:94::-;18990:13;:11;:13::i;:::-;21752:6:::1;21740:9;;:18;;;;;;;;;;;;;;;;;;21672:94:::0;:::o;20010:201::-;18990:13;:11;:13::i;:::-;20119:1:::1;20099:22;;:8;:22;;::::0;20091:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20175:28;20194:8;20175:18;:28::i;:::-;20010:201:::0;:::o;4311:98::-;4364:7;4391:10;4384:17;;4311:98;:::o;15279:380::-;15432:1;15415:19;;:5;:19;;;15407:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15513:1;15494:21;;:7;:21;;;15486:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15597:6;15567:11;:18;15579:5;15567:18;;;;;;;;;;;;;;;:27;15586:7;15567:27;;;;;;;;;;;;;;;:36;;;;15635:7;15619:32;;15628:5;15619:32;;;15644:6;15619:32;;;;;;:::i;:::-;;;;;;;;15279:380;;;:::o;15950:453::-;16085:24;16112:25;16122:5;16129:7;16112:9;:25::i;:::-;16085:52;;16172:17;16152:16;:37;16148:248;;16234:6;16214:16;:26;;16206:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16318:51;16327:5;16334:7;16362:6;16343:16;:25;16318:8;:51::i;:::-;16148:248;16074:329;15950:453;;;:::o;12158:840::-;12305:1;12289:18;;:4;:18;;;12281:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12382:1;12368:16;;:2;:16;;;12360:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12437:38;12458:4;12464:2;12468:6;12437:20;:38::i;:::-;12488:19;12510:9;:15;12520:4;12510:15;;;;;;;;;;;;;;;;12488:37;;12559:6;12544:11;:21;;12536:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12676:6;12662:11;:20;12644:9;:15;12654:4;12644:15;;;;;;;;;;;;;;;:38;;;;12879:6;12862:9;:13;12872:2;12862:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12929:2;12914:26;;12923:4;12914:26;;;12933:6;12914:26;;;;;;:::i;:::-;;;;;;;;12953:37;12973:4;12979:2;12983:6;12953:19;:37::i;:::-;12270:728;12158:840;;;:::o;19269:132::-;19344:12;:10;:12::i;:::-;19333:23;;:7;:5;:7::i;:::-;:23;;;19325:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19269:132::o;20371:191::-;20445:16;20464:6;;;;;;;;;;;20445:25;;20490:8;20481:6;;:17;;;;;;;;;;;;;;;;;;20545:8;20514:40;;20535:8;20514:40;;;;;;;;;;;;20434:128;20371:191;:::o;22261:958::-;22362:44;22389:4;22395:2;22399:6;22362:26;:44::i;:::-;22506:1;22485:17;;:22;;:54;;;;;22512:23;:27;22536:2;22512:27;;;;;;;;;;;;;;;;;;;;;;;;;22511:28;22485:54;22481:174;;;22590:15;;22580:6;22564:13;22574:2;22564:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;22556:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;22481:174;22667:19;22689:6;22667:28;;22817:1;22796:17;;:22;;:89;;;;;20957:1;22851:17;;:34;;;;:::i;:::-;22835:12;:50;;22796:89;:125;;;;;22910:11;;;;;;;;;;;22902:19;;:4;:19;;;22796:125;:165;;;;;22959:1;22938:23;;:9;;;;;;;;;;;:23;;;;22796:165;22778:372;;;22988:11;23031:3;21007:2;23003:6;:24;;;;:::i;:::-;23002:32;;;;:::i;:::-;22988:46;;23049:48;23076:4;23082:9;;;;;;;;;;;23093:3;23049:26;:48::i;:::-;23135:3;23126:6;:12;;;;:::i;:::-;23112:26;;22973:177;22778:372;23162:49;23189:4;23195:2;23199:11;23162:26;:49::i;:::-;22351:868;22261:958;;;:::o;17732:124::-;;;;:::o;17003:125::-;;;;:::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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:329::-;4375:6;4424:2;4412:9;4403:7;4399:23;4395:32;4392:119;;;4430:79;;:::i;:::-;4392:119;4550:1;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4521:117;4316:329;;;;:::o;4651:118::-;4738:24;4756:5;4738:24;:::i;:::-;4733:3;4726:37;4651:118;;:::o;4775:222::-;4868:4;4906:2;4895:9;4891:18;4883:26;;4919:71;4987:1;4976:9;4972:17;4963:6;4919:71;:::i;:::-;4775:222;;;;:::o;5003:86::-;5038:7;5078:4;5071:5;5067:16;5056:27;;5003:86;;;:::o;5095:112::-;5178:22;5194:5;5178:22;:::i;:::-;5173:3;5166:35;5095:112;;:::o;5213:214::-;5302:4;5340:2;5329:9;5325:18;5317:26;;5353:67;5417:1;5406:9;5402:17;5393:6;5353:67;:::i;:::-;5213:214;;;;:::o;5433:116::-;5503:21;5518:5;5503:21;:::i;:::-;5496:5;5493:32;5483:60;;5539:1;5536;5529:12;5483:60;5433:116;:::o;5555:133::-;5598:5;5636:6;5623:20;5614:29;;5652:30;5676:5;5652:30;:::i;:::-;5555:133;;;;:::o;5694:468::-;5759:6;5767;5816:2;5804:9;5795:7;5791:23;5787:32;5784:119;;;5822:79;;:::i;:::-;5784:119;5942:1;5967:53;6012:7;6003:6;5992:9;5988:22;5967:53;:::i;:::-;5957:63;;5913:117;6069:2;6095:50;6137:7;6128:6;6117:9;6113:22;6095:50;:::i;:::-;6085:60;;6040:115;5694:468;;;;;:::o;6168:329::-;6227:6;6276:2;6264:9;6255:7;6251:23;6247:32;6244:119;;;6282:79;;:::i;:::-;6244:119;6402:1;6427:53;6472:7;6463:6;6452:9;6448:22;6427:53;:::i;:::-;6417:63;;6373:117;6168:329;;;;:::o;6503:323::-;6559:6;6608:2;6596:9;6587:7;6583:23;6579:32;6576:119;;;6614:79;;:::i;:::-;6576:119;6734:1;6759:50;6801:7;6792:6;6781:9;6777:22;6759:50;:::i;:::-;6749:60;;6705:114;6503:323;;;;:::o;6832:474::-;6900:6;6908;6957:2;6945:9;6936:7;6932:23;6928:32;6925:119;;;6963:79;;:::i;:::-;6925:119;7083:1;7108:53;7153:7;7144:6;7133:9;7129:22;7108:53;:::i;:::-;7098:63;;7054:117;7210:2;7236:53;7281:7;7272:6;7261:9;7257:22;7236:53;:::i;:::-;7226:63;;7181:118;6832:474;;;;;:::o;7312:180::-;7360:77;7357:1;7350:88;7457:4;7454:1;7447:15;7481:4;7478:1;7471:15;7498:320;7542:6;7579:1;7573:4;7569:12;7559:22;;7626:1;7620:4;7616:12;7647:18;7637:81;;7703:4;7695:6;7691:17;7681:27;;7637:81;7765:2;7757:6;7754:14;7734:18;7731:38;7728:84;;7784:18;;:::i;:::-;7728:84;7549:269;7498:320;;;:::o;7824:220::-;7964:34;7960:1;7952:6;7948:14;7941:58;8033:3;8028:2;8020:6;8016:15;8009:28;7824:220;:::o;8050:366::-;8192:3;8213:67;8277:2;8272:3;8213:67;:::i;:::-;8206:74;;8289:93;8378:3;8289:93;:::i;:::-;8407:2;8402:3;8398:12;8391:19;;8050:366;;;:::o;8422:419::-;8588:4;8626:2;8615:9;8611:18;8603:26;;8675:9;8669:4;8665:20;8661:1;8650:9;8646:17;8639:47;8703:131;8829:4;8703:131;:::i;:::-;8695:139;;8422:419;;;:::o;8847:173::-;8987:25;8983:1;8975:6;8971:14;8964:49;8847:173;:::o;9026:366::-;9168:3;9189:67;9253:2;9248:3;9189:67;:::i;:::-;9182:74;;9265:93;9354:3;9265:93;:::i;:::-;9383:2;9378:3;9374:12;9367:19;;9026:366;;;:::o;9398:419::-;9564:4;9602:2;9591:9;9587:18;9579:26;;9651:9;9645:4;9641:20;9637:1;9626:9;9622:17;9615:47;9679:131;9805:4;9679:131;:::i;:::-;9671:139;;9398:419;;;:::o;9823:180::-;9871:77;9868:1;9861:88;9968:4;9965:1;9958:15;9992:4;9989:1;9982:15;10009:191;10049:3;10068:20;10086:1;10068:20;:::i;:::-;10063:25;;10102:20;10120:1;10102:20;:::i;:::-;10097:25;;10145:1;10142;10138:9;10131:16;;10166:3;10163:1;10160:10;10157:36;;;10173:18;;:::i;:::-;10157:36;10009:191;;;;:::o;10206:224::-;10346:34;10342:1;10334:6;10330:14;10323:58;10415:7;10410:2;10402:6;10398:15;10391:32;10206:224;:::o;10436:366::-;10578:3;10599:67;10663:2;10658:3;10599:67;:::i;:::-;10592:74;;10675:93;10764:3;10675:93;:::i;:::-;10793:2;10788:3;10784:12;10777:19;;10436:366;;;:::o;10808:419::-;10974:4;11012:2;11001:9;10997:18;10989:26;;11061:9;11055:4;11051:20;11047:1;11036:9;11032:17;11025:47;11089:131;11215:4;11089:131;:::i;:::-;11081:139;;10808:419;;;:::o;11233:225::-;11373:34;11369:1;11361:6;11357:14;11350:58;11442:8;11437:2;11429:6;11425:15;11418:33;11233:225;:::o;11464:366::-;11606:3;11627:67;11691:2;11686:3;11627:67;:::i;:::-;11620:74;;11703:93;11792:3;11703:93;:::i;:::-;11821:2;11816:3;11812:12;11805:19;;11464:366;;;:::o;11836:419::-;12002:4;12040:2;12029:9;12025:18;12017:26;;12089:9;12083:4;12079:20;12075:1;12064:9;12060:17;12053:47;12117:131;12243:4;12117:131;:::i;:::-;12109:139;;11836:419;;;:::o;12261:223::-;12401:34;12397:1;12389:6;12385:14;12378:58;12470:6;12465:2;12457:6;12453:15;12446:31;12261:223;:::o;12490:366::-;12632:3;12653:67;12717:2;12712:3;12653:67;:::i;:::-;12646:74;;12729:93;12818:3;12729:93;:::i;:::-;12847:2;12842:3;12838:12;12831:19;;12490:366;;;:::o;12862:419::-;13028:4;13066:2;13055:9;13051:18;13043:26;;13115:9;13109:4;13105:20;13101:1;13090:9;13086:17;13079:47;13143:131;13269:4;13143:131;:::i;:::-;13135:139;;12862:419;;;:::o;13287:221::-;13427:34;13423:1;13415:6;13411:14;13404:58;13496:4;13491:2;13483:6;13479:15;13472:29;13287:221;:::o;13514:366::-;13656:3;13677:67;13741:2;13736:3;13677:67;:::i;:::-;13670:74;;13753:93;13842:3;13753:93;:::i;:::-;13871:2;13866:3;13862:12;13855:19;;13514:366;;;:::o;13886:419::-;14052:4;14090:2;14079:9;14075:18;14067:26;;14139:9;14133:4;14129:20;14125:1;14114:9;14110:17;14103:47;14167:131;14293:4;14167:131;:::i;:::-;14159:139;;13886:419;;;:::o;14311:179::-;14451:31;14447:1;14439:6;14435:14;14428:55;14311:179;:::o;14496:366::-;14638:3;14659:67;14723:2;14718:3;14659:67;:::i;:::-;14652:74;;14735:93;14824:3;14735:93;:::i;:::-;14853:2;14848:3;14844:12;14837:19;;14496:366;;;:::o;14868:419::-;15034:4;15072:2;15061:9;15057:18;15049:26;;15121:9;15115:4;15111:20;15107:1;15096:9;15092:17;15085:47;15149:131;15275:4;15149:131;:::i;:::-;15141:139;;14868:419;;;:::o;15293:224::-;15433:34;15429:1;15421:6;15417:14;15410:58;15502:7;15497:2;15489:6;15485:15;15478:32;15293:224;:::o;15523:366::-;15665:3;15686:67;15750:2;15745:3;15686:67;:::i;:::-;15679:74;;15762:93;15851:3;15762:93;:::i;:::-;15880:2;15875:3;15871:12;15864:19;;15523:366;;;:::o;15895:419::-;16061:4;16099:2;16088:9;16084:18;16076:26;;16148:9;16142:4;16138:20;16134:1;16123:9;16119:17;16112:47;16176:131;16302:4;16176:131;:::i;:::-;16168:139;;15895:419;;;:::o;16320:222::-;16460:34;16456:1;16448:6;16444:14;16437:58;16529:5;16524:2;16516:6;16512:15;16505:30;16320:222;:::o;16548:366::-;16690:3;16711:67;16775:2;16770:3;16711:67;:::i;:::-;16704:74;;16787:93;16876:3;16787:93;:::i;:::-;16905:2;16900:3;16896:12;16889:19;;16548:366;;;:::o;16920:419::-;17086:4;17124:2;17113:9;17109:18;17101:26;;17173:9;17167:4;17163:20;17159:1;17148:9;17144:17;17137:47;17201:131;17327:4;17201:131;:::i;:::-;17193:139;;16920:419;;;:::o;17345:225::-;17485:34;17481:1;17473:6;17469:14;17462:58;17554:8;17549:2;17541:6;17537:15;17530:33;17345:225;:::o;17576:366::-;17718:3;17739:67;17803:2;17798:3;17739:67;:::i;:::-;17732:74;;17815:93;17904:3;17815:93;:::i;:::-;17933:2;17928:3;17924:12;17917:19;;17576:366;;;:::o;17948:419::-;18114:4;18152:2;18141:9;18137:18;18129:26;;18201:9;18195:4;18191:20;18187:1;18176:9;18172:17;18165:47;18229:131;18355:4;18229:131;:::i;:::-;18221:139;;17948:419;;;:::o;18373:182::-;18513:34;18509:1;18501:6;18497:14;18490:58;18373:182;:::o;18561:366::-;18703:3;18724:67;18788:2;18783:3;18724:67;:::i;:::-;18717:74;;18800:93;18889:3;18800:93;:::i;:::-;18918:2;18913:3;18909:12;18902:19;;18561:366;;;:::o;18933:419::-;19099:4;19137:2;19126:9;19122:18;19114:26;;19186:9;19180:4;19176:20;19172:1;19161:9;19157:17;19150:47;19214:131;19340:4;19214:131;:::i;:::-;19206:139;;18933:419;;;:::o;19358:220::-;19498:34;19494:1;19486:6;19482:14;19475:58;19567:3;19562:2;19554:6;19550:15;19543:28;19358:220;:::o;19584:366::-;19726:3;19747:67;19811:2;19806:3;19747:67;:::i;:::-;19740:74;;19823:93;19912:3;19823:93;:::i;:::-;19941:2;19936:3;19932:12;19925:19;;19584:366;;;:::o;19956:419::-;20122:4;20160:2;20149:9;20145:18;20137:26;;20209:9;20203:4;20199:20;20195:1;20184:9;20180:17;20173:47;20237:131;20363:4;20237:131;:::i;:::-;20229:139;;19956:419;;;:::o;20381:410::-;20421:7;20444:20;20462:1;20444:20;:::i;:::-;20439:25;;20478:20;20496:1;20478:20;:::i;:::-;20473:25;;20533:1;20530;20526:9;20555:30;20573:11;20555:30;:::i;:::-;20544:41;;20734:1;20725:7;20721:15;20718:1;20715:22;20695:1;20688:9;20668:83;20645:139;;20764:18;;:::i;:::-;20645:139;20429:362;20381:410;;;;:::o;20797:180::-;20845:77;20842:1;20835:88;20942:4;20939:1;20932:15;20966:4;20963:1;20956:15;20983:185;21023:1;21040:20;21058:1;21040:20;:::i;:::-;21035:25;;21074:20;21092:1;21074:20;:::i;:::-;21069:25;;21113:1;21103:35;;21118:18;;:::i;:::-;21103:35;21160:1;21157;21153:9;21148:14;;20983:185;;;;:::o;21174:194::-;21214:4;21234:20;21252:1;21234:20;:::i;:::-;21229:25;;21268:20;21286:1;21268:20;:::i;:::-;21263:25;;21312:1;21309;21305:9;21297:17;;21336:1;21330:4;21327:11;21324:37;;;21341:18;;:::i;:::-;21324:37;21174:194;;;;:::o

Swarm Source

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