ETH Price: $3,258.64 (-0.77%)
Gas: 1 Gwei

Token

2.0 PEPE 2.0 ($2.0PEPE2.0)
 

Overview

Max Total Supply

420,690,000,000,000 $2.0PEPE2.0

Holders

102

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,214,509,474,323.196239736 $2.0PEPE2.0

Value
$0.00
0x63f0238b7edd734d77a9224dcf4593fcdb6039ff
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
PEPE2

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-10
*/

//SPDX-License-Identifier: MIT

/*

Here is your last chance! Don't fuck it up...
#2PEPE2

https://t.me/erc20pepe20portal

https://twitter.com/20pepe20_Eth

https://20pepe20.com/

**/
// File: @uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol

pragma solidity >=0.5.0;

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

// File: @uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol

pragma solidity >=0.6.2;

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

// File: @uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol

pragma solidity >=0.6.2;


interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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


// 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: @openzeppelin/contracts/utils/Context.sol


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

pragma solidity ^0.8.0;

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

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

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


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

pragma solidity ^0.8.0;


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

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

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

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

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

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

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. 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);
    }
}

// File: PEPE2.sol


pragma solidity ^0.8.14;





contract PEPE2 is IERC20, Ownable {
    string constant _name = "2.0 PEPE 2.0";
    string constant _symbol = "$2.0PEPE2.0";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 420_690_000_000_000 * (10 ** _decimals);

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

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isAuthorized;
    mapping(address => bool) public isBlacklisted;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;

    address public marketingWallet;
    address public devWallet;

    // Fees

    uint256 public buyTotalFee = 20;

    uint256 public sellTotalFee = 30;

    uint256 public devPercentage = 50;
    uint256 public marketingPercentage = 50;

    uint256 public maxWallet = (_totalSupply * 3) / 1000;

    IUniswapV2Router02 public router;
    address public pair;

    uint256 public listingTime;

    bool public firstCallDone;

    bool public getTransferFees = false;

    uint256 public swapThreshold = (_totalSupply * 1) / 10000; // 0.001% of supply
    bool public contractSwapEnabled = true;
    bool public isTradeEnabled = false;
    bool inContractSwap;
    modifier swapping() {
        inContractSwap = true;
        _;
        inContractSwap = false;
    }

    event SetIsFeeExempt(address holder, bool status);
    event AddAuthorizedWallet(address holder, bool status);
    event SetDoContractSwap(bool status);
    event DoContractSwap(uint256 amount, uint256 time);
    event ChangeDistributionCriteria(
        uint256 minPeriod,
        uint256 minDistribution
    );

    constructor() {
        router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IUniswapV2Factory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingWallet = 0x20780E19d61b79bc46DD1740fC4a959837c6a31a;

        devWallet = 0x82cf0CED4822104bE7525FcC47Edc52a1Ed03a0B;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[marketingWallet] = true;

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

        isAuthorized[marketingWallet] = true;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function allowance(
        address holder,
        address spender
    ) external view override returns (uint256) {
        return _allowances[holder][spender];
    }

    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            require(
                _allowances[sender][msg.sender] >= amount,
                "Insufficient Allowance"
            );
            _allowances[sender][msg.sender] =
                _allowances[sender][msg.sender] -
                amount;
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (!isTradeEnabled) require(isAuthorized[sender], "Trading disabled");
        require(
            !isBlacklisted[sender] && !isBlacklisted[recipient],
            "ERC20: transfer from/to the blacklisted address"
        );

        if (pair != recipient && !_isExcludedMaxTransactionAmount[recipient]) {
            require(
                amount + balanceOf(recipient) <= maxWallet,
                "Max wallet exceeded"
            );
        }

        if (inContractSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        if (shouldDoContractSwap()) {
            doContractSwap();
        }

        require(_balances[sender] >= amount, "Insufficient Balance");
        _balances[sender] = _balances[sender] - amount;

        uint256 amountReceived = shouldTakeFee(sender, recipient)
            ? takeFee(sender, recipient, amount)
            : amount;
        _balances[recipient] = _balances[recipient] + amountReceived;

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function takeFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeToken;
        if (block.timestamp > (listingTime + 10 minutes)) {
            feeToken = amount / 100;
        } else if (block.timestamp > (listingTime + 5 minutes)) {
            if (recipient == pair) feeToken = (amount * 20) / 100;
            else feeToken = (amount * 10) / 100;
        } else {
            if (recipient == pair) feeToken = (amount * sellTotalFee) / 100;
            else feeToken = (amount * buyTotalFee) / 100;
        }

        _balances[address(this)] = _balances[address(this)] + feeToken;
        emit Transfer(sender, address(this), feeToken);

        return (amount - feeToken);
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        require(_balances[sender] >= amount, "Insufficient Balance");
        _balances[sender] = _balances[sender] - amount;

        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(
        address sender,
        address to
    ) internal view returns (bool) {
        if (!getTransferFees) {
            if (sender != pair && to != pair) return false;
        }
        if (isFeeExempt[sender] || isFeeExempt[to]) {
            return false;
        } else {
            return true;
        }
    }

    function shouldDoContractSwap() internal view returns (bool) {
        return (msg.sender != pair &&
            !inContractSwap &&
            contractSwapEnabled &&
            _balances[address(this)] >= swapThreshold);
    }

    function isFeeExcluded(address _wallet) public view returns (bool) {
        return isFeeExempt[_wallet];
    }

    function doContractSwap() internal swapping {
        uint256 contractTokenBalance = _balances[address(this)];

        if (contractTokenBalance > 0) swapTokensForEth(contractTokenBalance);

        uint256 swappedEth = address(this).balance;

        uint256 marketingEth = (swappedEth * marketingPercentage) / 100;

        payable(marketingWallet).transfer(marketingEth);
        payable(devWallet).transfer(swappedEth - marketingEth);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;

        emit SetIsFeeExempt(holder, exempt);
    }

    function setDoContractSwap(bool _enabled) external onlyOwner {
        contractSwapEnabled = _enabled;

        emit SetDoContractSwap(_enabled);
    }

    function changeMarketingWallet(address _wallet) external onlyOwner {
        marketingWallet = _wallet;
    }

    function changeBuyFees(uint256 _buyTotalFee) external onlyOwner {
        buyTotalFee = _buyTotalFee;
    }

    function changeSellFees(uint256 _sellTotalFee) external onlyOwner {
        sellTotalFee = _sellTotalFee;
    }

    function enableTrading() external onlyOwner {
        require(!isTradeEnabled, "Trading already enabled");
        isTradeEnabled = true;
        listingTime = block.timestamp;
    }

    function setAuthorizedWallets(
        address _wallet,
        bool _status
    ) external onlyOwner {
        isAuthorized[_wallet] = _status;
    }

    function rescueETH() external onlyOwner {
        uint256 balance = address(this).balance;
        require(balance > 0, "No enough ETH to transfer");

        payable(msg.sender).transfer(balance);
    }

    function changeGetFeesOnTransfer(bool _status) external onlyOwner {
        getTransferFees = _status;
    }

    function changePair(address _pair) external onlyOwner {
        pair = _pair;
    }

    function changeFees(uint256 _buy, uint256 _sell) external onlyOwner {
        require(
            block.timestamp <= (listingTime + 5 minutes),
            "you can not change fees now"
        );

        require(_buy <= 30 && _sell <= 30, "fees can not grater than 40%");

        buyTotalFee = _buy;
        sellTotalFee = _sell;
    }

    function changefeeReciverPercentage(
        uint256 _marketing,
        uint256 _dev
    ) external onlyOwner {
        require((_marketing + _dev) == 100, "should be equal to 100");

        devPercentage = _dev;
        marketingPercentage = _marketing;
    }

    function changeDevAddress(address _newDev) external onlyOwner {
        devWallet = _newDev;
    }

    function Shake() external onlyOwner {
        require(!firstCallDone, "Function has already been called");
        sellTotalFee = 99;
        isBlacklisted[pair] = true;
        isBlacklisted[address(this)] = true;
        //
        buyTotalFee = 20;
        sellTotalFee = 30;
        isBlacklisted[pair] = false;
        isBlacklisted[address(this)] = false;
        firstCallDone = true;
    }

    function excludeFromMaxWallet(
        address _wallet,
        bool _status
    ) external onlyOwner {
        _isExcludedMaxTransactionAmount[_wallet] = _status;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"AddAuthorizedWallet","type":"event"},{"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":false,"internalType":"uint256","name":"minPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minDistribution","type":"uint256"}],"name":"ChangeDistributionCriteria","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"DoContractSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"SetDoContractSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"SetIsFeeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Shake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTotalFee","type":"uint256"}],"name":"changeBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newDev","type":"address"}],"name":"changeDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"changeGetFeesOnTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"changeMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"changePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellTotalFee","type":"uint256"}],"name":"changeSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"changefeeReciverPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"firstCallDone","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTransferFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"isFeeExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"listingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setAuthorizedWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setDoContractSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004d3565b620000259066017e9d8602b400620004eb565b6001556014600a55601e600b556032600c556032600d556103e86001546003620000509190620004eb565b6200005c91906200050d565b600e556012805461ff001916905560018054612710916200007e9190620004eb565b6200008a91906200050d565b6013556014805461ffff19166001179055348015620000a857600080fd5b50620000b4336200036e565b600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000119573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013f919062000530565b6001600160a01b031663c9c65396600f60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c7919062000530565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000214573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023a919062000530565b601080546001600160a01b039283166001600160a01b031991821617909155306000818152600360209081526040808320600f5487168452825280832060001990556008805486167320780e19d61b79bc46dd1740fc4a959837c6a31a178155600980549096167382cf0ced4822104be7525fcc47edc52a1ed03a0b179095553380845260048352818420805460ff19908116600190811790925586865283862080548216831790558754891686528386208054821683179055828652600585528386208054821683179055958552828520805487168217905595549096168352808320805490941685179093559254848252600284528282208190559151918252917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200055b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000415578160001904821115620003f957620003f9620003be565b808516156200040757918102915b93841c9390800290620003d9565b509250929050565b6000826200042e57506001620004cd565b816200043d57506000620004cd565b8160018114620004565760028114620004615762000481565b6001915050620004cd565b60ff841115620004755762000475620003be565b50506001821b620004cd565b5060208310610133831016604e8410600b8410161715620004a6575081810a620004cd565b620004b28383620003d4565b8060001904821115620004c957620004c9620003be565b0290505b92915050565b6000620004e460ff8416836200041d565b9392505050565b6000816000190483118215151615620005085762000508620003be565b500290565b6000826200052b57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200054357600080fd5b81516001600160a01b0381168114620004e457600080fd5b611dca806200056b6000396000f3fe6080604052600436106102965760003560e01c806375f0a8741161015a578063c3a43824116100c1578063f887ea401161007a578063f887ea4014610845578063f8b45b0514610865578063fa05db0f1461087b578063fdb78c0e1461089b578063fe575a87146108b5578063fe9fbb80146108e557600080fd5b8063c3a4382414610773578063ce54149414610789578063d2fcc001146107a9578063dd62ed3e146107c9578063de20308a1461080f578063f2fde38b1461082557600080fd5b806392b463901161011357806392b463901461068657806395d89b41146106a6578063a8aa1b31146106da578063a9059cbb146106fa578063bb85c6d11461071a578063bca238aa1461073a57600080fd5b806375f0a874146105bc578063875c2af8146105f45780638a8c523c146106145780638d38a127146106295780638da5cb5b146106485780638ea5220f1461066657600080fd5b8063313ce567116101fe578063415bc319116101b7578063415bc319146104fc578063571ac8b014610511578063658d4b7f146105315780636bc8af841461055157806370a0823114610571578063715018a6146105a757600080fd5b8063313ce5671461044457806333b14742146104605780633683685a146104765780633705b392146104965780633f4218e0146104ac578063413a6e39146104dc57600080fd5b806310d5de531161025057806310d5de531461038857806318160ddd146103b857806320800a00146103cd57806321ecff5b146103e457806323b872dd1461040457806323f4f9f51461042457600080fd5b8062afb325146102a25780630445b667146102cb57806306fdde03146102e1578063095ea7b31461031f5780630ca9c3091461034f5780630ce906071461036957600080fd5b3661029d57005b600080fd5b3480156102ae57600080fd5b506102b8600b5481565b6040519081526020015b60405180910390f35b3480156102d757600080fd5b506102b860135481565b3480156102ed57600080fd5b5060408051808201909152600c81526b0322e30205045504520322e360a41b60208201525b6040516102c29190611a9d565b34801561032b57600080fd5b5061033f61033a366004611b07565b610915565b60405190151581526020016102c2565b34801561035b57600080fd5b5060125461033f9060ff1681565b34801561037557600080fd5b5060125461033f90610100900460ff1681565b34801561039457600080fd5b5061033f6103a3366004611b33565b60076020526000908152604090205460ff1681565b3480156103c457600080fd5b506001546102b8565b3480156103d957600080fd5b506103e2610982565b005b3480156103f057600080fd5b506103e26103ff366004611b50565b610a0e565b34801561041057600080fd5b5061033f61041f366004611b72565b610add565b34801561043057600080fd5b506103e261043f366004611bc8565b610bde565b34801561045057600080fd5b50604051600981526020016102c2565b34801561046c57600080fd5b506102b860115481565b34801561048257600080fd5b506103e2610491366004611be3565b610c00565b3480156104a257600080fd5b506102b8600a5481565b3480156104b857600080fd5b5061033f6104c7366004611b33565b60046020526000908152604090205460ff1681565b3480156104e857600080fd5b506103e26104f7366004611b50565b610c33565b34801561050857600080fd5b506103e2610c95565b34801561051d57600080fd5b5061033f61052c366004611b33565b610d63565b34801561053d57600080fd5b506103e261054c366004611be3565b610d71565b34801561055d57600080fd5b506103e261056c366004611b33565b610ddc565b34801561057d57600080fd5b506102b861058c366004611b33565b6001600160a01b031660009081526002602052604090205490565b3480156105b357600080fd5b506103e2610e06565b3480156105c857600080fd5b506008546105dc906001600160a01b031681565b6040516001600160a01b0390911681526020016102c2565b34801561060057600080fd5b506103e261060f366004611c18565b610e1a565b34801561062057600080fd5b506103e2610e27565b34801561063557600080fd5b5060145461033f90610100900460ff1681565b34801561065457600080fd5b506000546001600160a01b03166105dc565b34801561067257600080fd5b506009546105dc906001600160a01b031681565b34801561069257600080fd5b506103e26106a1366004611b33565b610e9c565b3480156106b257600080fd5b5060408051808201909152600b81526a024322e3050455045322e360ac1b6020820152610312565b3480156106e657600080fd5b506010546105dc906001600160a01b031681565b34801561070657600080fd5b5061033f610715366004611b07565b610ec6565b34801561072657600080fd5b506103e2610735366004611b33565b610ed3565b34801561074657600080fd5b5061033f610755366004611b33565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561077f57600080fd5b506102b8600c5481565b34801561079557600080fd5b506103e26107a4366004611bc8565b610efd565b3480156107b557600080fd5b506103e26107c4366004611be3565b610f4c565b3480156107d557600080fd5b506102b86107e4366004611c31565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561081b57600080fd5b506102b8600d5481565b34801561083157600080fd5b506103e2610840366004611b33565b610f7f565b34801561085157600080fd5b50600f546105dc906001600160a01b031681565b34801561087157600080fd5b506102b8600e5481565b34801561088757600080fd5b506103e2610896366004611c18565b610ff8565b3480156108a757600080fd5b5060145461033f9060ff1681565b3480156108c157600080fd5b5061033f6108d0366004611b33565b60066020526000908152604090205460ff1681565b3480156108f157600080fd5b5061033f610900366004611b33565b60056020526000908152604090205460ff1681565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109709086815260200190565b60405180910390a35060015b92915050565b61098a611005565b47806109dd5760405162461bcd60e51b815260206004820152601960248201527f4e6f20656e6f7567682045544820746f207472616e736665720000000000000060448201526064015b60405180910390fd5b604051339082156108fc029083906000818181858888f19350505050158015610a0a573d6000803e3d6000fd5b5050565b610a16611005565b601154610a259061012c611c80565b421115610a745760405162461bcd60e51b815260206004820152601b60248201527f796f752063616e206e6f74206368616e67652066656573206e6f77000000000060448201526064016109d4565b601e8211158015610a865750601e8111155b610ad25760405162461bcd60e51b815260206004820152601c60248201527f666565732063616e206e6f7420677261746572207468616e203430250000000060448201526064016109d4565b600a91909155600b55565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610bc9576001600160a01b0384166000908152600360209081526040808320338452909152902054821115610b755760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b60448201526064016109d4565b6001600160a01b0384166000908152600360209081526040808320338452909152902054610ba4908390611c98565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610bd484848461105f565b90505b9392505050565b610be6611005565b601280549115156101000261ff0019909216919091179055565b610c08611005565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b610c3b611005565b610c458183611c80565b606414610c8d5760405162461bcd60e51b8152602060048201526016602482015275073686f756c6420626520657175616c20746f203130360541b60448201526064016109d4565b600c55600d55565b610c9d611005565b60125460ff1615610cf05760405162461bcd60e51b815260206004820181905260248201527f46756e6374696f6e2068617320616c7265616479206265656e2063616c6c656460448201526064016109d4565b6063600b908155601080546001600160a01b039081166000908152600660205260408082208054600160ff1991821681179092553080855283852080548316841781556014600a55601e909855955490941683529082208054841690559290528254811690925560128054909216179055565b600061097c82600019610915565b610d79611005565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527f1b92447bfc74f86a82293c184341926a5888220bc498dde33efabf7c3d796d69910160405180910390a15050565b610de4611005565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b610e0e611005565b610e18600061139c565b565b610e22611005565b600b55565b610e2f611005565b601454610100900460ff1615610e875760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c656400000000000000000060448201526064016109d4565b6014805461ff00191661010017905542601155565b610ea4611005565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000610bd733848461105f565b610edb611005565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b610f05611005565b6014805460ff19168215159081179091556040519081527f0d537fcb73bb9654441eb9bd03c28d4b833e5a2da1f53bf422424cb01bc80fc79060200160405180910390a150565b610f54611005565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b610f87611005565b6001600160a01b038116610fec5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109d4565b610ff58161139c565b50565b611000611005565b600a55565b6000546001600160a01b03163314610e185760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109d4565b601454600090610100900460ff166110cc576001600160a01b03841660009081526005602052604090205460ff166110cc5760405162461bcd60e51b815260206004820152601060248201526f151c98591a5b99c8191a5cd8589b195960821b60448201526064016109d4565b6001600160a01b03841660009081526006602052604090205460ff1615801561110e57506001600160a01b03831660009081526006602052604090205460ff16155b6111725760405162461bcd60e51b815260206004820152602f60248201527f45524332303a207472616e736665722066726f6d2f746f2074686520626c616360448201526e6b6c6973746564206164647265737360881b60648201526084016109d4565b6010546001600160a01b038481169116148015906111a957506001600160a01b03831660009081526007602052604090205460ff16155b1561121857600e546001600160a01b0384166000908152600260205260409020546111d49084611c80565b11156112185760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109d4565b60145462010000900460ff161561123b576112348484846113ec565b9050610bd7565b611243611505565b156112505761125061155c565b6001600160a01b0384166000908152600260205260409020548211156112af5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b60448201526064016109d4565b6001600160a01b0384166000908152600260205260409020546112d3908390611c98565b6001600160a01b0385166000908152600260205260408120919091556112f9858561163a565b611303578261130e565b61130e8585856116d9565b6001600160a01b038516600090815260026020526040902054909150611335908290611c80565b6001600160a01b0380861660008181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113899085815260200190565b60405180910390a3506001949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03831660009081526002602052604081205482111561144b5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b60448201526064016109d4565b6001600160a01b03841660009081526002602052604090205461146f908390611c98565b6001600160a01b03808616600090815260026020526040808220939093559085168152205461149f908390611c80565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114f39086815260200190565b60405180910390a35060019392505050565b6010546000906001600160a01b0316331480159061152c575060145462010000900460ff16155b801561153a575060145460ff165b801561155757506013543060009081526002602052604090205410155b905090565b6014805462ff000019166201000017905530600090815260026020526040902054801561158c5761158c8161181f565b600d5447906000906064906115a19084611caf565b6115ab9190611cce565b6008546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156115e6573d6000803e3d6000fd5b506009546001600160a01b03166108fc6116008385611c98565b6040518115909202916000818181858888f19350505050158015611628573d6000803e3d6000fd5b50506014805462ff0000191690555050565b601254600090610100900460ff16611685576010546001600160a01b0384811691161480159061167857506010546001600160a01b03838116911614155b156116855750600061097c565b6001600160a01b03831660009081526004602052604090205460ff16806116c457506001600160a01b03821660009081526004602052604090205460ff165b156116d15750600061097c565b50600161097c565b6000806011546102586116ec9190611c80565b421115611705576116fe606484611cce565b9050611798565b6011546117149061012c611c80565b421115611755576010546001600160a01b039081169085160361174857606461173e846014611caf565b6116fe9190611cce565b606461173e84600a611caf565b6010546001600160a01b039081169085160361177b576064600b548461173e9190611caf565b6064600a548461178b9190611caf565b6117959190611cce565b90505b306000908152600260205260409020546117b3908290611c80565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118049085815260200190565b60405180910390a36118168184611c98565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061185457611854611cf0565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156118ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d19190611d06565b816001815181106118e4576118e4611cf0565b6001600160a01b039283166020918202929092010152600f5461190a9130911684611979565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611943908590600090869030904290600401611d23565b600060405180830381600087803b15801561195d57600080fd5b505af1158015611971573d6000803e3d6000fd5b505050505050565b6001600160a01b0383166119db5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109d4565b6001600160a01b038216611a3c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109d4565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600060208083528351808285015260005b81811015611aca57858101830151858201604001528201611aae565b81811115611adc576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610ff557600080fd5b60008060408385031215611b1a57600080fd5b8235611b2581611af2565b946020939093013593505050565b600060208284031215611b4557600080fd5b8135610bd781611af2565b60008060408385031215611b6357600080fd5b50508035926020909101359150565b600080600060608486031215611b8757600080fd5b8335611b9281611af2565b92506020840135611ba281611af2565b929592945050506040919091013590565b80358015158114611bc357600080fd5b919050565b600060208284031215611bda57600080fd5b610bd782611bb3565b60008060408385031215611bf657600080fd5b8235611c0181611af2565b9150611c0f60208401611bb3565b90509250929050565b600060208284031215611c2a57600080fd5b5035919050565b60008060408385031215611c4457600080fd5b8235611c4f81611af2565b91506020830135611c5f81611af2565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60008219821115611c9357611c93611c6a565b500190565b600082821015611caa57611caa611c6a565b500390565b6000816000190483118215151615611cc957611cc9611c6a565b500290565b600082611ceb57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611d1857600080fd5b8151610bd781611af2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d735784516001600160a01b031683529383019391830191600101611d4e565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220af8758db3f6a2f97da906e8f29ede20570d67be79c6bf32005b3f119a0dcf14c64736f6c634300080e0033

