ETH Price: $2,894.18 (-5.07%)
Gas: 4 Gwei

Token

0xVPN.org (VPN)
 

Overview

Max Total Supply

100,000,000 VPN

Holders

357 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$81,888.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
21,251.833299917371136936 VPN

Value
$17.40 ( ~0.00601206861531584 Eth) [0.0213%]
0xed187b9e92f4ec7c7f2beae808cac42830368e40
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

0xVPN is building the first L2 protocol for a decentralized VPN (dVPN) using a P2P network with a bidding mechanism where VPN clients bid to connect to VPN service node providers.

Market

Volume (24H):$9.18
Market Capitalization:$0.00
Circulating Supply:0.00 VPN
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
1
Uniswap V2 (Ethereum)
0XF898BAE008CD85046431AB0A75F00689D6AA1B1C-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$0.0008
0.0000003 Eth
$8.92
11,207.351 0XF898BAE008CD85046431AB0A75F00689D6AA1B1C
100.0000%

Contract Source Code Verified (Exact Match)

Contract Name:
OxVPN

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 7 of 7: OxVPN.sol
// SPDX-License-Identifier: MIT
/***
 ██████  ██   ██ ██    ██ ██████  ███    ██ 
██  ████  ██ ██  ██    ██ ██   ██ ████   ██ 
██ ██ ██   ███   ██    ██ ██████  ██ ██  ██ 
████  ██  ██ ██   ██  ██  ██      ██  ██ ██ 
 ██████  ██   ██   ████   ██      ██   ████ 
                                            
Website: 0xVPN.org
Twitter: https://x.com/0xVPN_org
Telegram: https://t.me/zerox_vpn_portal
***/
pragma solidity 0.8.25;

import "./ERC20.sol";
import "./Ownable.sol";

import "./IDEXFactory.sol";
import "./IDEXRouter.sol";

contract OxVPN is ERC20, Ownable {
    mapping (address => bool) public isExcludedFromFee;
    address payable public treasuryAddress;
    uint256 public feePercent;
    uint256 public collectedTaxThreshold;
    uint256 public maxWalletSize;
    address public uniswapV2Pair;
    bool public autoTaxDistributionEnabled = true;
    bool private inInternalSwap;
    bool private _tradingOpen;
    IDEXRouter public uniswapV2Router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

    modifier lockTheSwap {
        inInternalSwap = true;
        _;
        inInternalSwap = false;
    }

    constructor(address payable _treasuryAddress, uint256 _feePercent, string memory name, string memory symbol) ERC20(name, symbol) {
        treasuryAddress = _treasuryAddress;
        feePercent = _feePercent;
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[_treasuryAddress] = true;

        _mint(msg.sender, 100_000_000 * 10 ** decimals());
        collectedTaxThreshold = _totalSupply / 200; //0.5%
        maxWalletSize = _totalSupply / 50; //2%
        uniswapV2Pair = IDEXFactory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
    }

    function enableTrading() external onlyOwner {
        require(!_tradingOpen, "Trading is already open");
        _tradingOpen = true;
    }

    function _transfer(address from, address to, uint256 amount) internal override(ERC20) {
        require(from != address(0), "ERC20: transfer from invalid");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        address _uniswapV2Pair = uniswapV2Pair;
        if (!isExcludedFromFee[from] && !isExcludedFromFee[to]) {
            require(_tradingOpen, "Trading closed");
            bool _isTransfer = from != _uniswapV2Pair && to != _uniswapV2Pair;
            if (!inInternalSwap && !_isTransfer) {
                uint256 _collectedTaxThreshold = collectedTaxThreshold;
                taxAmount = amount * feePercent / 100;
                if (from != _uniswapV2Pair && autoTaxDistributionEnabled && balanceOf(address(this)) > _collectedTaxThreshold) {
                    _distributeTaxes(_collectedTaxThreshold);
                }
            }
            if (to != _uniswapV2Pair && to != address(uniswapV2Router)) {
                require(balanceOf(to) + amount - taxAmount <= maxWalletSize, "Exceeds the maxWalletSize");
            }
        }

        _balances[from]= _balances[from] - amount;
        _balances[to]= _balances[to] + amount - taxAmount;

        emit Transfer(from, to, amount - taxAmount);

        if (taxAmount > 0) {
          _balances[address(this)]=_balances[address(this)] + taxAmount;
          emit Transfer(from, address(this), taxAmount);
        }
    }

    function _swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function setAutoTaxDistributionEnabled(bool _enabled) external onlyOwner {
        autoTaxDistributionEnabled = _enabled;
    }

    function setFee(uint256 _feePercent) external onlyOwner {
        require(_feePercent < feePercent, "INVALID_FEE");
        feePercent = _feePercent;
    }

    function setMaxWalletSize(uint256 _maxWalletSize) external onlyOwner {
        maxWalletSize = _maxWalletSize;
    }

    function setTaxThreshold(uint256 _newThreshold) external onlyOwner {
        collectedTaxThreshold = _newThreshold;
    }

    function setExcludeFromFee(address _address, bool _excluded) external onlyOwner {
        isExcludedFromFee[_address] = _excluded;
    }

    function setTreasuryAddress(address payable _treasuryAddress) external onlyOwner {
        treasuryAddress = _treasuryAddress;
        isExcludedFromFee[_treasuryAddress] = true;
    }

    function distributeTaxes(uint256 amount) external onlyOwner {
        _distributeTaxes(amount);
    }

    function _distributeTaxes(uint256 amount) internal { 
        _swapTokensForEth(amount);
        uint256 contractETHBalance = address(this).balance;

        if (contractETHBalance > 0) {
            (bool sent, ) = treasuryAddress.call{value: contractETHBalance}("");
            require(sent, "Failed to send Eth");
        }
    }

    // Withdraw ETH that's potentially stuck in the Contract
    function recoverETHfromContract() external onlyOwner {
        uint ethBalance = address(this).balance;
        (bool succ, ) = payable(msg.sender).call{value: ethBalance}("");
        require(succ, "Transfer failed");
    }

    // Withdraw ERC20 tokens that are potentially stuck in Contract
    function recoverTokensFromContract(
        address _tokenAddress,
        uint256 _amount
    ) external onlyOwner {
        require(
            _tokenAddress != address(this),
            "Owner can't claim contract's balance of its own tokens"
        );
        bool succ = IERC20(_tokenAddress).transfer(msg.sender, _amount);
        require(succ, "Transfer failed");
    }


    receive() external payable {}
}

File 1 of 7: Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.4) (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;
    }

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

File 2 of 7: ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";