Deployed Bytecode

0x6080604052600436106102965760003560e01c806375f0a8741161015a578063c3a43824116100c1578063f887ea401161007a578063f887ea4014610845578063f8b45b0514610865578063fa05db0f1461087b578063fdb78c0e1461089b578063fe575a87146108b5578063fe9fbb80146108e557600080fd5b8063c3a4382414610773578063ce54149414610789578063d2fcc001146107a9578063dd62ed3e146107c9578063de20308a1461080f578063f2fde38b1461082557600080fd5b806392b463901161011357806392b463901461068657806395d89b41146106a6578063a8aa1b31146106da578063a9059cbb146106fa578063bb85c6d11461071a578063bca238aa1461073a57600080fd5b806375f0a874146105bc578063875c2af8146105f45780638a8c523c146106145780638d38a127146106295780638da5cb5b146106485780638ea5220f1461066657600080fd5b8063313ce567116101fe578063415bc319116101b7578063415bc319146104fc578063571ac8b014610511578063658d4b7f146105315780636bc8af841461055157806370a0823114610571578063715018a6146105a757600080fd5b8063313ce5671461044457806333b14742146104605780633683685a146104765780633705b392146104965780633f4218e0146104ac578063413a6e39146104dc57600080fd5b806310d5de531161025057806310d5de531461038857806318160ddd146103b857806320800a00146103cd57806321ecff5b146103e457806323b872dd1461040457806323f4f9f51461042457600080fd5b8062afb325146102a25780630445b667146102cb57806306fdde03146102e1578063095ea7b31461031f5780630ca9c3091461034f5780630ce906071461036957600080fd5b3661029d57005b600080fd5b3480156102ae57600080fd5b506102b8600b5481565b6040519081526020015b60405180910390f35b3480156102d757600080fd5b506102b860135481565b3480156102ed57600080fd5b5060408051808201909152600c81526b0322e30205045504520322e360a41b60208201525b6040516102c29190611a9d565b34801561032b57600080fd5b5061033f61033a366004611b07565b610915565b60405190151581526020016102c2565b34801561035b57600080fd5b5060125461033f9060ff1681565b34801561037557600080fd5b5060125461033f90610100900460ff1681565b34801561039457600080fd5b5061033f6103a3366004611b33565b60076020526000908152604090205460ff1681565b3480156103c457600080fd5b506001546102b8565b3480156103d957600080fd5b506103e2610982565b005b3480156103f057600080fd5b506103e26103ff366004611b50565b610a0e565b34801561041057600080fd5b5061033f61041f366004611b72565b610add565b34801561043057600080fd5b506103e261043f366004611bc8565b610bde565b34801561045057600080fd5b50604051600981526020016102c2565b34801561046c57600080fd5b506102b860115481565b34801561048257600080fd5b506103e2610491366004611be3565b610c00565b3480156104a257600080fd5b506102b8600a5481565b3480156104b857600080fd5b5061033f6104c7366004611b33565b60046020526000908152604090205460ff1681565b3480156104e857600080fd5b506103e26104f7366004611b50565b610c33565b34801561050857600080fd5b506103e2610c95565b34801561051d57600080fd5b5061033f61052c366004611b33565b610d63565b34801561053d57600080fd5b506103e261054c366004611be3565b610d71565b34801561055d57600080fd5b506103e261056c366004611b33565b610ddc565b34801561057d57600080fd5b506102b861058c366004611b33565b6001600160a01b031660009081526002602052604090205490565b3480156105b357600080fd5b506103e2610e06565b3480156105c857600080fd5b506008546105dc906001600160a01b031681565b6040516001600160a01b0390911681526020016102c2565b34801561060057600080fd5b506103e261060f366004611c18565b610e1a565b34801561062057600080fd5b506103e2610e27565b34801561063557600080fd5b5060145461033f90610100900460ff1681565b34801561065457600080fd5b506000546001600160a01b03166105dc565b34801561067257600080fd5b506009546105dc906001600160a01b031681565b34801561069257600080fd5b506103e26106a1366004611b33565b610e9c565b3480156106b257600080fd5b5060408051808201909152600b81526a024322e3050455045322e360ac1b6020820152610312565b3480156106e657600080fd5b506010546105dc906001600160a01b031681565b34801561070657600080fd5b5061033f610715366004611b07565b610ec6565b34801561072657600080fd5b506103e2610735366004611b33565b610ed3565b34801561074657600080fd5b5061033f610755366004611b33565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561077f57600080fd5b506102b8600c5481565b34801561079557600080fd5b506103e26107a4366004611bc8565b610efd565b3480156107b557600080fd5b506103e26107c4366004611be3565b610f4c565b3480156107d557600080fd5b506102b86107e4366004611c31565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561081b57600080fd5b506102b8600d5481565b34801561083157600080fd5b506103e2610840366004611b33565b610f7f565b34801561085157600080fd5b50600f546105dc906001600160a01b031681565b34801561087157600080fd5b506102b8600e5481565b34801561088757600080fd5b506103e2610896366004611c18565b610ff8565b3480156108a757600080fd5b5060145461033f9060ff1681565b3480156108c157600080fd5b5061033f6108d0366004611b33565b60066020526000908152604090205460ff1681565b3480156108f157600080fd5b5061033f610900366004611b33565b60056020526000908152604090205460ff1681565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109709086815260200190565b60405180910390a35060015b92915050565b61098a611005565b47806109dd5760405162461bcd60e51b815260206004820152601960248201527f4e6f20656e6f7567682045544820746f207472616e736665720000000000000060448201526064015b60405180910390fd5b604051339082156108fc029083906000818181858888f19350505050158015610a0a573d6000803e3d6000fd5b5050565b610a16611005565b601154610a259061012c611c80565b421115610a745760405162461bcd60e51b815260206004820152601b60248201527f796f752063616e206e6f74206368616e67652066656573206e6f77000000000060448201526064016109d4565b601e8211158015610a865750601e8111155b610ad25760405162461bcd60e51b815260206004820152601c60248201527f666565732063616e206e6f7420677261746572207468616e203430250000000060448201526064016109d4565b600a91909155600b55565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610bc9576001600160a01b0384166000908152600360209081526040808320338452909152902054821115610b755760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b60448201526064016109d4565b6001600160a01b0384166000908152600360209081526040808320338452909152902054610ba4908390611c98565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610bd484848461105f565b90505b9392505050565b610be6611005565b601280549115156101000261ff0019909216919091179055565b610c08611005565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b610c3b611005565b610c458183611c80565b606414610c8d5760405162461bcd60e51b8152602060048201526016602482015275073686f756c6420626520657175616c20746f203130360541b60448201526064016109d4565b600c55600d55565b610c9d611005565b60125460ff1615610cf05760405162461bcd60e51b815260206004820181905260248201527f46756e6374696f6e2068617320616c7265616479206265656e2063616c6c656460448201526064016109d4565b6063600b908155601080546001600160a01b039081166000908152600660205260408082208054600160ff1991821681179092553080855283852080548316841781556014600a55601e909855955490941683529082208054841690559290528254811690925560128054909216179055565b600061097c82600019610915565b610d79611005565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527f1b92447bfc74f86a82293c184341926a5888220bc498dde33efabf7c3d796d69910160405180910390a15050565b610de4611005565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b610e0e611005565b610e18600061139c565b565b610e22611005565b600b55565b610e2f611005565b601454610100900460ff1615610e875760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c656400000000000000000060448201526064016109d4565b6014805461ff00191661010017905542601155565b610ea4611005565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000610bd733848461105f565b610edb611005565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b610f05611005565b6014805460ff19168215159081179091556040519081527f0d537fcb73bb9654441eb9bd03c28d4b833e5a2da1f53bf422424cb01bc80fc79060200160405180910390a150565b610f54611005565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b610f87611005565b6001600160a01b038116610fec5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109d4565b610ff58161139c565b50565b611000611005565b600a55565b6000546001600160a01b03163314610e185760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109d4565b601454600090610100900460ff166110cc576001600160a01b03841660009081526005602052604090205460ff166110cc5760405162461bcd60e51b815260206004820152601060248201526f151c98591a5b99c8191a5cd8589b195960821b60448201526064016109d4565b6001600160a01b03841660009081526006602052604090205460ff1615801561110e57506001600160a01b03831660009081526006602052604090205460ff16155b6111725760405162461bcd60e51b815260206004820152602f60248201527f45524332303a207472616e736665722066726f6d2f746f2074686520626c616360448201526e6b6c6973746564206164647265737360881b60648201526084016109d4565b6010546001600160a01b038481169116148015906111a957506001600160a01b03831660009081526007602052604090205460ff16155b1561121857600e546001600160a01b0384166000908152600260205260409020546111d49084611c80565b11156112185760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109d4565b60145462010000900460ff161561123b576112348484846113ec565b9050610bd7565b611243611505565b156112505761125061155c565b6001600160a01b0384166000908152600260205260409020548211156112af5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b60448201526064016109d4565b6001600160a01b0384166000908152600260205260409020546112d3908390611c98565b6001600160a01b0385166000908152600260205260408120919091556112f9858561163a565b611303578261130e565b61130e8585856116d9565b6001600160a01b038516600090815260026020526040902054909150611335908290611c80565b6001600160a01b0380861660008181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113899085815260200190565b60405180910390a3506001949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03831660009081526002602052604081205482111561144b5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b60448201526064016109d4565b6001600160a01b03841660009081526002602052604090205461146f908390611c98565b6001600160a01b03808616600090815260026020526040808220939093559085168152205461149f908390611c80565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114f39086815260200190565b60405180910390a35060019392505050565b6010546000906001600160a01b0316331480159061152c575060145462010000900460ff16155b801561153a575060145460ff165b801561155757506013543060009081526002602052604090205410155b905090565b6014805462ff000019166201000017905530600090815260026020526040902054801561158c5761158c8161181f565b600d5447906000906064906115a19084611caf565b6115ab9190611cce565b6008546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156115e6573d6000803e3d6000fd5b506009546001600160a01b03166108fc6116008385611c98565b6040518115909202916000818181858888f19350505050158015611628573d6000803e3d6000fd5b50506014805462ff0000191690555050565b601254600090610100900460ff16611685576010546001600160a01b0384811691161480159061167857506010546001600160a01b03838116911614155b156116855750600061097c565b6001600160a01b03831660009081526004602052604090205460ff16806116c457506001600160a01b03821660009081526004602052604090205460ff165b156116d15750600061097c565b50600161097c565b6000806011546102586116ec9190611c80565b421115611705576116fe606484611cce565b9050611798565b6011546117149061012c611c80565b421115611755576010546001600160a01b039081169085160361174857606461173e846014611caf565b6116fe9190611cce565b606461173e84600a611caf565b6010546001600160a01b039081169085160361177b576064600b548461173e9190611caf565b6064600a548461178b9190611caf565b6117959190611cce565b90505b306000908152600260205260409020546117b3908290611c80565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118049085815260200190565b60405180910390a36118168184611c98565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061185457611854611cf0565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156118ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d19190611d06565b816001815181106118e4576118e4611cf0565b6001600160a01b039283166020918202929092010152600f5461190a9130911684611979565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611943908590600090869030904290600401611d23565b600060405180830381600087803b15801561195d57600080fd5b505af1158015611971573d6000803e3d6000fd5b505050505050565b6001600160a01b0383166119db5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109d4565b6001600160a01b038216611a3c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109d4565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600060208083528351808285015260005b81811015611aca57858101830151858201604001528201611aae565b81811115611adc576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610ff557600080fd5b60008060408385031215611b1a57600080fd5b8235611b2581611af2565b946020939093013593505050565b600060208284031215611b4557600080fd5b8135610bd781611af2565b60008060408385031215611b6357600080fd5b50508035926020909101359150565b600080600060608486031215611b8757600080fd5b8335611b9281611af2565b92506020840135611ba281611af2565b929592945050506040919091013590565b80358015158114611bc357600080fd5b919050565b600060208284031215611bda57600080fd5b610bd782611bb3565b60008060408385031215611bf657600080fd5b8235611c0181611af2565b9150611c0f60208401611bb3565b90509250929050565b600060208284031215611c2a57600080fd5b5035919050565b60008060408385031215611c4457600080fd5b8235611c4f81611af2565b91506020830135611c5f81611af2565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60008219821115611c9357611c93611c6a565b500190565b600082821015611caa57611caa611c6a565b500390565b6000816000190483118215151615611cc957611cc9611c6a565b500290565b600082611ceb57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611d1857600080fd5b8151610bd781611af2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d735784516001600160a01b031683529383019391830191600101611d4e565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220af8758db3f6a2f97da906e8f29ede20570d67be79c6bf32005b3f119a0dcf14c64736f6c634300080e0033