contract ERC20 is IERC20 {
    mapping(address => uint256) internal _balances;

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

    uint256 internal _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * 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 returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view 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 default value returned by this function, unless
     * it's 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 pure returns (uint8) {
        return 18;
    }

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

    /**
     * @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 = msg.sender;
        _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 = msg.sender;
        _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 = msg.sender;
        _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 = msg.sender;
        _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 = msg.sender;
        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 {
        //overriden
    }

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

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

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

File 3 of 7: IDEXFactory.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

interface IDEXFactory {
  function createPair(address tokenA, address tokenB) external returns (address pair);
  function getPair(address tokenA, address tokenB) external view returns (address pair);
}

File 4 of 7: IDEXRouter.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

interface IDEXRouter {
  function factory() external pure returns (address);

  function WETH() external pure returns (address);

  function addLiquidity(
    address tokenA,
    address tokenB,
    uint256 amountADesired,
    uint256 amountBDesired,
    uint256 amountAMin,
    uint256 amountBMin,
    address to,
    uint256 deadline
  )
    external
    returns (
      uint256 amountA,
      uint256 amountB,
      uint256 liquidity
    );

  function addLiquidityETH(
    address token,
    uint256 amountTokenDesired,
    uint256 amountTokenMin,
    uint256 amountETHMin,
    address to,
    uint256 deadline
  )
    external
    payable
    returns (
      uint256 amountToken,
      uint256 amountETH,
      uint256 liquidity
    );

  function swapExactTokensForTokensSupportingFeeOnTransferTokens(
    uint256 amountIn,
    uint256 amountOutMin,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external;

  function swapExactETHForTokensSupportingFeeOnTransferTokens(
    uint256 amountOutMin,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external payable;

  function swapExactTokensForETHSupportingFeeOnTransferTokens(
    uint256 amountIn,
    uint256 amountOutMin,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external;

  function removeLiquidity(
    address tokenA,
    address tokenB,
    uint256 liquidity,
    uint256 amountAMin,
    uint256 amountBMin,
    address to,
    uint256 deadline
  ) external returns (uint256 amountA, uint256 amountB);

  function swapExactTokensForTokens(
    uint256 amountIn,
    uint256 amountOutMin,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external returns (uint256[] memory amounts);

  function swapTokensForExactTokens(
    uint256 amountOut,
    uint256 amountInMax,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external returns (uint256[] memory amounts);

  function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts);
}

File 5 of 7: IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.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 6 of 7: Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "./Context.sol";

/**
 * @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. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling 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);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"_treasuryAddress","type":"address"},{"internalType":"uint256","name":"_feePercent","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"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":[],"name":"autoTaxDistributionEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collectedTaxThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"uint256","name":"amount","type":"uint256"}],"name":"distributeTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","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":"recoverETHfromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverTokensFromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setAutoTaxDistributionEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_excluded","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feePercent","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newThreshold","type":"uint256"}],"name":"setTaxThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_treasuryAddress","type":"address"}],"name":"setTreasuryAddress","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":"treasuryAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600b60146101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561007e575f80fd5b50604051613cd1380380613cd183398181016040528101906100a0919061087e565b818181600390816100b19190610b1e565b5080600490816100c19190610b1e565b5050506100e06100d561047260201b60201c565b61047960201b60201c565b8360075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600881905550600160065f61013a61053c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061026b3361024561056460201b60201c565b600a6102519190610d55565b6305f5e1006102609190610d9f565b61056c60201b60201c565b60c860025461027a9190610e0d565b600981905550603260025461028f9190610e0d565b600a81905550600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103239190610e78565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103cd9190610e78565b6040518363ffffffff1660e01b81526004016103ea929190610eb2565b6020604051808303815f875af1158015610406573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061042a9190610e78565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050610fac565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d190610f33565b60405180910390fd5b8060025f8282546105eb9190610f51565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106989190610f93565b60405180910390a35050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106de826106b5565b9050919050565b6106ee816106d4565b81146106f8575f80fd5b50565b5f81519050610709816106e5565b92915050565b5f819050919050565b6107218161070f565b811461072b575f80fd5b50565b5f8151905061073c81610718565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6107908261074a565b810181811067ffffffffffffffff821117156107af576107ae61075a565b5b80604052505050565b5f6107c16106a4565b90506107cd8282610787565b919050565b5f67ffffffffffffffff8211156107ec576107eb61075a565b5b6107f58261074a565b9050602081019050919050565b8281835e5f83830152505050565b5f61082261081d846107d2565b6107b8565b90508281526020810184848401111561083e5761083d610746565b5b610849848285610802565b509392505050565b5f82601f83011261086557610864610742565b5b8151610875848260208601610810565b91505092915050565b5f805f8060808587031215610896576108956106ad565b5b5f6108a3878288016106fb565b94505060206108b48782880161072e565b935050604085015167ffffffffffffffff8111156108d5576108d46106b1565b5b6108e187828801610851565b925050606085015167ffffffffffffffff811115610902576109016106b1565b5b61090e87828801610851565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061096857607f821691505b60208210810361097b5761097a610924565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026109dd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826109a2565b6109e786836109a2565b95508019841693508086168417925050509392505050565b5f819050919050565b5f610a22610a1d610a188461070f565b6109ff565b61070f565b9050919050565b5f819050919050565b610a3b83610a08565b610a4f610a4782610a29565b8484546109ae565b825550505050565b5f90565b610a63610a57565b610a6e818484610a32565b505050565b5b81811015610a9157610a865f82610a5b565b600181019050610a74565b5050565b601f821115610ad657610aa781610981565b610ab084610993565b81016020851015610abf578190505b610ad3610acb85610993565b830182610a73565b50505b505050565b5f82821c905092915050565b5f610af65f1984600802610adb565b1980831691505092915050565b5f610b0e8383610ae7565b9150826002028217905092915050565b610b278261091a565b67ffffffffffffffff811115610b4057610b3f61075a565b5b610b4a8254610951565b610b55828285610a95565b5f60209050601f831160018114610b86575f8415610b74578287015190505b610b7e8582610b03565b865550610be5565b601f198416610b9486610981565b5f5b82811015610bbb57848901518255600182019150602085019450602081019050610b96565b86831015610bd85784890151610bd4601f891682610ae7565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610c6f57808604811115610c4b57610c4a610bed565b5b6001851615610c5a5780820291505b8081029050610c6885610c1a565b9450610c2f565b94509492505050565b5f82610c875760019050610d42565b81610c94575f9050610d42565b8160018114610caa5760028114610cb457610ce3565b6001915050610d42565b60ff841115610cc657610cc5610bed565b5b8360020a915084821115610cdd57610cdc610bed565b5b50610d42565b5060208310610133831016604e8410600b8410161715610d185782820a905083811115610d1357610d12610bed565b5b610d42565b610d258484846001610c26565b92509050818404811115610d3c57610d3b610bed565b5b81810290505b9392505050565b5f60ff82169050919050565b5f610d5f8261070f565b9150610d6a83610d49565b9250610d977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610c78565b905092915050565b5f610da98261070f565b9150610db48361070f565b9250828202610dc28161070f565b91508282048414831517610dd957610dd8610bed565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610e178261070f565b9150610e228361070f565b925082610e3257610e31610de0565b5b828204905092915050565b5f610e47826106b5565b9050919050565b610e5781610e3d565b8114610e61575f80fd5b50565b5f81519050610e7281610e4e565b92915050565b5f60208284031215610e8d57610e8c6106ad565b5b5f610e9a84828501610e64565b91505092915050565b610eac81610e3d565b82525050565b5f604082019050610ec55f830185610ea3565b610ed26020830184610ea3565b9392505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610f1d601f83610ed9565b9150610f2882610ee9565b602082019050919050565b5f6020820190508181035f830152610f4a81610f11565b9050919050565b5f610f5b8261070f565b9150610f668361070f565b9250828201905080821115610f7e57610f7d610bed565b5b92915050565b610f8d8161070f565b82525050565b5f602082019050610fa65f830184610f84565b92915050565b612d1880610fb95f395ff3fe6080604052600436106101e6575f3560e01c80638a8c523c11610101578063cb88a44911610094578063e6be4a7211610063578063e6be4a72146106d3578063ea1644d5146106fb578063f2fde38b14610723578063faad1b121461074b576101ed565b8063cb88a4491461062d578063ce831ed514610657578063dd62ed3e1461066d578063de03e5fe146106a9576101ed565b8063a457c2d7116100d0578063a457c2d714610563578063a9059cbb1461059f578063af9549e0146105db578063c5f956af14610603576101ed565b80638a8c523c146104cf5780638da5cb5b146104e55780638f3fa8601461050f57806395d89b4114610539576101ed565b8063395093511161017957806369fe0e2d1161014857806369fe0e2d1461042b57806370a0823114610453578063715018a61461048f5780637fd6f15c146104a5576101ed565b8063395093511461036157806349bd5a5e1461039d5780635342acb4146103c75780636605bfda14610403576101ed565b806318160ddd116101b557806318160ddd146102a957806323b872dd146102d357806323f7ee191461030f578063313ce56714610337576101ed565b806306fdde03146101f157806307a212be1461021b578063095ea7b3146102435780631694505e1461027f576101ed565b366101ed57005b5f80fd5b3480156101fc575f80fd5b50610205610773565b6040516102129190611db1565b60405180910390f35b348015610226575f80fd5b50610241600480360381019061023c9190611e08565b610803565b005b34801561024e575f80fd5b5061026960048036038101906102649190611e8d565b610815565b6040516102769190611ee5565b60405180910390f35b34801561028a575f80fd5b50610293610830565b6040516102a09190611f59565b60405180910390f35b3480156102b4575f80fd5b506102bd610855565b6040516102ca9190611f81565b60405180910390f35b3480156102de575f80fd5b506102f960048036038101906102f49190611f9a565b610871565b6040516103069190611ee5565b60405180910390f35b34801561031a575f80fd5b5061033560048036038101906103309190611e08565b610898565b005b348015610342575f80fd5b5061034b6108ac565b6040516103589190612005565b60405180910390f35b34801561036c575f80fd5b5061038760048036038101906103829190611e8d565b6108b4565b6040516103949190611ee5565b60405180910390f35b3480156103a8575f80fd5b506103b16108e3565b6040516103be919061202d565b60405180910390f35b3480156103d2575f80fd5b506103ed60048036038101906103e89190612046565b610908565b6040516103fa9190611ee5565b60405180910390f35b34801561040e575f80fd5b50610429600480360381019061042491906120ac565b610925565b005b348015610436575f80fd5b50610451600480360381019061044c9190611e08565b6109c5565b005b34801561045e575f80fd5b5061047960048036038101906104749190612046565b610a1b565b6040516104869190611f81565b60405180910390f35b34801561049a575f80fd5b506104a3610a60565b005b3480156104b0575f80fd5b506104b9610a73565b6040516104c69190611f81565b60405180910390f35b3480156104da575f80fd5b506104e3610a79565b005b3480156104f0575f80fd5b506104f9610aee565b604051610506919061202d565b60405180910390f35b34801561051a575f80fd5b50610523610b16565b6040516105309190611f81565b60405180910390f35b348015610544575f80fd5b5061054d610b1c565b60405161055a9190611db1565b60405180910390f35b34801561056e575f80fd5b5061058960048036038101906105849190611e8d565b610bac565b6040516105969190611ee5565b60405180910390f35b3480156105aa575f80fd5b506105c560048036038101906105c09190611e8d565b610c1a565b6040516105d29190611ee5565b60405180910390f35b3480156105e6575f80fd5b5061060160048036038101906105fc9190612101565b610c35565b005b34801561060e575f80fd5b50610617610c95565b604051610624919061214e565b60405180910390f35b348015610638575f80fd5b50610641610cba565b60405161064e9190611f81565b60405180910390f35b348015610662575f80fd5b5061066b610cc0565b005b348015610678575f80fd5b50610693600480360381019061068e9190612167565b610d78565b6040516106a09190611f81565b60405180910390f35b3480156106b4575f80fd5b506106bd610dfa565b6040516106ca9190611ee5565b60405180910390f35b3480156106de575f80fd5b506106f960048036038101906106f49190611e8d565b610e0d565b005b348015610706575f80fd5b50610721600480360381019061071c9190611e08565b610f46565b005b34801561072e575f80fd5b5061074960048036038101906107449190612046565b610f58565b005b348015610756575f80fd5b50610771600480360381019061076c91906121a5565b610fda565b005b606060038054610782906121fd565b80601f01602080910402602001604051908101604052809291908181526020018280546107ae906121fd565b80156107f95780601f106107d0576101008083540402835291602001916107f9565b820191905f5260205f20905b8154815290600101906020018083116107dc57829003601f168201915b5050505050905090565b61080b610fff565b8060098190555050565b5f8033905061082581858561107d565b600191505092915050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61085f5f610a1b565b60025461086c919061225a565b905090565b5f80339050610881858285611240565b61088c8585856112cb565b60019150509392505050565b6108a0610fff565b6108a981611928565b50565b5f6012905090565b5f803390506108d88185856108c98589610d78565b6108d3919061228d565b61107d565b600191505092915050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6006602052805f5260405f205f915054906101000a900460ff1681565b61092d610fff565b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6109cd610fff565b6008548110610a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a089061230a565b60405180910390fd5b8060088190555050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a68610fff565b610a715f611a0c565b565b60085481565b610a81610fff565b600b60169054906101000a900460ff1615610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac890612372565b60405180910390fd5b6001600b60166101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b606060048054610b2b906121fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b57906121fd565b8015610ba25780601f10610b7957610100808354040283529160200191610ba2565b820191905f5260205f20905b815481529060010190602001808311610b8557829003601f168201915b5050505050905090565b5f803390505f610bbc8286610d78565b905083811015610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf890612400565b60405180910390fd5b610c0e828686840361107d565b60019250505092915050565b5f80339050610c2a8185856112cb565b600191505092915050565b610c3d610fff565b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b610cc8610fff565b5f4790505f3373ffffffffffffffffffffffffffffffffffffffff1682604051610cf19061244b565b5f6040518083038185875af1925050503d805f8114610d2b576040519150601f19603f3d011682016040523d82523d5f602084013e610d30565b606091505b5050905080610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b906124a9565b60405180910390fd5b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600b60149054906101000a900460ff1681565b610e15610fff565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7a90612537565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401610ebf929190612555565b6020604051808303815f875af1158015610edb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eff9190612590565b905080610f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f38906124a9565b60405180910390fd5b505050565b610f4e610fff565b80600a8190555050565b610f60610fff565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc59061262b565b60405180910390fd5b610fd781611a0c565b50565b610fe2610fff565b80600b60146101000a81548160ff02191690831515021790555050565b611007611acf565b73ffffffffffffffffffffffffffffffffffffffff16611025610aee565b73ffffffffffffffffffffffffffffffffffffffff161461107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612693565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e290612721565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611159576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611150906127af565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112339190611f81565b60405180910390a3505050565b5f61124b8484610d78565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112c557818110156112b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ae90612817565b60405180910390fd5b6112c4848484840361107d565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611339576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113309061287f565b60405180910390fd5b5f811161137b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113729061290d565b60405180910390fd5b5f80600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561143f575060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116a057600b60169054906101000a900460ff16611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148a90612975565b60405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156114fc57508173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b9050600b60159054906101000a900460ff16158015611519575080155b156115ac575f60095490506064600854866115349190612993565b61153e9190612a01565b93508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141580156115885750600b60149054906101000a900460ff165b801561159b57508061159930610a1b565b115b156115aa576115a981611928565b5b505b8173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156116355750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561169e57600a54838561164888610a1b565b611652919061228d565b61165c919061225a565b111561169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490612a7b565b60405180910390fd5b5b505b825f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116e8919061225a565b5f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555081835f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611771919061228d565b61177b919061225a565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8486611816919061225a565b6040516118239190611f81565b60405180910390a35f82111561192157815f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461187b919061228d565b5f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119189190611f81565b60405180910390a35b5050505050565b61193181611ad6565b5f4790505f811115611a08575f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516119839061244b565b5f6040518083038185875af1925050503d805f81146119bd576040519150601f19603f3d011682016040523d82523d5f602084013e6119c2565b606091505b5050905080611a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fd90612ae3565b60405180910390fd5b505b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b6001600b60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b0d57611b0c612b01565b5b604051908082528060200260200182016040528015611b3b5781602001602082028036833780820191505090505b50905030815f81518110611b5257611b51612b2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bf6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c1a9190612b6f565b81600181518110611c2e57611c2d612b2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c9430600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461107d565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611cf6959493929190612c8a565b5f604051808303815f87803b158015611d0d575f80fd5b505af1158015611d1f573d5f803e3d5ffd5b50505050505f600b60156101000a81548160ff02191690831515021790555050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611d8382611d41565b611d8d8185611d4b565b9350611d9d818560208601611d5b565b611da681611d69565b840191505092915050565b5f6020820190508181035f830152611dc98184611d79565b905092915050565b5f80fd5b5f819050919050565b611de781611dd5565b8114611df1575f80fd5b50565b5f81359050611e0281611dde565b92915050565b5f60208284031215611e1d57611e1c611dd1565b5b5f611e2a84828501611df4565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e5c82611e33565b9050919050565b611e6c81611e52565b8114611e76575f80fd5b50565b5f81359050611e8781611e63565b92915050565b5f8060408385031215611ea357611ea2611dd1565b5b5f611eb085828601611e79565b9250506020611ec185828601611df4565b9150509250929050565b5f8115159050919050565b611edf81611ecb565b82525050565b5f602082019050611ef85f830184611ed6565b92915050565b5f819050919050565b5f611f21611f1c611f1784611e33565b611efe565b611e33565b9050919050565b5f611f3282611f07565b9050919050565b5f611f4382611f28565b9050919050565b611f5381611f39565b82525050565b5f602082019050611f6c5f830184611f4a565b92915050565b611f7b81611dd5565b82525050565b5f602082019050611f945f830184611f72565b92915050565b5f805f60608486031215611fb157611fb0611dd1565b5b5f611fbe86828701611e79565b9350506020611fcf86828701611e79565b9250506040611fe086828701611df4565b9150509250925092565b5f60ff82169050919050565b611fff81611fea565b82525050565b5f6020820190506120185f830184611ff6565b92915050565b61202781611e52565b82525050565b5f6020820190506120405f83018461201e565b92915050565b5f6020828403121561205b5761205a611dd1565b5b5f61206884828501611e79565b91505092915050565b5f61207b82611e33565b9050919050565b61208b81612071565b8114612095575f80fd5b50565b5f813590506120a681612082565b92915050565b5f602082840312156120c1576120c0611dd1565b5b5f6120ce84828501612098565b91505092915050565b6120e081611ecb565b81146120ea575f80fd5b50565b5f813590506120fb816120d7565b92915050565b5f806040838503121561211757612116611dd1565b5b5f61212485828601611e79565b9250506020612135858286016120ed565b9150509250929050565b61214881612071565b82525050565b5f6020820190506121615f83018461213f565b92915050565b5f806040838503121561217d5761217c611dd1565b5b5f61218a85828601611e79565b925050602061219b85828601611e79565b9150509250929050565b5f602082840312156121ba576121b9611dd1565b5b5f6121c7848285016120ed565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061221457607f821691505b602082108103612227576122266121d0565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61226482611dd5565b915061226f83611dd5565b92508282039050818111156122875761228661222d565b5b92915050565b5f61229782611dd5565b91506122a283611dd5565b92508282019050808211156122ba576122b961222d565b5b92915050565b7f494e56414c49445f4645450000000000000000000000000000000000000000005f82015250565b5f6122f4600b83611d4b565b91506122ff826122c0565b602082019050919050565b5f6020820190508181035f830152612321816122e8565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61235c601783611d4b565b915061236782612328565b602082019050919050565b5f6020820190508181035f83015261238981612350565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6123ea602583611d4b565b91506123f582612390565b604082019050919050565b5f6020820190508181035f830152612417816123de565b9050919050565b5f81905092915050565b50565b5f6124365f8361241e565b915061244182612428565b5f82019050919050565b5f6124558261242b565b9150819050919050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f612493600f83611d4b565b915061249e8261245f565b602082019050919050565b5f6020820190508181035f8301526124c081612487565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c5f8201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b5f612521603683611d4b565b915061252c826124c7565b604082019050919050565b5f6020820190508181035f83015261254e81612515565b9050919050565b5f6040820190506125685f83018561201e565b6125756020830184611f72565b9392505050565b5f8151905061258a816120d7565b92915050565b5f602082840312156125a5576125a4611dd1565b5b5f6125b28482850161257c565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612615602683611d4b565b9150612620826125bb565b604082019050919050565b5f6020820190508181035f83015261264281612609565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61267d602083611d4b565b915061268882612649565b602082019050919050565b5f6020820190508181035f8301526126aa81612671565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61270b602483611d4b565b9150612716826126b1565b604082019050919050565b5f6020820190508181035f830152612738816126ff565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612799602283611d4b565b91506127a48261273f565b604082019050919050565b5f6020820190508181035f8301526127c68161278d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612801601d83611d4b565b915061280c826127cd565b602082019050919050565b5f6020820190508181035f83015261282e816127f5565b9050919050565b7f45524332303a207472616e736665722066726f6d20696e76616c6964000000005f82015250565b5f612869601c83611d4b565b915061287482612835565b602082019050919050565b5f6020820190508181035f8301526128968161285d565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6128f7602983611d4b565b91506129028261289d565b604082019050919050565b5f6020820190508181035f830152612924816128eb565b9050919050565b7f54726164696e6720636c6f7365640000000000000000000000000000000000005f82015250565b5f61295f600e83611d4b565b915061296a8261292b565b602082019050919050565b5f6020820190508181035f83015261298c81612953565b9050919050565b5f61299d82611dd5565b91506129a883611dd5565b92508282026129b681611dd5565b915082820484148315176129cd576129cc61222d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612a0b82611dd5565b9150612a1683611dd5565b925082612a2657612a256129d4565b5b828204905092915050565b7f4578636565647320746865206d617857616c6c657453697a65000000000000005f82015250565b5f612a65601983611d4b565b9150612a7082612a31565b602082019050919050565b5f6020820190508181035f830152612a9281612a59565b9050919050565b7f4661696c656420746f2073656e642045746800000000000000000000000000005f82015250565b5f612acd601283611d4b565b9150612ad882612a99565b602082019050919050565b5f6020820190508181035f830152612afa81612ac1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612b6981611e63565b92915050565b5f60208284031215612b8457612b83611dd1565b5b5f612b9184828501612b5b565b91505092915050565b5f819050919050565b5f612bbd612bb8612bb384612b9a565b611efe565b611dd5565b9050919050565b612bcd81612ba3565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c0581611e52565b82525050565b5f612c168383612bfc565b60208301905092915050565b5f602082019050919050565b5f612c3882612bd3565b612c428185612bdd565b9350612c4d83612bed565b805f5b83811015612c7d578151612c648882612c0b565b9750612c6f83612c22565b925050600181019050612c50565b5085935050505092915050565b5f60a082019050612c9d5f830188611f72565b612caa6020830187612bc4565b8181036040830152612cbc8186612c2e565b9050612ccb606083018561201e565b612cd86080830184611f72565b969550505050505056fea2646970667358221220787ebfee21af0f28407099959d2292c579ca662ddc9aca6c91fe76b54d988f4e64736f6c63430008190033000000000000000000000000f8c3a4c57919c8b4b38e499f07232448b211bf6d000000000000000000000000000000000000000000000000000000000000005a000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000009307856504e2e6f72670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000356504e0000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101e6575f3560e01c80638a8c523c11610101578063cb88a44911610094578063e6be4a7211610063578063e6be4a72146106d3578063ea1644d5146106fb578063f2fde38b14610723578063faad1b121461074b576101ed565b8063cb88a4491461062d578063ce831ed514610657578063dd62ed3e1461066d578063de03e5fe146106a9576101ed565b8063a457c2d7116100d0578063a457c2d714610563578063a9059cbb1461059f578063af9549e0146105db578063c5f956af14610603576101ed565b80638a8c523c146104cf5780638da5cb5b146104e55780638f3fa8601461050f57806395d89b4114610539576101ed565b8063395093511161017957806369fe0e2d1161014857806369fe0e2d1461042b57806370a0823114610453578063715018a61461048f5780637fd6f15c146104a5576101ed565b8063395093511461036157806349bd5a5e1461039d5780635342acb4146103c75780636605bfda14610403576101ed565b806318160ddd116101b557806318160ddd146102a957806323b872dd146102d357806323f7ee191461030f578063313ce56714610337576101ed565b806306fdde03146101f157806307a212be1461021b578063095ea7b3146102435780631694505e1461027f576101ed565b366101ed57005b5f80fd5b3480156101fc575f80fd5b50610205610773565b6040516102129190611db1565b60405180910390f35b348015610226575f80fd5b50610241600480360381019061023c9190611e08565b610803565b005b34801561024e575f80fd5b5061026960048036038101906102649190611e8d565b610815565b6040516102769190611ee5565b60405180910390f35b34801561028a575f80fd5b50610293610830565b6040516102a09190611f59565b60405180910390f35b3480156102b4575f80fd5b506102bd610855565b6040516102ca9190611f81565b60405180910390f35b3480156102de575f80fd5b506102f960048036038101906102f49190611f9a565b610871565b6040516103069190611ee5565b60405180910390f35b34801561031a575f80fd5b5061033560048036038101906103309190611e08565b610898565b005b348015610342575f80fd5b5061034b6108ac565b6040516103589190612005565b60405180910390f35b34801561036c575f80fd5b5061038760048036038101906103829190611e8d565b6108b4565b6040516103949190611ee5565b60405180910390f35b3480156103a8575f80fd5b506103b16108e3565b6040516103be919061202d565b60405180910390f35b3480156103d2575f80fd5b506103ed60048036038101906103e89190612046565b610908565b6040516103fa9190611ee5565b60405180910390f35b34801561040e575f80fd5b50610429600480360381019061042491906120ac565b610925565b005b348015610436575f80fd5b50610451600480360381019061044c9190611e08565b6109c5565b005b34801561045e575f80fd5b5061047960048036038101906104749190612046565b610a1b565b6040516104869190611f81565b60405180910390f35b34801561049a575f80fd5b506104a3610a60565b005b3480156104b0575f80fd5b506104b9610a73565b6040516104c69190611f81565b60405180910390f35b3480156104da575f80fd5b506104e3610a79565b005b3480156104f0575f80fd5b506104f9610aee565b604051610506919061202d565b60405180910390f35b34801561051a575f80fd5b50610523610b16565b6040516105309190611f81565b60405180910390f35b348015610544575f80fd5b5061054d610b1c565b60405161055a9190611db1565b60405180910390f35b34801561056e575f80fd5b5061058960048036038101906105849190611e8d565b610bac565b6040516105969190611ee5565b60405180910390f35b3480156105aa575f80fd5b506105c560048036038101906105c09190611e8d565b610c1a565b6040516105d29190611ee5565b60405180910390f35b3480156105e6575f80fd5b5061060160048036038101906105fc9190612101565b610c35565b005b34801561060e575f80fd5b50610617610c95565b604051610624919061214e565b60405180910390f35b348015610638575f80fd5b50610641610cba565b60405161064e9190611f81565b60405180910390f35b348015610662575f80fd5b5061066b610cc0565b005b348015610678575f80fd5b50610693600480360381019061068e9190612167565b610d78565b6040516106a09190611f81565b60405180910390f35b3480156106b4575f80fd5b506106bd610dfa565b6040516106ca9190611ee5565b60405180910390f35b3480156106de575f80fd5b506106f960048036038101906106f49190611e8d565b610e0d565b005b348015610706575f80fd5b50610721600480360381019061071c9190611e08565b610f46565b005b34801561072e575f80fd5b5061074960048036038101906107449190612046565b610f58565b005b348015610756575f80fd5b50610771600480360381019061076c91906121a5565b610fda565b005b606060038054610782906121fd565b80601f01602080910402602001604051908101604052809291908181526020018280546107ae906121fd565b80156107f95780601f106107d0576101008083540402835291602001916107f9565b820191905f5260205f20905b8154815290600101906020018083116107dc57829003601f168201915b5050505050905090565b61080b610fff565b8060098190555050565b5f8033905061082581858561107d565b600191505092915050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61085f5f610a1b565b60025461086c919061225a565b905090565b5f80339050610881858285611240565b61088c8585856112cb565b60019150509392505050565b6108a0610fff565b6108a981611928565b50565b5f6012905090565b5f803390506108d88185856108c98589610d78565b6108d3919061228d565b61107d565b600191505092915050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6006602052805f5260405f205f915054906101000a900460ff1681565b61092d610fff565b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6109cd610fff565b6008548110610a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a089061230a565b60405180910390fd5b8060088190555050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a68610fff565b610a715f611a0c565b565b60085481565b610a81610fff565b600b60169054906101000a900460ff1615610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac890612372565b60405180910390fd5b6001600b60166101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b606060048054610b2b906121fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b57906121fd565b8015610ba25780601f10610b7957610100808354040283529160200191610ba2565b820191905f5260205f20905b815481529060010190602001808311610b8557829003601f168201915b5050505050905090565b5f803390505f610bbc8286610d78565b905083811015610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf890612400565b60405180910390fd5b610c0e828686840361107d565b60019250505092915050565b5f80339050610c2a8185856112cb565b600191505092915050565b610c3d610fff565b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b610cc8610fff565b5f4790505f3373ffffffffffffffffffffffffffffffffffffffff1682604051610cf19061244b565b5f6040518083038185875af1925050503d805f8114610d2b576040519150601f19603f3d011682016040523d82523d5f602084013e610d30565b606091505b5050905080610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b906124a9565b60405180910390fd5b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600b60149054906101000a900460ff1681565b610e15610fff565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7a90612537565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401610ebf929190612555565b6020604051808303815f875af1158015610edb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eff9190612590565b905080610f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f38906124a9565b60405180910390fd5b505050565b610f4e610fff565b80600a8190555050565b610f60610fff565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc59061262b565b60405180910390fd5b610fd781611a0c565b50565b610fe2610fff565b80600b60146101000a81548160ff02191690831515021790555050565b611007611acf565b73ffffffffffffffffffffffffffffffffffffffff16611025610aee565b73ffffffffffffffffffffffffffffffffffffffff161461107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612693565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e290612721565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611159576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611150906127af565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112339190611f81565b60405180910390a3505050565b5f61124b8484610d78565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112c557818110156112b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ae90612817565b60405180910390fd5b6112c4848484840361107d565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611339576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113309061287f565b60405180910390fd5b5f811161137b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113729061290d565b60405180910390fd5b5f80600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561143f575060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116a057600b60169054906101000a900460ff16611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148a90612975565b60405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156114fc57508173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b9050600b60159054906101000a900460ff16158015611519575080155b156115ac575f60095490506064600854866115349190612993565b61153e9190612a01565b93508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141580156115885750600b60149054906101000a900460ff165b801561159b57508061159930610a1b565b115b156115aa576115a981611928565b5b505b8173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156116355750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561169e57600a54838561164888610a1b565b611652919061228d565b61165c919061225a565b111561169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490612a7b565b60405180910390fd5b5b505b825f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116e8919061225a565b5f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555081835f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611771919061228d565b61177b919061225a565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8486611816919061225a565b6040516118239190611f81565b60405180910390a35f82111561192157815f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461187b919061228d565b5f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119189190611f81565b60405180910390a35b5050505050565b61193181611ad6565b5f4790505f811115611a08575f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516119839061244b565b5f6040518083038185875af1925050503d805f81146119bd576040519150601f19603f3d011682016040523d82523d5f602084013e6119c2565b606091505b5050905080611a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fd90612ae3565b60405180910390fd5b505b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b6001600b60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b0d57611b0c612b01565b5b604051908082528060200260200182016040528015611b3b5781602001602082028036833780820191505090505b50905030815f81518110611b5257611b51612b2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bf6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c1a9190612b6f565b81600181518110611c2e57611c2d612b2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c9430600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461107d565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611cf6959493929190612c8a565b5f604051808303815f87803b158015611d0d575f80fd5b505af1158015611d1f573d5f803e3d5ffd5b50505050505f600b60156101000a81548160ff02191690831515021790555050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611d8382611d41565b611d8d8185611d4b565b9350611d9d818560208601611d5b565b611da681611d69565b840191505092915050565b5f6020820190508181035f830152611dc98184611d79565b905092915050565b5f80fd5b5f819050919050565b611de781611dd5565b8114611df1575f80fd5b50565b5f81359050611e0281611dde565b92915050565b5f60208284031215611e1d57611e1c611dd1565b5b5f611e2a84828501611df4565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e5c82611e33565b9050919050565b611e6c81611e52565b8114611e76575f80fd5b50565b5f81359050611e8781611e63565b92915050565b5f8060408385031215611ea357611ea2611dd1565b5b5f611eb085828601611e79565b9250506020611ec185828601611df4565b9150509250929050565b5f8115159050919050565b611edf81611ecb565b82525050565b5f602082019050611ef85f830184611ed6565b92915050565b5f819050919050565b5f611f21611f1c611f1784611e33565b611efe565b611e33565b9050919050565b5f611f3282611f07565b9050919050565b5f611f4382611f28565b9050919050565b611f5381611f39565b82525050565b5f602082019050611f6c5f830184611f4a565b92915050565b611f7b81611dd5565b82525050565b5f602082019050611f945f830184611f72565b92915050565b5f805f60608486031215611fb157611fb0611dd1565b5b5f611fbe86828701611e79565b9350506020611fcf86828701611e79565b9250506040611fe086828701611df4565b9150509250925092565b5f60ff82169050919050565b611fff81611fea565b82525050565b5f6020820190506120185f830184611ff6565b92915050565b61202781611e52565b82525050565b5f6020820190506120405f83018461201e565b92915050565b5f6020828403121561205b5761205a611dd1565b5b5f61206884828501611e79565b91505092915050565b5f61207b82611e33565b9050919050565b61208b81612071565b8114612095575f80fd5b50565b5f813590506120a681612082565b92915050565b5f602082840312156120c1576120c0611dd1565b5b5f6120ce84828501612098565b91505092915050565b6120e081611ecb565b81146120ea575f80fd5b50565b5f813590506120fb816120d7565b92915050565b5f806040838503121561211757612116611dd1565b5b5f61212485828601611e79565b9250506020612135858286016120ed565b9150509250929050565b61214881612071565b82525050565b5f6020820190506121615f83018461213f565b92915050565b5f806040838503121561217d5761217c611dd1565b5b5f61218a85828601611e79565b925050602061219b85828601611e79565b9150509250929050565b5f602082840312156121ba576121b9611dd1565b5b5f6121c7848285016120ed565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061221457607f821691505b602082108103612227576122266121d0565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61226482611dd5565b915061226f83611dd5565b92508282039050818111156122875761228661222d565b5b92915050565b5f61229782611dd5565b91506122a283611dd5565b92508282019050808211156122ba576122b961222d565b5b92915050565b7f494e56414c49445f4645450000000000000000000000000000000000000000005f82015250565b5f6122f4600b83611d4b565b91506122ff826122c0565b602082019050919050565b5f6020820190508181035f830152612321816122e8565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61235c601783611d4b565b915061236782612328565b602082019050919050565b5f6020820190508181035f83015261238981612350565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6123ea602583611d4b565b91506123f582612390565b604082019050919050565b5f6020820190508181035f830152612417816123de565b9050919050565b5f81905092915050565b50565b5f6124365f8361241e565b915061244182612428565b5f82019050919050565b5f6124558261242b565b9150819050919050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f612493600f83611d4b565b915061249e8261245f565b602082019050919050565b5f6020820190508181035f8301526124c081612487565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c5f8201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b5f612521603683611d4b565b915061252c826124c7565b604082019050919050565b5f6020820190508181035f83015261254e81612515565b9050919050565b5f6040820190506125685f83018561201e565b6125756020830184611f72565b9392505050565b5f8151905061258a816120d7565b92915050565b5f602082840312156125a5576125a4611dd1565b5b5f6125b28482850161257c565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612615602683611d4b565b9150612620826125bb565b604082019050919050565b5f6020820190508181035f83015261264281612609565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61267d602083611d4b565b915061268882612649565b602082019050919050565b5f6020820190508181035f8301526126aa81612671565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61270b602483611d4b565b9150612716826126b1565b604082019050919050565b5f6020820190508181035f830152612738816126ff565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612799602283611d4b565b91506127a48261273f565b604082019050919050565b5f6020820190508181035f8301526127c68161278d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612801601d83611d4b565b915061280c826127cd565b602082019050919050565b5f6020820190508181035f83015261282e816127f5565b9050919050565b7f45524332303a207472616e736665722066726f6d20696e76616c6964000000005f82015250565b5f612869601c83611d4b565b915061287482612835565b602082019050919050565b5f6020820190508181035f8301526128968161285d565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6128f7602983611d4b565b91506129028261289d565b604082019050919050565b5f6020820190508181035f830152612924816128eb565b9050919050565b7f54726164696e6720636c6f7365640000000000000000000000000000000000005f82015250565b5f61295f600e83611d4b565b915061296a8261292b565b602082019050919050565b5f6020820190508181035f83015261298c81612953565b9050919050565b5f61299d82611dd5565b91506129a883611dd5565b92508282026129b681611dd5565b915082820484148315176129cd576129cc61222d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612a0b82611dd5565b9150612a1683611dd5565b925082612a2657612a256129d4565b5b828204905092915050565b7f4578636565647320746865206d617857616c6c657453697a65000000000000005f82015250565b5f612a65601983611d4b565b9150612a7082612a31565b602082019050919050565b5f6020820190508181035f830152612a9281612a59565b9050919050565b7f4661696c656420746f2073656e642045746800000000000000000000000000005f82015250565b5f612acd601283611d4b565b9150612ad882612a99565b602082019050919050565b5f6020820190508181035f830152612afa81612ac1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612b6981611e63565b92915050565b5f60208284031215612b8457612b83611dd1565b5b5f612b9184828501612b5b565b91505092915050565b5f819050919050565b5f612bbd612bb8612bb384612b9a565b611efe565b611dd5565b9050919050565b612bcd81612ba3565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c0581611e52565b82525050565b5f612c168383612bfc565b60208301905092915050565b5f602082019050919050565b5f612c3882612bd3565b612c428185612bdd565b9350612c4d83612bed565b805f5b83811015612c7d578151612c648882612c0b565b9750612c6f83612c22565b925050600181019050612c50565b5085935050505092915050565b5f60a082019050612c9d5f830188611f72565b612caa6020830187612bc4565b8181036040830152612cbc8186612c2e565b9050612ccb606083018561201e565b612cd86080830184611f72565b969550505050505056fea2646970667358221220787ebfee21af0f28407099959d2292c579ca662ddc9aca6c91fe76b54d988f4e64736f6c63430008190033

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

000000000000000000000000f8c3a4c57919c8b4b38e499f07232448b211bf6d000000000000000000000000000000000000000000000000000000000000005a000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000009307856504e2e6f72670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000356504e0000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _treasuryAddress (address): 0xf8c3a4C57919C8B4B38e499f07232448B211bF6D
Arg [1] : _feePercent (uint256): 90
Arg [2] : name (string): 0xVPN.org
Arg [3] : symbol (string): VPN

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 000000000000000000000000f8c3a4c57919c8b4b38e499f07232448b211bf6d
Arg [1] : 000000000000000000000000000000000000000000000000000000000000005a
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [3] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [5] : 307856504e2e6f72670000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 56504e0000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

768:5425:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;757:81:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4512:121:6;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3014:195:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1163:90:6;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1803:130:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3771:254;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4971:101:6;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1669:74:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4420:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1014:28:6;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;807:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4781:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4229:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1991:125:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1817:101:5;;;;;;;;;;;;;:::i;:::-;;907:25:6;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2013:139;;;;;;;;;;;;;:::i;:::-;;1194:85:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;980:28:6;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;951:85:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5139:425;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2312:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4639:136:6;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;863:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;938:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5478:224;;;;;;;;;;;;;:::i;:::-;;2557:149:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1048:45:6;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5776:379;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4390:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2067:198:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4096:127:6;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;757:81:1;794:13;826:5;819:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;757:81;:::o;4512:121:6:-;1087:13:5;:11;:13::i;:::-;4613::6::1;4589:21;:37;;;;4512:121:::0;:::o;3014:195:1:-;3097:4;3113:13;3129:10;3113:26;;3149:32;3158:5;3165:7;3174:6;3149:8;:32::i;:::-;3198:4;3191:11;;;3014:195;;;;:::o;1163:90:6:-;;;;;;;;;;;;;:::o;1803:130:1:-;1864:7;1905:21;1923:1;1905:9;:21::i;:::-;1890:12;;:36;;;;:::i;:::-;1883:43;;1803:130;:::o;3771:254::-;3868:4;3884:15;3902:10;3884:28;;3922:38;3938:4;3944:7;3953:6;3922:15;:38::i;:::-;3970:27;3980:4;3986:2;3990:6;3970:9;:27::i;:::-;4014:4;4007:11;;;3771:254;;;;;:::o;4971:101:6:-;1087:13:5;:11;:13::i;:::-;5041:24:6::1;5058:6;5041:16;:24::i;:::-;4971:101:::0;:::o;1669:74:1:-;1710:5;1734:2;1727:9;;1669:74;:::o;4420:232::-;4508:4;4524:13;4540:10;4524:26;;4560:64;4569:5;4576:7;4613:10;4585:25;4595:5;4602:7;4585:9;:25::i;:::-;:38;;;;:::i;:::-;4560:8;:64::i;:::-;4641:4;4634:11;;;4420:232;;;;:::o;1014:28:6:-;;;;;;;;;;;;;:::o;807:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;4781:184::-;1087:13:5;:11;:13::i;:::-;4890:16:6::1;4872:15;;:34;;;;;;;;;;;;;;;;;;4954:4;4916:17;:35;4934:16;4916:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;4781:184:::0;:::o;4229:155::-;1087:13:5;:11;:13::i;:::-;4317:10:6::1;;4303:11;:24;4295:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;4366:11;4353:10;:24;;;;4229:155:::0;:::o;1991:125:1:-;2065:7;2091:9;:18;2101:7;2091:18;;;;;;;;;;;;;;;;2084:25;;1991:125;;;:::o;1817:101:5:-;1087:13;:11;:13::i;:::-;1881:30:::1;1908:1;1881:18;:30::i;:::-;1817:101::o:0;907:25:6:-;;;;:::o;2013:139::-;1087:13:5;:11;:13::i;:::-;2076:12:6::1;;;;;;;;;;;2075:13;2067:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;2141:4;2126:12;;:19;;;;;;;;;;;;;;;;;;2013:139::o:0;1194:85:5:-;1240:7;1266:6;;;;;;;;;;;1259:13;;1194:85;:::o;980:28:6:-;;;;:::o;951:85:1:-;990:13;1022:7;1015:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;951:85;:::o;5139:425::-;5232:4;5248:13;5264:10;5248:26;;5284:24;5311:25;5321:5;5328:7;5311:9;:25::i;:::-;5284:52;;5374:15;5354:16;:35;;5346:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5465:60;5474:5;5481:7;5509:15;5490:16;:34;5465:8;:60::i;:::-;5553:4;5546:11;;;;5139:425;;;;:::o;2312:187::-;2391:4;2407:13;2423:10;2407:26;;2443:28;2453:5;2460:2;2464:6;2443:9;:28::i;:::-;2488:4;2481:11;;;2312:187;;;;:::o;4639:136:6:-;1087:13:5;:11;:13::i;:::-;4759:9:6::1;4729:17;:27;4747:8;4729:27;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;4639:136:::0;;:::o;863:38::-;;;;;;;;;;;;;:::o;938:36::-;;;;:::o;5478:224::-;1087:13:5;:11;:13::i;:::-;5541:15:6::1;5559:21;5541:39;;5591:9;5614:10;5606:24;;5638:10;5606:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5590:63;;;5671:4;5663:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;5531:171;;5478:224::o:0;2557:149:1:-;2646:7;2672:11;:18;2684:5;2672:18;;;;;;;;;;;;;;;:27;2691:7;2672:27;;;;;;;;;;;;;;;;2665:34;;2557:149;;;;:::o;1048:45:6:-;;;;;;;;;;;;;:::o;5776:379::-;1087:13:5;:11;:13::i;:::-;5948:4:6::1;5923:30;;:13;:30;;::::0;5902:131:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6043:9;6062:13;6055:30;;;6086:10;6098:7;6055:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6043:63;;6124:4;6116:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;5892:263;5776:379:::0;;:::o;4390:116::-;1087:13:5;:11;:13::i;:::-;4485:14:6::1;4469:13;:30;;;;4390:116:::0;:::o;2067:198:5:-;1087:13;:11;:13::i;:::-;2175:1:::1;2155:22;;:8;:22;;::::0;2147:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2230:28;2249:8;2230:18;:28::i;:::-;2067:198:::0;:::o;4096:127:6:-;1087:13:5;:11;:13::i;:::-;4208:8:6::1;4179:26;;:37;;;;;;;;;;;;;;;;;;4096:127:::0;:::o;1352:130:5:-;1426:12;:10;:12::i;:::-;1415:23;;:7;:5;:7::i;:::-;:23;;;1407:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1352:130::o;7238:340:1:-;7356:1;7339:19;;:5;:19;;;7331:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7436:1;7417:21;;:7;:21;;;7409:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7518:6;7488:11;:18;7500:5;7488:18;;;;;;;;;;;;;;;:27;7507:7;7488:27;;;;;;;;;;;;;;;:36;;;;7555:7;7539:32;;7548:5;7539:32;;;7564:6;7539:32;;;;;;:::i;:::-;;;;;;;;7238:340;;;:::o;7859:411::-;7959:24;7986:25;7996:5;8003:7;7986:9;:25::i;:::-;7959:52;;8045:17;8025:16;:37;8021:243;;8106:6;8086:16;:26;;8078:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8188:51;8197:5;8204:7;8232:6;8213:16;:25;8188:8;:51::i;:::-;8021:243;7949:321;7859:411;;;:::o;2158:1454:6:-;2278:1;2262:18;;:4;:18;;;2254:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;2340:1;2331:6;:10;2323:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;2397:17;2428:22;2453:13;;;;;;;;;;;2428:38;;2481:17;:23;2499:4;2481:23;;;;;;;;;;;;;;;;;;;;;;;;;2480:24;:50;;;;;2509:17;:21;2527:2;2509:21;;;;;;;;;;;;;;;;;;;;;;;;;2508:22;2480:50;2476:795;;;2554:12;;;;;;;;;;;2546:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2599:16;2626:14;2618:22;;:4;:22;;;;:46;;;;;2650:14;2644:20;;:2;:20;;;;2618:46;2599:65;;2683:14;;;;;;;;;;;2682:15;:31;;;;;2702:11;2701:12;2682:31;2678:388;;;2733:30;2766:21;;2733:54;;2839:3;2826:10;;2817:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;2805:37;;2872:14;2864:22;;:4;:22;;;;:52;;;;;2890:26;;;;;;;;;;;2864:52;:105;;;;;2947:22;2920:24;2938:4;2920:9;:24::i;:::-;:49;2864:105;2860:192;;;2993:40;3010:22;2993:16;:40::i;:::-;2860:192;2715:351;2678:388;3089:14;3083:20;;:2;:20;;;;:54;;;;;3121:15;;;;;;;;;;;3107:30;;:2;:30;;;;3083:54;3079:182;;;3203:13;;3190:9;3181:6;3165:13;3175:2;3165:9;:13::i;:::-;:22;;;;:::i;:::-;:34;;;;:::i;:::-;:51;;3157:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;3079:182;2532:739;2476:795;3316:6;3298:9;:15;3308:4;3298:15;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;3281:9;:15;3291:4;3281:15;;;;;;;;;;;;;;;:41;;;;3372:9;3363:6;3347:9;:13;3357:2;3347:13;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;:34;;;;:::i;:::-;3332:9;:13;3342:2;3332:13;;;;;;;;;;;;;;;:49;;;;3412:2;3397:38;;3406:4;3397:38;;;3425:9;3416:6;:18;;;;:::i;:::-;3397:38;;;;;;:::i;:::-;;;;;;;;3462:1;3450:9;:13;3446:160;;;3529:9;3502;:24;3520:4;3502:24;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;3477:9;:24;3495:4;3477:24;;;;;;;;;;;;;;;:61;;;;3578:4;3555:40;;3564:4;3555:40;;;3585:9;3555:40;;;;;;:::i;:::-;;;;;;;;3446:160;2244:1368;;2158:1454;;;:::o;5078:333::-;5140:25;5158:6;5140:17;:25::i;:::-;5175:26;5204:21;5175:50;;5261:1;5240:18;:22;5236:169;;;5279:9;5294:15;;;;;;;;;;;:20;;5322:18;5294:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5278:67;;;5367:4;5359:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;5264:141;5236:169;5129:282;5078:333;:::o;2419:187:5:-;2492:16;2511:6;;;;;;;;;;;2492:25;;2536:8;2527:6;;:17;;;;;;;;;;;;;;;;;;2590:8;2559:40;;2580:8;2559:40;;;;;;;;;;;;2482:124;2419:187;:::o;655:96:0:-;708:7;734:10;727:17;;655:96;:::o;3618:472:6:-;1308:4;1291:14;;:21;;;;;;;;;;;;;;;;;;3696::::1;3734:1;3720:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3696:40;;3764:4;3746;3751:1;3746:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;3789:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3779:4;3784:1;3779:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;3821:62;3838:4;3853:15;;;;;;;;;;;3871:11;3821:8;:62::i;:::-;3893:15;;;;;;;;;;;:66;;;3973:11;3998:1;4013:4;4039;4058:15;3893:190;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3686:404;1350:5:::0;1333:14;;:22;;;;;;;;;;;;;;;;;;3618:472;:::o;7:99:7:-;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:77;1606:7;1635:5;1624:16;;1569:77;;;:::o;1652:122::-;1725:24;1743:5;1725:24;:::i;:::-;1718:5;1715:35;1705:63;;1764:1;1761;1754:12;1705:63;1652:122;:::o;1780:139::-;1826:5;1864:6;1851:20;1842:29;;1880:33;1907:5;1880:33;:::i;:::-;1780:139;;;;:::o;1925:329::-;1984:6;2033:2;2021:9;2012:7;2008:23;2004:32;2001:119;;;2039:79;;:::i;:::-;2001:119;2159:1;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;:::i;:::-;2174:63;;2130:117;1925:329;;;;:::o;2260:126::-;2297:7;2337:42;2330:5;2326:54;2315:65;;2260:126;;;:::o;2392:96::-;2429:7;2458:24;2476:5;2458:24;:::i;:::-;2447:35;;2392:96;;;:::o;2494:122::-;2567:24;2585:5;2567:24;:::i;:::-;2560:5;2557:35;2547:63;;2606:1;2603;2596:12;2547:63;2494:122;:::o;2622:139::-;2668:5;2706:6;2693:20;2684:29;;2722:33;2749:5;2722:33;:::i;:::-;2622:139;;;;:::o;2767:474::-;2835:6;2843;2892:2;2880:9;2871:7;2867:23;2863:32;2860:119;;;2898:79;;:::i;:::-;2860:119;3018:1;3043:53;3088:7;3079:6;3068:9;3064:22;3043:53;:::i;:::-;3033:63;;2989:117;3145:2;3171:53;3216:7;3207:6;3196:9;3192:22;3171:53;:::i;:::-;3161:63;;3116:118;2767:474;;;;;:::o;3247:90::-;3281:7;3324:5;3317:13;3310:21;3299:32;;3247:90;;;:::o;3343:109::-;3424:21;3439:5;3424:21;:::i;:::-;3419:3;3412:34;3343:109;;:::o;3458:210::-;3545:4;3583:2;3572:9;3568:18;3560:26;;3596:65;3658:1;3647:9;3643:17;3634:6;3596:65;:::i;:::-;3458:210;;;;:::o;3674:60::-;3702:3;3723:5;3716:12;;3674:60;;;:::o;3740:142::-;3790:9;3823:53;3841:34;3850:24;3868:5;3850:24;:::i;:::-;3841:34;:::i;:::-;3823:53;:::i;:::-;3810:66;;3740:142;;;:::o;3888:126::-;3938:9;3971:37;4002:5;3971:37;:::i;:::-;3958:50;;3888:126;;;:::o;4020:144::-;4088:9;4121:37;4152:5;4121:37;:::i;:::-;4108:50;;4020:144;;;:::o;4170:167::-;4275:55;4324:5;4275:55;:::i;:::-;4270:3;4263:68;4170:167;;:::o;4343:258::-;4454:4;4492:2;4481:9;4477:18;4469:26;;4505:89;4591:1;4580:9;4576:17;4567:6;4505:89;:::i;:::-;4343:258;;;;:::o;4607:118::-;4694:24;4712:5;4694:24;:::i;:::-;4689:3;4682:37;4607:118;;:::o;4731:222::-;4824:4;4862:2;4851:9;4847:18;4839:26;;4875:71;4943:1;4932:9;4928:17;4919:6;4875:71;:::i;:::-;4731:222;;;;:::o;4959:619::-;5036:6;5044;5052;5101:2;5089:9;5080:7;5076:23;5072:32;5069:119;;;5107:79;;:::i;:::-;5069:119;5227:1;5252:53;5297:7;5288:6;5277:9;5273:22;5252:53;:::i;:::-;5242:63;;5198:117;5354:2;5380:53;5425:7;5416:6;5405:9;5401:22;5380:53;:::i;:::-;5370:63;;5325:118;5482:2;5508:53;5553:7;5544:6;5533:9;5529:22;5508:53;:::i;:::-;5498:63;;5453:118;4959:619;;;;;:::o;5584:86::-;5619:7;5659:4;5652:5;5648:16;5637:27;;5584:86;;;:::o;5676:112::-;5759:22;5775:5;5759:22;:::i;:::-;5754:3;5747:35;5676:112;;:::o;5794:214::-;5883:4;5921:2;5910:9;5906:18;5898:26;;5934:67;5998:1;5987:9;5983:17;5974:6;5934:67;:::i;:::-;5794:214;;;;:::o;6014:118::-;6101:24;6119:5;6101:24;:::i;:::-;6096:3;6089:37;6014:118;;:::o;6138:222::-;6231:4;6269:2;6258:9;6254:18;6246:26;;6282:71;6350:1;6339:9;6335:17;6326:6;6282:71;:::i;:::-;6138:222;;;;:::o;6366:329::-;6425:6;6474:2;6462:9;6453:7;6449:23;6445:32;6442:119;;;6480:79;;:::i;:::-;6442:119;6600:1;6625:53;6670:7;6661:6;6650:9;6646:22;6625:53;:::i;:::-;6615:63;;6571:117;6366:329;;;;:::o;6701:104::-;6746:7;6775:24;6793:5;6775:24;:::i;:::-;6764:35;;6701:104;;;:::o;6811:138::-;6892:32;6918:5;6892:32;:::i;:::-;6885:5;6882:43;6872:71;;6939:1;6936;6929:12;6872:71;6811:138;:::o;6955:155::-;7009:5;7047:6;7034:20;7025:29;;7063:41;7098:5;7063:41;:::i;:::-;6955:155;;;;:::o;7116:345::-;7183:6;7232:2;7220:9;7211:7;7207:23;7203:32;7200:119;;;7238:79;;:::i;:::-;7200:119;7358:1;7383:61;7436:7;7427:6;7416:9;7412:22;7383:61;:::i;:::-;7373:71;;7329:125;7116:345;;;;:::o;7467:116::-;7537:21;7552:5;7537:21;:::i;:::-;7530:5;7527:32;7517:60;;7573:1;7570;7563:12;7517:60;7467:116;:::o;7589:133::-;7632:5;7670:6;7657:20;7648:29;;7686:30;7710:5;7686:30;:::i;:::-;7589:133;;;;:::o;7728:468::-;7793:6;7801;7850:2;7838:9;7829:7;7825:23;7821:32;7818:119;;;7856:79;;:::i;:::-;7818:119;7976:1;8001:53;8046:7;8037:6;8026:9;8022:22;8001:53;:::i;:::-;7991:63;;7947:117;8103:2;8129:50;8171:7;8162:6;8151:9;8147:22;8129:50;:::i;:::-;8119:60;;8074:115;7728:468;;;;;:::o;8202:142::-;8305:32;8331:5;8305:32;:::i;:::-;8300:3;8293:45;8202:142;;:::o;8350:254::-;8459:4;8497:2;8486:9;8482:18;8474:26;;8510:87;8594:1;8583:9;8579:17;8570:6;8510:87;:::i;:::-;8350:254;;;;:::o;8610:474::-;8678:6;8686;8735:2;8723:9;8714:7;8710:23;8706:32;8703:119;;;8741:79;;:::i;:::-;8703:119;8861:1;8886:53;8931:7;8922:6;8911:9;8907:22;8886:53;:::i;:::-;8876:63;;8832:117;8988:2;9014:53;9059:7;9050:6;9039:9;9035:22;9014:53;:::i;:::-;9004:63;;8959:118;8610:474;;;;;:::o;9090:323::-;9146:6;9195:2;9183:9;9174:7;9170:23;9166:32;9163:119;;;9201:79;;:::i;:::-;9163:119;9321:1;9346:50;9388:7;9379:6;9368:9;9364:22;9346:50;:::i;:::-;9336:60;;9292:114;9090:323;;;;:::o;9419:180::-;9467:77;9464:1;9457:88;9564:4;9561:1;9554:15;9588:4;9585:1;9578:15;9605:320;9649:6;9686:1;9680:4;9676:12;9666:22;;9733:1;9727:4;9723:12;9754:18;9744:81;;9810:4;9802:6;9798:17;9788:27;;9744:81;9872:2;9864:6;9861:14;9841:18;9838:38;9835:84;;9891:18;;:::i;:::-;9835:84;9656:269;9605:320;;;:::o;9931:180::-;9979:77;9976:1;9969:88;10076:4;10073:1;10066:15;10100:4;10097:1;10090:15;10117:194;10157:4;10177:20;10195:1;10177:20;:::i;:::-;10172:25;;10211:20;10229:1;10211:20;:::i;:::-;10206:25;;10255:1;10252;10248:9;10240:17;;10279:1;10273:4;10270:11;10267:37;;;10284:18;;:::i;:::-;10267:37;10117:194;;;;:::o;10317:191::-;10357:3;10376:20;10394:1;10376:20;:::i;:::-;10371:25;;10410:20;10428:1;10410:20;:::i;:::-;10405:25;;10453:1;10450;10446:9;10439:16;;10474:3;10471:1;10468:10;10465:36;;;10481:18;;:::i;:::-;10465:36;10317:191;;;;:::o;10514:161::-;10654:13;10650:1;10642:6;10638:14;10631:37;10514:161;:::o;10681:366::-;10823:3;10844:67;10908:2;10903:3;10844:67;:::i;:::-;10837:74;;10920:93;11009:3;10920:93;:::i;:::-;11038:2;11033:3;11029:12;11022:19;;10681:366;;;:::o;11053:419::-;11219:4;11257:2;11246:9;11242:18;11234:26;;11306:9;11300:4;11296:20;11292:1;11281:9;11277:17;11270:47;11334:131;11460:4;11334:131;:::i;:::-;11326:139;;11053:419;;;:::o;11478:173::-;11618:25;11614:1;11606:6;11602:14;11595:49;11478:173;:::o;11657:366::-;11799:3;11820:67;11884:2;11879:3;11820:67;:::i;:::-;11813:74;;11896:93;11985:3;11896:93;:::i;:::-;12014:2;12009:3;12005:12;11998:19;;11657:366;;;:::o;12029:419::-;12195:4;12233:2;12222:9;12218:18;12210:26;;12282:9;12276:4;12272:20;12268:1;12257:9;12253:17;12246:47;12310:131;12436:4;12310:131;:::i;:::-;12302:139;;12029:419;;;:::o;12454:224::-;12594:34;12590:1;12582:6;12578:14;12571:58;12663:7;12658:2;12650:6;12646:15;12639:32;12454:224;:::o;12684:366::-;12826:3;12847:67;12911:2;12906:3;12847:67;:::i;:::-;12840:74;;12923:93;13012:3;12923:93;:::i;:::-;13041:2;13036:3;13032:12;13025:19;;12684:366;;;:::o;13056:419::-;13222:4;13260:2;13249:9;13245:18;13237:26;;13309:9;13303:4;13299:20;13295:1;13284:9;13280:17;13273:47;13337:131;13463:4;13337:131;:::i;:::-;13329:139;;13056:419;;;:::o;13481:147::-;13582:11;13619:3;13604:18;;13481:147;;;;:::o;13634:114::-;;:::o;13754:398::-;13913:3;13934:83;14015:1;14010:3;13934:83;:::i;:::-;13927:90;;14026:93;14115:3;14026:93;:::i;:::-;14144:1;14139:3;14135:11;14128:18;;13754:398;;;:::o;14158:379::-;14342:3;14364:147;14507:3;14364:147;:::i;:::-;14357:154;;14528:3;14521:10;;14158:379;;;:::o;14543:165::-;14683:17;14679:1;14671:6;14667:14;14660:41;14543:165;:::o;14714:366::-;14856:3;14877:67;14941:2;14936:3;14877:67;:::i;:::-;14870:74;;14953:93;15042:3;14953:93;:::i;:::-;15071:2;15066:3;15062:12;15055:19;;14714:366;;;:::o;15086:419::-;15252:4;15290:2;15279:9;15275:18;15267:26;;15339:9;15333:4;15329:20;15325:1;15314:9;15310:17;15303:47;15367:131;15493:4;15367:131;:::i;:::-;15359:139;;15086:419;;;:::o;15511:241::-;15651:34;15647:1;15639:6;15635:14;15628:58;15720:24;15715:2;15707:6;15703:15;15696:49;15511:241;:::o;15758:366::-;15900:3;15921:67;15985:2;15980:3;15921:67;:::i;:::-;15914:74;;15997:93;16086:3;15997:93;:::i;:::-;16115:2;16110:3;16106:12;16099:19;;15758:366;;;:::o;16130:419::-;16296:4;16334:2;16323:9;16319:18;16311:26;;16383:9;16377:4;16373:20;16369:1;16358:9;16354:17;16347:47;16411:131;16537:4;16411:131;:::i;:::-;16403:139;;16130:419;;;:::o;16555:332::-;16676:4;16714:2;16703:9;16699:18;16691:26;;16727:71;16795:1;16784:9;16780:17;16771:6;16727:71;:::i;:::-;16808:72;16876:2;16865:9;16861:18;16852:6;16808:72;:::i;:::-;16555:332;;;;;:::o;16893:137::-;16947:5;16978:6;16972:13;16963:22;;16994:30;17018:5;16994:30;:::i;:::-;16893:137;;;;:::o;17036:345::-;17103:6;17152:2;17140:9;17131:7;17127:23;17123:32;17120:119;;;17158:79;;:::i;:::-;17120:119;17278:1;17303:61;17356:7;17347:6;17336:9;17332:22;17303:61;:::i;:::-;17293:71;;17249:125;17036:345;;;;:::o;17387:225::-;17527:34;17523:1;17515:6;17511:14;17504:58;17596:8;17591:2;17583:6;17579:15;17572:33;17387:225;:::o;17618:366::-;17760:3;17781:67;17845:2;17840:3;17781:67;:::i;:::-;17774:74;;17857:93;17946:3;17857:93;:::i;:::-;17975:2;17970:3;17966:12;17959:19;;17618:366;;;:::o;17990:419::-;18156:4;18194:2;18183:9;18179:18;18171:26;;18243:9;18237:4;18233:20;18229:1;18218:9;18214:17;18207:47;18271:131;18397:4;18271:131;:::i;:::-;18263:139;;17990:419;;;:::o;18415:182::-;18555:34;18551:1;18543:6;18539:14;18532:58;18415:182;:::o;18603:366::-;18745:3;18766:67;18830:2;18825:3;18766:67;:::i;:::-;18759:74;;18842:93;18931:3;18842:93;:::i;:::-;18960:2;18955:3;18951:12;18944:19;;18603:366;;;:::o;18975:419::-;19141:4;19179:2;19168:9;19164:18;19156:26;;19228:9;19222:4;19218:20;19214:1;19203:9;19199:17;19192:47;19256:131;19382:4;19256:131;:::i;:::-;19248:139;;18975:419;;;:::o;19400:223::-;19540:34;19536:1;19528:6;19524:14;19517:58;19609:6;19604:2;19596:6;19592:15;19585:31;19400:223;:::o;19629:366::-;19771:3;19792:67;19856:2;19851:3;19792:67;:::i;:::-;19785:74;;19868:93;19957:3;19868:93;:::i;:::-;19986:2;19981:3;19977:12;19970:19;;19629:366;;;:::o;20001:419::-;20167:4;20205:2;20194:9;20190:18;20182:26;;20254:9;20248:4;20244:20;20240:1;20229:9;20225:17;20218:47;20282:131;20408:4;20282:131;:::i;:::-;20274:139;;20001:419;;;:::o;20426:221::-;20566:34;20562:1;20554:6;20550:14;20543:58;20635:4;20630:2;20622:6;20618:15;20611:29;20426:221;:::o;20653:366::-;20795:3;20816:67;20880:2;20875:3;20816:67;:::i;:::-;20809:74;;20892:93;20981:3;20892:93;:::i;:::-;21010:2;21005:3;21001:12;20994:19;;20653:366;;;:::o;21025:419::-;21191:4;21229:2;21218:9;21214:18;21206:26;;21278:9;21272:4;21268:20;21264:1;21253:9;21249:17;21242:47;21306:131;21432:4;21306:131;:::i;:::-;21298:139;;21025:419;;;:::o;21450:179::-;21590:31;21586:1;21578:6;21574:14;21567:55;21450:179;:::o;21635:366::-;21777:3;21798:67;21862:2;21857:3;21798:67;:::i;:::-;21791:74;;21874:93;21963:3;21874:93;:::i;:::-;21992:2;21987:3;21983:12;21976:19;;21635:366;;;:::o;22007:419::-;22173:4;22211:2;22200:9;22196:18;22188:26;;22260:9;22254:4;22250:20;22246:1;22235:9;22231:17;22224:47;22288:131;22414:4;22288:131;:::i;:::-;22280:139;;22007:419;;;:::o;22432:178::-;22572:30;22568:1;22560:6;22556:14;22549:54;22432:178;:::o;22616:366::-;22758:3;22779:67;22843:2;22838:3;22779:67;:::i;:::-;22772:74;;22855:93;22944:3;22855:93;:::i;:::-;22973:2;22968:3;22964:12;22957:19;;22616:366;;;:::o;22988:419::-;23154:4;23192:2;23181:9;23177:18;23169:26;;23241:9;23235:4;23231:20;23227:1;23216:9;23212:17;23205:47;23269:131;23395:4;23269:131;:::i;:::-;23261:139;;22988:419;;;:::o;23413:228::-;23553:34;23549:1;23541:6;23537:14;23530:58;23622:11;23617:2;23609:6;23605:15;23598:36;23413:228;:::o;23647:366::-;23789:3;23810:67;23874:2;23869:3;23810:67;:::i;:::-;23803:74;;23886:93;23975:3;23886:93;:::i;:::-;24004:2;23999:3;23995:12;23988:19;;23647:366;;;:::o;24019:419::-;24185:4;24223:2;24212:9;24208:18;24200:26;;24272:9;24266:4;24262:20;24258:1;24247:9;24243:17;24236:47;24300:131;24426:4;24300:131;:::i;:::-;24292:139;;24019:419;;;:::o;24444:164::-;24584:16;24580:1;24572:6;24568:14;24561:40;24444:164;:::o;24614:366::-;24756:3;24777:67;24841:2;24836:3;24777:67;:::i;:::-;24770:74;;24853:93;24942:3;24853:93;:::i;:::-;24971:2;24966:3;24962:12;24955:19;;24614:366;;;:::o;24986:419::-;25152:4;25190:2;25179:9;25175:18;25167:26;;25239:9;25233:4;25229:20;25225:1;25214:9;25210:17;25203:47;25267:131;25393:4;25267:131;:::i;:::-;25259:139;;24986:419;;;:::o;25411:410::-;25451:7;25474:20;25492:1;25474:20;:::i;:::-;25469:25;;25508:20;25526:1;25508:20;:::i;:::-;25503:25;;25563:1;25560;25556:9;25585:30;25603:11;25585:30;:::i;:::-;25574:41;;25764:1;25755:7;25751:15;25748:1;25745:22;25725:1;25718:9;25698:83;25675:139;;25794:18;;:::i;:::-;25675:139;25459:362;25411:410;;;;:::o;25827:180::-;25875:77;25872:1;25865:88;25972:4;25969:1;25962:15;25996:4;25993:1;25986:15;26013:185;26053:1;26070:20;26088:1;26070:20;:::i;:::-;26065:25;;26104:20;26122:1;26104:20;:::i;:::-;26099:25;;26143:1;26133:35;;26148:18;;:::i;:::-;26133:35;26190:1;26187;26183:9;26178:14;;26013:185;;;;:::o;26204:175::-;26344:27;26340:1;26332:6;26328:14;26321:51;26204:175;:::o;26385:366::-;26527:3;26548:67;26612:2;26607:3;26548:67;:::i;:::-;26541:74;;26624:93;26713:3;26624:93;:::i;:::-;26742:2;26737:3;26733:12;26726:19;;26385:366;;;:::o;26757:419::-;26923:4;26961:2;26950:9;26946:18;26938:26;;27010:9;27004:4;27000:20;26996:1;26985:9;26981:17;26974:47;27038:131;27164:4;27038:131;:::i;:::-;27030:139;;26757:419;;;:::o;27182:168::-;27322:20;27318:1;27310:6;27306:14;27299:44;27182:168;:::o;27356:366::-;27498:3;27519:67;27583:2;27578:3;27519:67;:::i;:::-;27512:74;;27595:93;27684:3;27595:93;:::i;:::-;27713:2;27708:3;27704:12;27697:19;;27356:366;;;:::o;27728:419::-;27894:4;27932:2;27921:9;27917:18;27909:26;;27981:9;27975:4;27971:20;27967:1;27956:9;27952:17;27945:47;28009:131;28135:4;28009:131;:::i;:::-;28001:139;;27728:419;;;:::o;28153:180::-;28201:77;28198:1;28191:88;28298:4;28295:1;28288:15;28322:4;28319:1;28312:15;28339:180;28387:77;28384:1;28377:88;28484:4;28481:1;28474:15;28508:4;28505:1;28498:15;28525:143;28582:5;28613:6;28607:13;28598:22;;28629:33;28656:5;28629:33;:::i;:::-;28525:143;;;;:::o;28674:351::-;28744:6;28793:2;28781:9;28772:7;28768:23;28764:32;28761:119;;;28799:79;;:::i;:::-;28761:119;28919:1;28944:64;29000:7;28991:6;28980:9;28976:22;28944:64;:::i;:::-;28934:74;;28890:128;28674:351;;;;:::o;29031:85::-;29076:7;29105:5;29094:16;;29031:85;;;:::o;29122:158::-;29180:9;29213:61;29231:42;29240:32;29266:5;29240:32;:::i;:::-;29231:42;:::i;:::-;29213:61;:::i;:::-;29200:74;;29122:158;;;:::o;29286:147::-;29381:45;29420:5;29381:45;:::i;:::-;29376:3;29369:58;29286:147;;:::o;29439:114::-;29506:6;29540:5;29534:12;29524:22;;29439:114;;;:::o;29559:184::-;29658:11;29692:6;29687:3;29680:19;29732:4;29727:3;29723:14;29708:29;;29559:184;;;;:::o;29749:132::-;29816:4;29839:3;29831:11;;29869:4;29864:3;29860:14;29852:22;;29749:132;;;:::o;29887:108::-;29964:24;29982:5;29964:24;:::i;:::-;29959:3;29952:37;29887:108;;:::o;30001:179::-;30070:10;30091:46;30133:3;30125:6;30091:46;:::i;:::-;30169:4;30164:3;30160:14;30146:28;;30001:179;;;;:::o;30186:113::-;30256:4;30288;30283:3;30279:14;30271:22;;30186:113;;;:::o;30335:732::-;30454:3;30483:54;30531:5;30483:54;:::i;:::-;30553:86;30632:6;30627:3;30553:86;:::i;:::-;30546:93;;30663:56;30713:5;30663:56;:::i;:::-;30742:7;30773:1;30758:284;30783:6;30780:1;30777:13;30758:284;;;30859:6;30853:13;30886:63;30945:3;30930:13;30886:63;:::i;:::-;30879:70;;30972:60;31025:6;30972:60;:::i;:::-;30962:70;;30818:224;30805:1;30802;30798:9;30793:14;;30758:284;;;30762:14;31058:3;31051:10;;30459:608;;;30335:732;;;;:::o;31073:831::-;31336:4;31374:3;31363:9;31359:19;31351:27;;31388:71;31456:1;31445:9;31441:17;31432:6;31388:71;:::i;:::-;31469:80;31545:2;31534:9;31530:18;31521:6;31469:80;:::i;:::-;31596:9;31590:4;31586:20;31581:2;31570:9;31566:18;31559:48;31624:108;31727:4;31718:6;31624:108;:::i;:::-;31616:116;;31742:72;31810:2;31799:9;31795:18;31786:6;31742:72;:::i;:::-;31824:73;31892:3;31881:9;31877:19;31868:6;31824:73;:::i;:::-;31073:831;;;;;;;;:::o

Swarm Source

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