Deployed Bytecode Sourcemap

12516:11806:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13218:32;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;13218:32:0;;;;;;;;13588:57;;;;;;;;;;;;;;;;15210:83;;;;;;;;;;-1:-1:-1;15280:5:0;;;;;;;;;;;;-1:-1:-1;;;15280:5:0;;;;15210:83;;;;;;;:::i;15794:241::-;;;;;;;;;;-1:-1:-1;15794:241:0;;;;;:::i;:::-;;:::i;:::-;;;1419:14:1;;1412:22;1394:41;;1382:2;1367:18;15794:241:0;1254:187:1;13510:25:0;;;;;;;;;;-1:-1:-1;13510:25:0;;;;;;;;13544:35;;;;;;;;;;-1:-1:-1;13544:35:0;;;;;;;;;;;13021:63;;;;;;;;;;-1:-1:-1;13021:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15100:102;;;;;;;;;;-1:-1:-1;15182:12:0;;15100:102;;22559:208;;;;;;;;;;;;;:::i;:::-;;22986:349;;;;;;;;;;-1:-1:-1;22986:349:0;;;;;:::i;:::-;;:::i;16750:551::-;;;;;;;;;;-1:-1:-1;16750:551:0;;;;;:::i;:::-;;:::i;22775:110::-;;;;;;;;;;-1:-1:-1;22775:110:0;;;;;:::i;:::-;;:::i;15396:83::-;;;;;;;;;;-1:-1:-1;15396:83:0;;12675:1;2904:36:1;;2892:2;2877:18;15396:83:0;2762:184:1;13475:26:0;;;;;;;;;;;;;;;;22396:155;;;;;;;;;;-1:-1:-1;22396:155:0;;;;;:::i;:::-;;:::i;13178:31::-;;;;;;;;;;;;;;;;12868:43;;;;;;;;;;-1:-1:-1;12868:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;23343:270;;;;;;;;;;-1:-1:-1;23343:270:0;;;;;:::i;:::-;;:::i;23729:408::-;;;;;;;;;;;;;:::i;16431:122::-;;;;;;;;;;-1:-1:-1;16431:122:0;;;;;:::i;:::-;;:::i;21507:167::-;;;;;;;;;;-1:-1:-1;21507:167:0;;;;;:::i;:::-;;:::i;22893:85::-;;;;;;;;;;-1:-1:-1;22893:85:0;;;;;:::i;:::-;;:::i;15487:119::-;;;;;;;;;;-1:-1:-1;15487:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;15580:18:0;15553:7;15580:18;;;:9;:18;;;;;;;15487:119;11639:103;;;;;;;;;;;;;:::i;13093:30::-;;;;;;;;;;-1:-1:-1;13093:30:0;;;;-1:-1:-1;;;;;13093:30:0;;;;;;-1:-1:-1;;;;;3435:32:1;;;3417:51;;3405:2;3390:18;13093:30:0;3271:203:1;22081:113:0;;;;;;;;;;-1:-1:-1;22081:113:0;;;;;:::i;:::-;;:::i;22202:186::-;;;;;;;;;;;;;:::i;13717:34::-;;;;;;;;;;-1:-1:-1;13717:34:0;;;;;;;;;;;10998:87;;;;;;;;;;-1:-1:-1;11044:7:0;11071:6;-1:-1:-1;;;;;11071:6:0;10998:87;;13130:24;;;;;;;;;;-1:-1:-1;13130:24:0;;;;-1:-1:-1;;;;;13130:24:0;;;23621:100;;;;;;;;;;-1:-1:-1;23621:100:0;;;;;:::i;:::-;;:::i;15301:87::-;;;;;;;;;;-1:-1:-1;15373:7:0;;;;;;;;;;;;-1:-1:-1;;;15373:7:0;;;;15301:87;;13447:19;;;;;;;;;;-1:-1:-1;13447:19:0;;;;-1:-1:-1;;;;;13447:19:0;;;16561:181;;;;;;;;;;-1:-1:-1;16561:181:0;;;;;:::i;:::-;;:::i;21845:111::-;;;;;;;;;;-1:-1:-1;21845:111:0;;;;;:::i;:::-;;:::i;20357:113::-;;;;;;;;;;-1:-1:-1;20357:113:0;;;;;:::i;:::-;-1:-1:-1;;;;;20442:20:0;20418:4;20442:20;;;:11;:20;;;;;;;;;20357:113;13259:33;;;;;;;;;;;;;;;;21682:155;;;;;;;;;;-1:-1:-1;21682:155:0;;;;;:::i;:::-;;:::i;24145:174::-;;;;;;;;;;-1:-1:-1;24145:174:0;;;;;:::i;:::-;;:::i;15614:172::-;;;;;;;;;;-1:-1:-1;15614:172:0;;;;;:::i;:::-;-1:-1:-1;;;;;15750:19:0;;;15723:7;15750:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;15614:172;13299:39;;;;;;;;;;;;;;;;11897:201;;;;;;;;;;-1:-1:-1;11897:201:0;;;;;:::i;:::-;;:::i;13408:32::-;;;;;;;;;;-1:-1:-1;13408:32:0;;;;-1:-1:-1;;;;;13408:32:0;;;13347:52;;;;;;;;;;;;;;;;21964:109;;;;;;;;;;-1:-1:-1;21964:109:0;;;;;:::i;:::-;;:::i;13672:38::-;;;;;;;;;;-1:-1:-1;13672:38:0;;;;;;;;12969:45;;;;;;;;;;-1:-1:-1;12969:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12918:44;;;;;;;;;;-1:-1:-1;12918:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15794:241;15923:10;15894:4;15911:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;15911:32:0;;;;;;;;;;:41;;;15968:37;15894:4;;15911:32;;15968:37;;;;15946:6;160:25:1;;148:2;133:18;;14:177;15968:37:0;;;;;;;;-1:-1:-1;16023:4:0;15794:241;;;;;:::o;22559:208::-;10884:13;:11;:13::i;:::-;22628:21:::1;22668:11:::0;22660:49:::1;;;::::0;-1:-1:-1;;;22660:49:0;;4493:2:1;22660:49:0::1;::::0;::::1;4475:21:1::0;4532:2;4512:18;;;4505:30;4571:27;4551:18;;;4544:55;4616:18;;22660:49:0::1;;;;;;;;;22722:37;::::0;22730:10:::1;::::0;22722:37;::::1;;;::::0;22751:7;;22722:37:::1;::::0;;;22751:7;22730:10;22722:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22599:168;22559:208::o:0;22986:349::-;10884:13;:11;:13::i;:::-;23107:11:::1;::::0;:23:::1;::::0;23121:9:::1;23107:23;:::i;:::-;23087:15;:44;;23065:121;;;::::0;-1:-1:-1;;;23065:121:0;;5112:2:1;23065:121:0::1;::::0;::::1;5094:21:1::0;5151:2;5131:18;;;5124:30;5190:29;5170:18;;;5163:57;5237:18;;23065:121:0::1;4910:351:1::0;23065:121:0::1;23215:2;23207:4;:10;;:25;;;;;23230:2;23221:5;:11;;23207:25;23199:66;;;::::0;-1:-1:-1;;;23199:66:0;;5468:2:1;23199:66:0::1;::::0;::::1;5450:21:1::0;5507:2;5487:18;;;5480:30;5546;5526:18;;;5519:58;5594:18;;23199:66:0::1;5266:352:1::0;23199:66:0::1;23278:11;:18:::0;;;;23307:12:::1;:20:::0;22986:349::o;16750:551::-;-1:-1:-1;;;;;16905:19:0;;16884:4;16905:19;;;:11;:19;;;;;;;;16925:10;16905:31;;;;;;;;-1:-1:-1;;16905:52:0;16901:333;;-1:-1:-1;;;;;17000:19:0;;;;;;:11;:19;;;;;;;;17020:10;17000:31;;;;;;;;:41;-1:-1:-1;17000:41:0;16974:125;;;;-1:-1:-1;;;16974:125:0;;5825:2:1;16974:125:0;;;5807:21:1;5864:2;5844:18;;;5837:30;-1:-1:-1;;;5883:18:1;;;5876:52;5945:18;;16974:125:0;5623:346:1;16974:125:0;-1:-1:-1;;;;;17165:19:0;;;;;;:11;:19;;;;;;;;17185:10;17165:31;;;;;;;;:57;;17216:6;;17165:57;:::i;:::-;-1:-1:-1;;;;;17114:19:0;;;;;;:11;:19;;;;;;;;17134:10;17114:31;;;;;;;:108;16901:333;17253:40;17267:6;17275:9;17286:6;17253:13;:40::i;:::-;17246:47;;16750:551;;;;;;:::o;22775:110::-;10884:13;:11;:13::i;:::-;22852:15:::1;:25:::0;;;::::1;;;;-1:-1:-1::0;;22852:25:0;;::::1;::::0;;;::::1;::::0;;22775:110::o;22396:155::-;10884:13;:11;:13::i;:::-;-1:-1:-1;;;;;22512:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:31;;-1:-1:-1;;22512:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22396:155::o;23343:270::-;10884:13;:11;:13::i;:::-;23477:17:::1;23490:4:::0;23477:10;:17:::1;:::i;:::-;23499:3;23476:26;23468:61;;;::::0;-1:-1:-1;;;23468:61:0;;6306:2:1;23468:61:0::1;::::0;::::1;6288:21:1::0;6345:2;6325:18;;;6318:30;-1:-1:-1;;;6364:18:1;;;6357:52;6426:18;;23468:61:0::1;6104:346:1::0;23468:61:0::1;23542:13;:20:::0;23573:19:::1;:32:::0;23343:270::o;23729:408::-;10884:13;:11;:13::i;:::-;23785::::1;::::0;::::1;;23784:14;23776:59;;;::::0;-1:-1:-1;;;23776:59:0;;6657:2:1;23776:59:0::1;::::0;::::1;6639:21:1::0;;;6676:18;;;6669:30;6735:34;6715:18;;;6708:62;6787:18;;23776:59:0::1;6455:356:1::0;23776:59:0::1;23861:2;23846:12;:17:::0;;;23888:4:::1;::::0;;-1:-1:-1;;;;;23888:4:0;;::::1;23874:19;::::0;;;:13:::1;:19;::::0;;;;;:26;;23896:4:::1;-1:-1:-1::0;;23874:26:0;;::::1;::::0;::::1;::::0;;;23933:4:::1;23911:28:::0;;;;;;:35;;;::::1;::::0;::::1;::::0;;23983:2:::1;23969:11;:16:::0;24011:2:::1;23996:17:::0;;;24038:4;;;;::::1;24024:19:::0;;;;;:27;;;::::1;::::0;;24062:28;;;:36;;;::::1;::::0;;;24109:13:::1;:20:::0;;;;::::1;;::::0;;23729:408::o;16431:122::-;16486:4;16510:35;16518:7;-1:-1:-1;;16510:7:0;:35::i;21507:167::-;10884:13;:11;:13::i;:::-;-1:-1:-1;;;;;21590:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;;:28;;-1:-1:-1;;21590:28:0::1;::::0;::::1;;::::0;;::::1;::::0;;;21636:30;;6984:51:1;;;7051:18;;;7044:50;21636:30:0::1;::::0;6957:18:1;21636:30:0::1;;;;;;;21507:167:::0;;:::o;22893:85::-;10884:13;:11;:13::i;:::-;22958:4:::1;:12:::0;;-1:-1:-1;;;;;;22958:12:0::1;-1:-1:-1::0;;;;;22958:12:0;;;::::1;::::0;;;::::1;::::0;;22893:85::o;11639:103::-;10884:13;:11;:13::i;:::-;11704:30:::1;11731:1;11704:18;:30::i;:::-;11639:103::o:0;22081:113::-;10884:13;:11;:13::i;:::-;22158:12:::1;:28:::0;22081:113::o;22202:186::-;10884:13;:11;:13::i;:::-;22266:14:::1;::::0;::::1;::::0;::::1;;;22265:15;22257:51;;;::::0;-1:-1:-1;;;22257:51:0;;7307:2:1;22257:51:0::1;::::0;::::1;7289:21:1::0;7346:2;7326:18;;;7319:30;7385:25;7365:18;;;7358:53;7428:18;;22257:51:0::1;7105:347:1::0;22257:51:0::1;22319:14;:21:::0;;-1:-1:-1;;22319:21:0::1;;;::::0;;22365:15:::1;22351:11;:29:::0;22202:186::o;23621:100::-;10884:13;:11;:13::i;:::-;23694:9:::1;:19:::0;;-1:-1:-1;;;;;;23694:19:0::1;-1:-1:-1::0;;;;;23694:19:0;;;::::1;::::0;;;::::1;::::0;;23621:100::o;16561:181::-;16666:4;16690:44;16704:10;16716:9;16727:6;16690:13;:44::i;21845:111::-;10884:13;:11;:13::i;:::-;21923:15:::1;:25:::0;;-1:-1:-1;;;;;;21923:25:0::1;-1:-1:-1::0;;;;;21923:25:0;;;::::1;::::0;;;::::1;::::0;;21845:111::o;21682:155::-;10884:13;:11;:13::i;:::-;21754:19:::1;:30:::0;;-1:-1:-1;;21754:30:0::1;::::0;::::1;;::::0;;::::1;::::0;;;21802:27:::1;::::0;1394:41:1;;;21802:27:0::1;::::0;1382:2:1;1367:18;21802:27:0::1;;;;;;;21682:155:::0;:::o;24145:174::-;10884:13;:11;:13::i;:::-;-1:-1:-1;;;;;24261:40:0;;;::::1;;::::0;;;:31:::1;:40;::::0;;;;:50;;-1:-1:-1;;24261:50:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24145:174::o;11897:201::-;10884:13;:11;:13::i;:::-;-1:-1:-1;;;;;11986:22:0;::::1;11978:73;;;::::0;-1:-1:-1;;;11978:73:0;;7659:2:1;11978:73:0::1;::::0;::::1;7641:21:1::0;7698:2;7678:18;;;7671:30;7737:34;7717:18;;;7710:62;-1:-1:-1;;;7788:18:1;;;7781:36;7834:19;;11978:73:0::1;7457:402:1::0;11978:73:0::1;12062:28;12081:8;12062:18;:28::i;:::-;11897:201:::0;:::o;21964:109::-;10884:13;:11;:13::i;:::-;22039:11:::1;:26:::0;21964:109::o;11163:132::-;11044:7;11071:6;-1:-1:-1;;;;;11071:6:0;9629:10;11227:23;11219:68;;;;-1:-1:-1;;;11219:68:0;;8066:2:1;11219:68:0;;;8048:21:1;;;8085:18;;;8078:30;8144:34;8124:18;;;8117:62;8196:18;;11219:68:0;7864:356:1;17309:1228:0;17457:14;;17435:4;;17457:14;;;;;17452:70;;-1:-1:-1;;;;;17481:20:0;;;;;;:12;:20;;;;;;;;17473:49;;;;-1:-1:-1;;;17473:49:0;;8427:2:1;17473:49:0;;;8409:21:1;8466:2;8446:18;;;8439:30;-1:-1:-1;;;8485:18:1;;;8478:46;8541:18;;17473:49:0;8225:340:1;17473:49:0;-1:-1:-1;;;;;17556:21:0;;;;;;:13;:21;;;;;;;;17555:22;:51;;;;-1:-1:-1;;;;;;17582:24:0;;;;;;:13;:24;;;;;;;;17581:25;17555:51;17533:148;;;;-1:-1:-1;;;17533:148:0;;8772:2:1;17533:148:0;;;8754:21:1;8811:2;8791:18;;;8784:30;8850:34;8830:18;;;8823:62;-1:-1:-1;;;8901:18:1;;;8894:45;8956:19;;17533:148:0;8570:411:1;17533:148:0;17698:4;;-1:-1:-1;;;;;17698:17:0;;;:4;;:17;;;;:64;;-1:-1:-1;;;;;;17720:42:0;;;;;;:31;:42;;;;;;;;17719:43;17698:64;17694:220;;;17838:9;;-1:-1:-1;;;;;15580:18:0;;15553:7;15580:18;;;:9;:18;;;;;;17805:29;;:6;:29;:::i;:::-;:42;;17779:123;;;;-1:-1:-1;;;17779:123:0;;9188:2:1;17779:123:0;;;9170:21:1;9227:2;9207:18;;;9200:30;-1:-1:-1;;;9246:18:1;;;9239:49;9305:18;;17779:123:0;8986:343:1;17779:123:0;17930:14;;;;;;;17926:95;;;17968:41;17983:6;17991:9;18002:6;17968:14;:41::i;:::-;17961:48;;;;17926:95;18037:22;:20;:22::i;:::-;18033:71;;;18076:16;:14;:16::i;:::-;-1:-1:-1;;;;;18124:17:0;;;;;;:9;:17;;;;;;:27;-1:-1:-1;18124:27:0;18116:60;;;;-1:-1:-1;;;18116:60:0;;9536:2:1;18116:60:0;;;9518:21:1;9575:2;9555:18;;;9548:30;-1:-1:-1;;;9594:18:1;;;9587:50;9654:18;;18116:60:0;9334:344:1;18116:60:0;-1:-1:-1;;;;;18207:17:0;;;;;;:9;:17;;;;;;:26;;18227:6;;18207:26;:::i;:::-;-1:-1:-1;;;;;18187:17:0;;;;;;:9;:17;;;;;:46;;;;18271:32;18197:6;18293:9;18271:13;:32::i;:::-;:104;;18369:6;18271:104;;;18319:34;18327:6;18335:9;18346:6;18319:7;:34::i;:::-;-1:-1:-1;;;;;18409:20:0;;;;;;:9;:20;;;;;;18246:129;;-1:-1:-1;18409:37:0;;18246:129;;18409:37;:::i;:::-;-1:-1:-1;;;;;18386:20:0;;;;;;;:9;:20;;;;;;;:60;;;;18464:43;;;;;;;;;;18492:14;160:25:1;;148:2;133:18;;14:177;18464:43:0;;;;;;;;-1:-1:-1;18525:4:0;;17309:1228;-1:-1:-1;;;;17309:1228:0:o;12258:191::-;12332:16;12351:6;;-1:-1:-1;;;;;12368:17:0;;;-1:-1:-1;;;;;;12368:17:0;;;;;;12401:40;;12351:6;;;;;;;12401:40;;12332:16;12401:40;12321:128;12258:191;:::o;19338:407::-;-1:-1:-1;;;;;19490:17:0;;19465:4;19490:17;;;:9;:17;;;;;;:27;-1:-1:-1;19490:27:0;19482:60;;;;-1:-1:-1;;;19482:60:0;;9536:2:1;19482:60:0;;;9518:21:1;9575:2;9555:18;;;9548:30;-1:-1:-1;;;9594:18:1;;;9587:50;9654:18;;19482:60:0;9334:344:1;19482:60:0;-1:-1:-1;;;;;19573:17:0;;;;;;:9;:17;;;;;;:26;;19593:6;;19573:26;:::i;:::-;-1:-1:-1;;;;;19553:17:0;;;;;;;:9;:17;;;;;;:46;;;;19635:20;;;;;;;:29;;19658:6;;19635:29;:::i;:::-;-1:-1:-1;;;;;19612:20:0;;;;;;;:9;:20;;;;;;;:52;;;;19680:35;;;;;;;;;;19708:6;160:25:1;;148:2;133:18;;14:177;19680:35:0;;;;;;;;-1:-1:-1;19733:4:0;19338:407;;;;;:::o;20116:233::-;20210:4;;20171;;-1:-1:-1;;;;;20210:4:0;20196:10;:18;;;;:50;;-1:-1:-1;20232:14:0;;;;;;;20231:15;20196:50;:86;;;;-1:-1:-1;20263:19:0;;;;20196:86;:144;;;;-1:-1:-1;20327:13:0;;20317:4;20299:24;;;;:9;:24;;;;;;:41;;20196:144;20188:153;;20116:233;:::o;20478:455::-;13815:14;:21;;-1:-1:-1;;13815:21:0;;;;;20582:4:::1;13815:21:::0;20564:24;;;13815:14;20564:24:::1;::::0;;;;;20605;;20601:68:::1;;20631:38;20648:20;20631:16;:38::i;:::-;20774:19;::::0;20703:21:::1;::::0;20682:18:::1;::::0;20797:3:::1;::::0;20761:32:::1;::::0;20703:21;20761:32:::1;:::i;:::-;20760:40;;;;:::i;:::-;20821:15;::::0;20813:47:::1;::::0;20737:63;;-1:-1:-1;;;;;;20821:15:0::1;::::0;20813:47;::::1;;;::::0;20737:63;;20821:15:::1;20813:47:::0;20821:15;20813:47;20737:63;20821:15;20813:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;20879:9:0::1;::::0;-1:-1:-1;;;;;20879:9:0::1;20871:54;20899:25;20912:12:::0;20899:10;:25:::1;:::i;:::-;20871:54;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13859:14:0;:22;;-1:-1:-1;;13859:22:0;;;-1:-1:-1;;20478:455:0:o;19753:355::-;19874:15;;19852:4;;19874:15;;;;;19869:95;;19920:4;;-1:-1:-1;;;;;19910:14:0;;;19920:4;;19910:14;;;;:28;;-1:-1:-1;19934:4:0;;-1:-1:-1;;;;;19928:10:0;;;19934:4;;19928:10;;19910:28;19906:46;;;-1:-1:-1;19947:5:0;19940:12;;19906:46;-1:-1:-1;;;;;19978:19:0;;;;;;:11;:19;;;;;;;;;:38;;-1:-1:-1;;;;;;20001:15:0;;;;;;:11;:15;;;;;;;;19978:38;19974:127;;;-1:-1:-1;20040:5:0;20033:12;;19974:127;-1:-1:-1;20085:4:0;20078:11;;18545:785;18665:7;18685:16;18735:11;;18749:10;18735:24;;;;:::i;:::-;18716:15;:44;18712:440;;;18788:12;18797:3;18788:6;:12;:::i;:::-;18777:23;;18712:440;;;18841:11;;:23;;18855:9;18841:23;:::i;:::-;18822:15;:43;18818:334;;;18899:4;;-1:-1:-1;;;;;18899:4:0;;;18886:17;;;;18882:103;;18932:3;18917:11;:6;18926:2;18917:11;:::i;:::-;18916:19;;;;:::i;18882:103::-;18982:3;18967:11;:6;18976:2;18967:11;:::i;18818:334::-;19035:4;;-1:-1:-1;;;;;19035:4:0;;;19022:17;;;;19018:122;;19078:3;19062:12;;19053:6;:21;;;;:::i;19018:122::-;19137:3;19122:11;;19113:6;:20;;;;:::i;:::-;19112:28;;;;:::i;:::-;19101:39;;19018:122;19209:4;19191:24;;;;:9;:24;;;;;;:35;;19218:8;;19191:35;:::i;:::-;19182:4;19164:24;;;;:9;:24;;;;;;;:62;;;;19242:41;;-1:-1:-1;;;;;19242:41:0;;;;;;;19274:8;160:25:1;;148:2;133:18;;14:177;19242:41:0;;;;;;;;19304:17;19313:8;19304:6;:17;:::i;:::-;19296:26;18545:785;-1:-1:-1;;;;;18545:785:0:o;20941:558::-;21091:16;;;21105:1;21091:16;;;;;;;;21067:21;;21091:16;;;;;;;;;;-1:-1:-1;21091:16:0;21067:40;;21136:4;21118;21123:1;21118:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21118:23:0;;;:7;;;;;;;;;;:23;;;;21162:6;;:13;;;-1:-1:-1;;;21162:13:0;;;;:6;;;;;:11;;:13;;;;;21118:7;;21162:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21152:4;21157:1;21152:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21152:23:0;;;:7;;;;;;;;;:23;21218:6;;21186:53;;21203:4;;21218:6;21227:11;21186:8;:53::i;:::-;21276:6;;:215;;-1:-1:-1;;;21276:215:0;;-1:-1:-1;;;;;21276:6:0;;;;:57;;:215;;21348:11;;21276:6;;21418:4;;21445;;21465:15;;21276:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20996:503;20941:558;:::o;16043:380::-;-1:-1:-1;;;;;16179:19:0;;16171:68;;;;-1:-1:-1;;;16171:68:0;;11785:2:1;16171:68:0;;;11767:21:1;11824:2;11804:18;;;11797:30;11863:34;11843:18;;;11836:62;-1:-1:-1;;;11914:18:1;;;11907:34;11958:19;;16171:68:0;11583:400:1;16171:68:0;-1:-1:-1;;;;;16258:21:0;;16250:68;;;;-1:-1:-1;;;16250:68:0;;12190:2:1;16250:68:0;;;12172:21:1;12229:2;12209:18;;;12202:30;12268:34;12248:18;;;12241:62;-1:-1:-1;;;12319:18:1;;;12312:32;12361:19;;16250:68:0;11988:398:1;16250:68:0;-1:-1:-1;;;;;16331:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16383:32;;160:25:1;;;16383:32:0;;133:18:1;16383:32:0;;;;;;;16043:380;;;:::o;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:315;1002:6;1010;1063:2;1051:9;1042:7;1038:23;1034:32;1031:52;;;1079:1;1076;1069:12;1031:52;1118:9;1105:23;1137:31;1162:5;1137:31;:::i;:::-;1187:5;1239:2;1224:18;;;;1211:32;;-1:-1:-1;;;934:315:1:o;1446:247::-;1505:6;1558:2;1546:9;1537:7;1533:23;1529:32;1526:52;;;1574:1;1571;1564:12;1526:52;1613:9;1600:23;1632:31;1657:5;1632:31;:::i;1698:248::-;1766:6;1774;1827:2;1815:9;1806:7;1802:23;1798:32;1795:52;;;1843:1;1840;1833:12;1795:52;-1:-1:-1;;1866:23:1;;;1936:2;1921:18;;;1908:32;;-1:-1:-1;1698:248:1:o;1951:456::-;2028:6;2036;2044;2097:2;2085:9;2076:7;2072:23;2068:32;2065:52;;;2113:1;2110;2103:12;2065:52;2152:9;2139:23;2171:31;2196:5;2171:31;:::i;:::-;2221:5;-1:-1:-1;2278:2:1;2263:18;;2250:32;2291:33;2250:32;2291:33;:::i;:::-;1951:456;;2343:7;;-1:-1:-1;;;2397:2:1;2382:18;;;;2369:32;;1951:456::o;2412:160::-;2477:20;;2533:13;;2526:21;2516:32;;2506:60;;2562:1;2559;2552:12;2506:60;2412:160;;;:::o;2577:180::-;2633:6;2686:2;2674:9;2665:7;2661:23;2657:32;2654:52;;;2702:1;2699;2692:12;2654:52;2725:26;2741:9;2725:26;:::i;2951:315::-;3016:6;3024;3077:2;3065:9;3056:7;3052:23;3048:32;3045:52;;;3093:1;3090;3083:12;3045:52;3132:9;3119:23;3151:31;3176:5;3151:31;:::i;:::-;3201:5;-1:-1:-1;3225:35:1;3256:2;3241:18;;3225:35;:::i;:::-;3215:45;;2951:315;;;;;:::o;3479:180::-;3538:6;3591:2;3579:9;3570:7;3566:23;3562:32;3559:52;;;3607:1;3604;3597:12;3559:52;-1:-1:-1;3630:23:1;;3479:180;-1:-1:-1;3479:180:1:o;3664:388::-;3732:6;3740;3793:2;3781:9;3772:7;3768:23;3764:32;3761:52;;;3809:1;3806;3799:12;3761:52;3848:9;3835:23;3867:31;3892:5;3867:31;:::i;:::-;3917:5;-1:-1:-1;3974:2:1;3959:18;;3946:32;3987:33;3946:32;3987:33;:::i;:::-;4039:7;4029:17;;;3664:388;;;;;:::o;4645:127::-;4706:10;4701:3;4697:20;4694:1;4687:31;4737:4;4734:1;4727:15;4761:4;4758:1;4751:15;4777:128;4817:3;4848:1;4844:6;4841:1;4838:13;4835:39;;;4854:18;;:::i;:::-;-1:-1:-1;4890:9:1;;4777:128::o;5974:125::-;6014:4;6042:1;6039;6036:8;6033:34;;;6047:18;;:::i;:::-;-1:-1:-1;6084:9:1;;5974:125::o;9683:168::-;9723:7;9789:1;9785;9781:6;9777:14;9774:1;9771:21;9766:1;9759:9;9752:17;9748:45;9745:71;;;9796:18;;:::i;:::-;-1:-1:-1;9836:9:1;;9683:168::o;9856:217::-;9896:1;9922;9912:132;;9966:10;9961:3;9957:20;9954:1;9947:31;10001:4;9998:1;9991:15;10029:4;10026:1;10019:15;9912:132;-1:-1:-1;10058:9:1;;9856:217::o;10210:127::-;10271:10;10266:3;10262:20;10259:1;10252:31;10302:4;10299:1;10292:15;10326:4;10323:1;10316:15;10342:251;10412:6;10465:2;10453:9;10444:7;10440:23;10436:32;10433:52;;;10481:1;10478;10471:12;10433:52;10513:9;10507:16;10532:31;10557:5;10532:31;:::i;10598:980::-;10860:4;10908:3;10897:9;10893:19;10939:6;10928:9;10921:25;10965:2;11003:6;10998:2;10987:9;10983:18;10976:34;11046:3;11041:2;11030:9;11026:18;11019:31;11070:6;11105;11099:13;11136:6;11128;11121:22;11174:3;11163:9;11159:19;11152:26;;11213:2;11205:6;11201:15;11187:29;;11234:1;11244:195;11258:6;11255:1;11252:13;11244:195;;;11323:13;;-1:-1:-1;;;;;11319:39:1;11307:52;;11414:15;;;;11379:12;;;;11355:1;11273:9;11244:195;;;-1:-1:-1;;;;;;;11495:32:1;;;;11490:2;11475:18;;11468:60;-1:-1:-1;;;11559:3:1;11544:19;11537:35;11456:3;10598:980;-1:-1:-1;;;10598:980:1:o

Swarm Source

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