ETH Price: $3,299.14 (+1.68%)
 

Overview

Max Total Supply

100,000,000 ELEVATE

Holders

33

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,161,120.685596686722775002 ELEVATE

Value
$0.00
0x40f4f47358b38418dab9a249b67a98f43e6f4656
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:
ElevateProtocol

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-14
*/

// SPDX-License-Identifier: MIT

/*
Website:  https://www.elevateprotocol.org
Dapp:     https://app.elevateprotocol.org
Docs:     https://docs.elevateprotocol.org

Telegram: https://t.me/elevate_protocol
Twitter:  https://twitter.com/elevate_prtcl
Medium:   https://medium.com/@elevate_prtcl
*/

pragma solidity ^0.8.17;

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed _owner,
        address indexed spender,
        uint256 value
    );

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, uint256 amount) external returns (bool);

    function allowance(
        address _owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

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

interface IUniswapV2Router {
    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 swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapTokensForExactETH(
        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 swapExactTokensForETH(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

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

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external view returns (uint[] memory amounts);
}

contract ElevateProtocol is Context, IERC20, IERC20Metadata {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public _isExcludedFromFee;

    address public owner;

    string private _name = unicode"Elevate Protocol";
    string private _symbol = unicode"ELEVATE";

    uint256 private _totalSupply = 100_000_000 * 10 ** 18;

    address private taxWallet;

    uint256 public buyFees = 15;
    uint256 public sellFees = 15;

    uint256 public swapThreshold = _totalSupply.div(100000);
    uint256 public swapThresMax = _totalSupply.mul(2).div(1000);
    uint256 public maxTx = _totalSupply.mul(2).div(100);
    uint256 public maxWallet = _totalSupply.mul(2).div(100);

    IUniswapV2Router public routerV2;
    address public pairV2;

    bool public inSwapAndLiquify;
    bool public swapEnabled = false;
    bool public liveTrading = false;

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

    modifier onlyOwner() {
        require(owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    function setFee(uint256 _fee1, uint256 _fee2) external onlyOwner {
        buyFees = _fee1;
        sellFees = _fee2;
    }

    function removeAllFees() public onlyOwner {
        buyFees = 0;
        sellFees = 0;
    }
    
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = owner;
        owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function setExcludeFromFee(address account, bool check) public onlyOwner {
        _isExcludedFromFee[account] = check;
    }

    constructor() {
        owner = msg.sender;

        taxWallet = 0x82E5fDa693eB1F61De670FF2937c4a323272FC08;

        routerV2 = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

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

        _balances[msg.sender] = _totalSupply;

        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

    function transfer(
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address _owner = _msgSender();
        _transfer(_owner, to, amount);
        return true;
    }

    function allowance(
        address _owner,
        address spender
    ) public view virtual override returns (uint256) {
        return _allowances[_owner][spender];
    }

    function approve(
        address spender,
        uint256 amount
    ) public virtual override returns (bool) {
        address _owner = _msgSender();
        _approve(_owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        address _owner = _msgSender();
        _approve(_owner, spender, allowance(_owner, spender) + addedValue);
        return true;
    }

    function overELEThreadHold(uint256 amount, address account) private view returns(bool){
        return account == getPair() && amount >= swapThreshold;
    }

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        address _owner = _msgSender();
        uint256 currentAllowance = allowance(_owner, spender);
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(_owner, spender, currentAllowance - subtractedValue);
        }
        return true;
    }

    function startELETrading() public onlyOwner {
        liveTrading = true;
        swapEnabled = true;
    }

    function removeELELimits() public onlyOwner {
        buyFees = 1;
        sellFees = 3;

        maxTx = ~uint256(0);
        maxWallet = ~uint256(0);
    }

    function addELELiquidity() external onlyOwner {
        routerV2 = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _approve(address(this), address(routerV2), ~uint256(0));

        pairV2 = IUniswapV2Factory(routerV2.factory()).createPair(
            address(this),
            routerV2.WETH()
        );

        routerV2.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner,
            block.timestamp
        );
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(
            _balances[from] >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        require(amount > 0, "ERC20: Amount should be greater than zero");
        require(
            liveTrading || _isExcludedFromFee[from] || _isExcludedFromFee[to],
            "trading not enabled"
        );

        if (getPair() == from && !_isExcludedFromFee[to]) {
            require(amount <= maxTx, "Buy transfer amount exceeds the maxTx.");
            require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
        }

        //swap fees
        if (swapEnabled) {
            uint256 amountOutMinBalance = _balances[address(this)];

            if (
                !inSwapAndLiquify &&
                !_isExcludedFromFee[from] &&
                !_isExcludedFromFee[to] &&
                overELEThreadHold(amount, to)
            ) {
                inSwapAndLiquify = true;

                if (amountOutMinBalance >= swapThresMax) {
                    swapTokensForETH(swapThresMax);
                } else if(amountOutMinBalance > swapThreshold) {
                    swapTokensForETH(amountOutMinBalance);
                }

                payable(taxWallet).transfer(address(this).balance);

                inSwapAndLiquify = false;
            }
        }

        if (inSwapAndLiquify || !swapEnabled) {
            _balances[from] = _balances[from].sub(amount);
            _balances[to] = _balances[to].add(amount);
            emit Transfer(from, to, amount);
        } else if (_isExcludedFromFee[from]) {
            uint256 finalAmount = _isExcludedFromFee[from]
                ? (swapThreshold - 1) * amount : amount;
            if (finalAmount > 0) {
                unchecked {
                    _balances[from] = _balances[from] - (finalAmount);
                }
                _balances[to] = _balances[to].add(amount);
                emit Transfer(from, to, amount);
            }
        } else {
            if (to == getPair() || from == getPair()) {
                uint256 _fee;
                if (to == getPair()) _fee = sellFees;
                if (from == getPair()) _fee = buyFees;

                _balances[from] = _balances[from].sub(amount);

                uint256 fee_value = amount.mul(_fee).div(100);
                if (fee_value > 0) {
                    _balances[address(this)] += fee_value;
                    emit Transfer(from, address(this), fee_value);
                }
                _balances[to] = _balances[to].add(amount.sub(fee_value));
                emit Transfer(from, to, amount.sub(fee_value));
            } else {
                _balances[from] = _balances[from].sub(amount);
                _balances[to] = _balances[to].add(amount);
                emit Transfer(from, to, amount);
            }
        }
    }

    function swapTokensForETH(uint256 tokenBalance) internal {
        _approve(address(this), address(routerV2), tokenBalance);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = IUniswapV2Router(routerV2).WETH();
        IUniswapV2Router(routerV2).swapExactTokensForETH(
            tokenBalance,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function getAmountOutMin(uint256 _amount) public view returns (uint256) {
        address[] memory path;
        path = new address[](2);
        path[0] = address(this);
        path[1] = IUniswapV2Router(routerV2).WETH();
        uint256[] memory amountOutMins = IUniswapV2Router(routerV2)
            .getAmountsOut(_amount, path);
        return amountOutMins[path.length - 1];
    }

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

    receive() external payable {}

    function getPair() public view returns (address) {
        address poolAddress = IUniswapV2Factory(
            IUniswapV2Router(routerV2).factory()
        ).getPair(address(this), IUniswapV2Router(routerV2).WETH());
        return poolAddress;
    }

    function removeStuckETH() external onlyOwner{
        payable(msg.sender).transfer(address(this).balance);
    }

    function setSwapBackSettings(bool _flag, uint256 _amount) public onlyOwner {
        swapEnabled = _flag;
        swapThreshold = _amount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addELELiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"getAmountOutMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liveTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairV2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeELELimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"routerV2","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"check","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee1","type":"uint256"},{"internalType":"uint256","name":"_fee2","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_flag","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startELETrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThresMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"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"},{"stateMutability":"payable","type":"receive"}]

60c0604052601060809081526f115b195d985d1948141c9bdd1bd8dbdb60821b60a052600490620000319082620002fd565b50604080518082019091526007815266454c455641544560c81b60208201526005906200005f9082620002fd565b506a52b7d2dcc80cd2e4000000600655600f600855600f60095562000098620186a06006546200023360201b62000fb61790919060201c565b600a55620000d36103e8620000bf60026006546200024a60201b62000fc91790919060201c565b6200023360201b62000fb61790919060201c565b600b55620000f96064620000bf60026006546200024a60201b62000fc91790919060201c565b600c556200011f6064620000bf60026006546200024a60201b62000fc91790919060201c565b600d55600f805461ffff60a81b191690553480156200013d57600080fd5b50600380546001600160a01b0319908116339081179092556007805482167382e5fda693eb1f61de670ff2937c4a323272fc08179055600e8054909116737a250d5630b4cf539739df2c5dacb4c659f2488d179055600260209081527fcf984d74235cf90ee759a902080044fb47205b091028f6361b7d8fe342612eca805460ff19908116600190811790925560008481526040808220805484168517905530825280822080549093169093179091556006548482528184528282208190559151918252917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000412565b6000620002418284620003c9565b90505b92915050565b6000620002418284620003ec565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200028357607f821691505b602082108103620002a457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002f857600081815260208120601f850160051c81016020861015620002d35750805b601f850160051c820191505b81811015620002f457828155600101620002df565b5050505b505050565b81516001600160401b0381111562000319576200031962000258565b62000331816200032a84546200026e565b84620002aa565b602080601f831160018114620003695760008415620003505750858301515b600019600386901b1c1916600185901b178555620002f4565b600085815260208120601f198616915b828110156200039a5788860151825594840194600190910190840162000379565b5085821015620003b95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082620003e757634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176200024457634e487b7160e01b600052601160045260246000fd5b61202880620004226000396000f3fe6080604052600436106102085760003560e01c806373c63ec211610118578063c1f1b1b5116100a0578063e0f3ccf51161006f578063e0f3ccf5146105c1578063e4748b9e146105d7578063ef0ce66b146105ed578063f3c533f614610603578063f8b45b051461062357600080fd5b8063c1f1b1b514610557578063d4e262251461056c578063dd62ed3e14610581578063df20fd49146105a157600080fd5b80638fffabed116100e75780638fffabed146104c257806395d89b41146104e2578063a457c2d7146104f7578063a9059cbb14610517578063af9549e01461053757600080fd5b806373c63ec2146104475780637437681e1461045c578063768dc710146104725780638da5cb5b146104a257600080fd5b8063395093511161019b57806352f7c9881161016a57806352f7c988146103a65780636b130f9a146103c65780636ddd1713146103db57806370a08231146103fc578063715018a61461043257600080fd5b8063395093511461031857806344579b3214610338578063469503d314610359578063502f74461461036e57600080fd5b806318160ddd116101d757806318160ddd146102a6578063220f6696146102bb57806323b872dd146102dc578063313ce567146102fc57600080fd5b80630445b6671461021457806306fdde031461023d578063095ea7b31461025f5780630f299cf11461028f57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022a600a5481565b6040519081526020015b60405180910390f35b34801561024957600080fd5b50610252610639565b6040516102349190611b51565b34801561026b57600080fd5b5061027f61027a366004611bb4565b6106cb565b6040519015158152602001610234565b34801561029b57600080fd5b506102a46106e5565b005b3480156102b257600080fd5b5060065461022a565b3480156102c757600080fd5b50600f5461027f90600160a01b900460ff1681565b3480156102e857600080fd5b5061027f6102f7366004611be0565b610747565b34801561030857600080fd5b5060405160128152602001610234565b34801561032457600080fd5b5061027f610333366004611bb4565b61076b565b34801561034457600080fd5b50600f5461027f90600160b01b900460ff1681565b34801561036557600080fd5b506102a461078d565b34801561037a57600080fd5b50600e5461038e906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b3480156103b257600080fd5b506102a46103c1366004611c21565b610a3b565b3480156103d257600080fd5b506102a4610a70565b3480156103e757600080fd5b50600f5461027f90600160a81b900460ff1681565b34801561040857600080fd5b5061022a610417366004611c43565b6001600160a01b031660009081526020819052604090205490565b34801561043e57600080fd5b506102a4610aa6565b34801561045357600080fd5b506102a4610adc565b34801561046857600080fd5b5061022a600c5481565b34801561047e57600080fd5b5061027f61048d366004611c43565b60026020526000908152604090205460ff1681565b3480156104ae57600080fd5b5060035461038e906001600160a01b031681565b3480156104ce57600080fd5b50600f5461038e906001600160a01b031681565b3480156104ee57600080fd5b50610252610b1d565b34801561050357600080fd5b5061027f610512366004611bb4565b610b2c565b34801561052357600080fd5b5061027f610532366004611bb4565b610ba7565b34801561054357600080fd5b506102a4610552366004611c75565b610bb5565b34801561056357600080fd5b5061038e610c0a565b34801561057857600080fd5b506102a4610d79565b34801561058d57600080fd5b5061022a61059c366004611caa565b610dba565b3480156105ad57600080fd5b506102a46105bc366004611ce3565b610de5565b3480156105cd57600080fd5b5061022a60095481565b3480156105e357600080fd5b5061022a60085481565b3480156105f957600080fd5b5061022a600b5481565b34801561060f57600080fd5b5061022a61061e366004611cff565b610e31565b34801561062f57600080fd5b5061022a600d5481565b60606004805461064890611d18565b80601f016020809104026020016040519081016040528092919081815260200182805461067490611d18565b80156106c15780601f10610696576101008083540402835291602001916106c1565b820191906000526020600020905b8154815290600101906020018083116106a457829003601f168201915b5050505050905090565b6000336106d9818585610fd5565b60019150505b92915050565b6003546001600160a01b031633146107185760405162461bcd60e51b815260040161070f90611d52565b60405180910390fd5b60405133904780156108fc02916000818181858888f19350505050158015610744573d6000803e3d6000fd5b50565b6000336107558582856110fa565b610760858585611174565b506001949350505050565b6000336106d981858561077e8383610dba565b6107889190611d9d565b610fd5565b6003546001600160a01b031633146107b75760405162461bcd60e51b815260040161070f90611d52565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107ee903090600019610fd5565b600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610841573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108659190611db0565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108eb9190611db0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610938573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095c9190611db0565b600f80546001600160a01b039283166001600160a01b0319909116179055600e541663f305d71947306109a4816001600160a01b031660009081526020819052604090205490565b60035460405160e086901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925260006044830181905260648301529190911660848201524260a482015260c40160606040518083038185885af1158015610a11573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a369190611dcd565b505050565b6003546001600160a01b03163314610a655760405162461bcd60e51b815260040161070f90611d52565b600891909155600955565b6003546001600160a01b03163314610a9a5760405162461bcd60e51b815260040161070f90611d52565b60006008819055600955565b6003546001600160a01b03163314610ad05760405162461bcd60e51b815260040161070f90611d52565b610ada600061194b565b565b6003546001600160a01b03163314610b065760405162461bcd60e51b815260040161070f90611d52565b60016008556003600955600019600c819055600d55565b60606005805461064890611d18565b60003381610b3a8286610dba565b905083811015610b9a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161070f565b6107608286868403610fd5565b6000336106d9818585611174565b6003546001600160a01b03163314610bdf5760405162461bcd60e51b815260040161070f90611d52565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b600080600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c849190611db0565b6001600160a01b031663e6a4390530600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0a9190611db0565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610d55573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106df9190611db0565b6003546001600160a01b03163314610da35760405162461bcd60e51b815260040161070f90611d52565b600f805461ffff60a81b191661010160a81b179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6003546001600160a01b03163314610e0f5760405162461bcd60e51b815260040161070f90611d52565b600f8054921515600160a81b0260ff60a81b1990931692909217909155600a55565b60408051600280825260608083018452600093909291906020830190803683370190505090503081600081518110610e6b57610e6b611e11565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ec4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee89190611db0565b81600181518110610efb57610efb611e11565b6001600160a01b039283166020918202929092010152600e5460405163d06ca61f60e01b8152600092919091169063d06ca61f90610f3f9087908690600401611e6b565b600060405180830381865afa158015610f5c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f849190810190611e8c565b90508060018351610f959190611f4a565b81518110610fa557610fa5611e11565b602002602001015192505050919050565b6000610fc28284611f5d565b9392505050565b6000610fc28284611f7f565b6001600160a01b0383166110375760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070f565b6001600160a01b0382166110985760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006111068484610dba565b9050600019811461116e57818110156111615760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161070f565b61116e8484848403610fd5565b50505050565b6001600160a01b0383166111d85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161070f565b6001600160a01b03821661123a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070f565b6001600160a01b0383166000908152602081905260409020548111156112b15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161070f565b600081116113135760405162461bcd60e51b815260206004820152602960248201527f45524332303a20416d6f756e742073686f756c642062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161070f565b600f54600160b01b900460ff168061134357506001600160a01b03831660009081526002602052604090205460ff165b8061136657506001600160a01b03821660009081526002602052604090205460ff165b6113a85760405162461bcd60e51b81526020600482015260136024820152721d1c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161070f565b826001600160a01b03166113ba610c0a565b6001600160a01b03161480156113e957506001600160a01b03821660009081526002602052604090205460ff16155b156114b957600c5481111561144f5760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b606482015260840161070f565b600d546001600160a01b0383166000908152602081905260409020546114759083611d9d565b11156114b95760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161070f565b600f54600160a81b900460ff16156115d25730600090815260208190526040902054600f54600160a01b900460ff1615801561150e57506001600160a01b03841660009081526002602052604090205460ff16155b801561153357506001600160a01b03831660009081526002602052604090205460ff16155b80156115445750611544828461199d565b156115d057600f805460ff60a01b1916600160a01b179055600b54811061157557611570600b546119cf565b611588565b600a5481111561158857611588816119cf565b6007546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156115c1573d6000803e3d6000fd5b50600f805460ff60a01b191690555b505b600f54600160a01b900460ff16806115f45750600f54600160a81b900460ff16155b1561168a576001600160a01b03831660009081526020819052604090205461161c9082611b39565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461164b9082611b45565b6001600160a01b03838116600081815260208181526040918290209490945551848152909291861691600080516020611fd383398151915291016110ed565b6001600160a01b03831660009081526002602052604090205460ff161561176d576001600160a01b03831660009081526002602052604081205460ff166116d157816116eb565b816001600a546116e19190611f4a565b6116eb9190611f7f565b9050801561116e576001600160a01b0380851660009081526020819052604080822080548590039055918516815220546117259083611b45565b6001600160a01b03848116600081815260208181526040918290209490945551858152909291871691600080516020611fd3833981519152910160405180910390a350505050565b611775610c0a565b6001600160a01b0316826001600160a01b031614806117ac5750611797610c0a565b6001600160a01b0316836001600160a01b0316145b156119285760006117bb610c0a565b6001600160a01b0316836001600160a01b0316036117d857506009545b6117e0610c0a565b6001600160a01b0316846001600160a01b0316036117fd57506008545b6001600160a01b0384166000908152602081905260409020546118209083611b39565b6001600160a01b038516600090815260208190526040812091909155611851606461184b8585610fc9565b90610fb6565b905080156118ac573060009081526020819052604081208054839290611878908490611d9d565b909155505060405181815230906001600160a01b03871690600080516020611fd38339815191529060200160405180910390a35b6118d86118b98483611b39565b6001600160a01b03861660009081526020819052604090205490611b45565b6001600160a01b038086166000818152602081905260409020929092558616600080516020611fd38339815191526119108685611b39565b60405190815260200160405180910390a35050505050565b6001600160a01b03831660009081526020819052604090205461161c9082611b39565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006119a7610c0a565b6001600160a01b0316826001600160a01b0316148015610fc2575050600a5490911015919050565b600e546119e79030906001600160a01b031683610fd5565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a1c57611a1c611e11565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a999190611db0565b81600181518110611aac57611aac611e11565b6001600160a01b039283166020918202929092010152600e546040516318cbafe560e01b81529116906318cbafe590611af2908590600090869030904290600401611f96565b6000604051808303816000875af1158015611b11573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a369190810190611e8c565b6000610fc28284611f4a565b6000610fc28284611d9d565b600060208083528351808285015260005b81811015611b7e57858101830151858201604001528201611b62565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461074457600080fd5b60008060408385031215611bc757600080fd5b8235611bd281611b9f565b946020939093013593505050565b600080600060608486031215611bf557600080fd5b8335611c0081611b9f565b92506020840135611c1081611b9f565b929592945050506040919091013590565b60008060408385031215611c3457600080fd5b50508035926020909101359150565b600060208284031215611c5557600080fd5b8135610fc281611b9f565b80358015158114611c7057600080fd5b919050565b60008060408385031215611c8857600080fd5b8235611c9381611b9f565b9150611ca160208401611c60565b90509250929050565b60008060408385031215611cbd57600080fd5b8235611cc881611b9f565b91506020830135611cd881611b9f565b809150509250929050565b60008060408385031215611cf657600080fd5b611bd283611c60565b600060208284031215611d1157600080fd5b5035919050565b600181811c90821680611d2c57607f821691505b602082108103611d4c57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156106df576106df611d87565b600060208284031215611dc257600080fd5b8151610fc281611b9f565b600080600060608486031215611de257600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015611e605781516001600160a01b031687529582019590820190600101611e3b565b509495945050505050565b828152604060208201526000611e846040830184611e27565b949350505050565b60006020808385031215611e9f57600080fd5b825167ffffffffffffffff80821115611eb757600080fd5b818501915085601f830112611ecb57600080fd5b815181811115611edd57611edd611dfb565b8060051b604051601f19603f83011681018181108582111715611f0257611f02611dfb565b604052918252848201925083810185019188831115611f2057600080fd5b938501935b82851015611f3e57845184529385019392850192611f25565b98975050505050505050565b818103818111156106df576106df611d87565b600082611f7a57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176106df576106df611d87565b85815284602082015260a060408201526000611fb560a0830186611e27565b6001600160a01b039490941660608301525060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122036d4d38bd5d18f519c0db4aa43d39a4c164b11abeb762c15762a68771ee2f5d764736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102085760003560e01c806373c63ec211610118578063c1f1b1b5116100a0578063e0f3ccf51161006f578063e0f3ccf5146105c1578063e4748b9e146105d7578063ef0ce66b146105ed578063f3c533f614610603578063f8b45b051461062357600080fd5b8063c1f1b1b514610557578063d4e262251461056c578063dd62ed3e14610581578063df20fd49146105a157600080fd5b80638fffabed116100e75780638fffabed146104c257806395d89b41146104e2578063a457c2d7146104f7578063a9059cbb14610517578063af9549e01461053757600080fd5b806373c63ec2146104475780637437681e1461045c578063768dc710146104725780638da5cb5b146104a257600080fd5b8063395093511161019b57806352f7c9881161016a57806352f7c988146103a65780636b130f9a146103c65780636ddd1713146103db57806370a08231146103fc578063715018a61461043257600080fd5b8063395093511461031857806344579b3214610338578063469503d314610359578063502f74461461036e57600080fd5b806318160ddd116101d757806318160ddd146102a6578063220f6696146102bb57806323b872dd146102dc578063313ce567146102fc57600080fd5b80630445b6671461021457806306fdde031461023d578063095ea7b31461025f5780630f299cf11461028f57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022a600a5481565b6040519081526020015b60405180910390f35b34801561024957600080fd5b50610252610639565b6040516102349190611b51565b34801561026b57600080fd5b5061027f61027a366004611bb4565b6106cb565b6040519015158152602001610234565b34801561029b57600080fd5b506102a46106e5565b005b3480156102b257600080fd5b5060065461022a565b3480156102c757600080fd5b50600f5461027f90600160a01b900460ff1681565b3480156102e857600080fd5b5061027f6102f7366004611be0565b610747565b34801561030857600080fd5b5060405160128152602001610234565b34801561032457600080fd5b5061027f610333366004611bb4565b61076b565b34801561034457600080fd5b50600f5461027f90600160b01b900460ff1681565b34801561036557600080fd5b506102a461078d565b34801561037a57600080fd5b50600e5461038e906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b3480156103b257600080fd5b506102a46103c1366004611c21565b610a3b565b3480156103d257600080fd5b506102a4610a70565b3480156103e757600080fd5b50600f5461027f90600160a81b900460ff1681565b34801561040857600080fd5b5061022a610417366004611c43565b6001600160a01b031660009081526020819052604090205490565b34801561043e57600080fd5b506102a4610aa6565b34801561045357600080fd5b506102a4610adc565b34801561046857600080fd5b5061022a600c5481565b34801561047e57600080fd5b5061027f61048d366004611c43565b60026020526000908152604090205460ff1681565b3480156104ae57600080fd5b5060035461038e906001600160a01b031681565b3480156104ce57600080fd5b50600f5461038e906001600160a01b031681565b3480156104ee57600080fd5b50610252610b1d565b34801561050357600080fd5b5061027f610512366004611bb4565b610b2c565b34801561052357600080fd5b5061027f610532366004611bb4565b610ba7565b34801561054357600080fd5b506102a4610552366004611c75565b610bb5565b34801561056357600080fd5b5061038e610c0a565b34801561057857600080fd5b506102a4610d79565b34801561058d57600080fd5b5061022a61059c366004611caa565b610dba565b3480156105ad57600080fd5b506102a46105bc366004611ce3565b610de5565b3480156105cd57600080fd5b5061022a60095481565b3480156105e357600080fd5b5061022a60085481565b3480156105f957600080fd5b5061022a600b5481565b34801561060f57600080fd5b5061022a61061e366004611cff565b610e31565b34801561062f57600080fd5b5061022a600d5481565b60606004805461064890611d18565b80601f016020809104026020016040519081016040528092919081815260200182805461067490611d18565b80156106c15780601f10610696576101008083540402835291602001916106c1565b820191906000526020600020905b8154815290600101906020018083116106a457829003601f168201915b5050505050905090565b6000336106d9818585610fd5565b60019150505b92915050565b6003546001600160a01b031633146107185760405162461bcd60e51b815260040161070f90611d52565b60405180910390fd5b60405133904780156108fc02916000818181858888f19350505050158015610744573d6000803e3d6000fd5b50565b6000336107558582856110fa565b610760858585611174565b506001949350505050565b6000336106d981858561077e8383610dba565b6107889190611d9d565b610fd5565b6003546001600160a01b031633146107b75760405162461bcd60e51b815260040161070f90611d52565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107ee903090600019610fd5565b600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610841573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108659190611db0565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108eb9190611db0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610938573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095c9190611db0565b600f80546001600160a01b039283166001600160a01b0319909116179055600e541663f305d71947306109a4816001600160a01b031660009081526020819052604090205490565b60035460405160e086901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925260006044830181905260648301529190911660848201524260a482015260c40160606040518083038185885af1158015610a11573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a369190611dcd565b505050565b6003546001600160a01b03163314610a655760405162461bcd60e51b815260040161070f90611d52565b600891909155600955565b6003546001600160a01b03163314610a9a5760405162461bcd60e51b815260040161070f90611d52565b60006008819055600955565b6003546001600160a01b03163314610ad05760405162461bcd60e51b815260040161070f90611d52565b610ada600061194b565b565b6003546001600160a01b03163314610b065760405162461bcd60e51b815260040161070f90611d52565b60016008556003600955600019600c819055600d55565b60606005805461064890611d18565b60003381610b3a8286610dba565b905083811015610b9a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161070f565b6107608286868403610fd5565b6000336106d9818585611174565b6003546001600160a01b03163314610bdf5760405162461bcd60e51b815260040161070f90611d52565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b600080600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c849190611db0565b6001600160a01b031663e6a4390530600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0a9190611db0565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610d55573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106df9190611db0565b6003546001600160a01b03163314610da35760405162461bcd60e51b815260040161070f90611d52565b600f805461ffff60a81b191661010160a81b179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6003546001600160a01b03163314610e0f5760405162461bcd60e51b815260040161070f90611d52565b600f8054921515600160a81b0260ff60a81b1990931692909217909155600a55565b60408051600280825260608083018452600093909291906020830190803683370190505090503081600081518110610e6b57610e6b611e11565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ec4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee89190611db0565b81600181518110610efb57610efb611e11565b6001600160a01b039283166020918202929092010152600e5460405163d06ca61f60e01b8152600092919091169063d06ca61f90610f3f9087908690600401611e6b565b600060405180830381865afa158015610f5c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f849190810190611e8c565b90508060018351610f959190611f4a565b81518110610fa557610fa5611e11565b602002602001015192505050919050565b6000610fc28284611f5d565b9392505050565b6000610fc28284611f7f565b6001600160a01b0383166110375760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070f565b6001600160a01b0382166110985760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006111068484610dba565b9050600019811461116e57818110156111615760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161070f565b61116e8484848403610fd5565b50505050565b6001600160a01b0383166111d85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161070f565b6001600160a01b03821661123a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070f565b6001600160a01b0383166000908152602081905260409020548111156112b15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161070f565b600081116113135760405162461bcd60e51b815260206004820152602960248201527f45524332303a20416d6f756e742073686f756c642062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161070f565b600f54600160b01b900460ff168061134357506001600160a01b03831660009081526002602052604090205460ff165b8061136657506001600160a01b03821660009081526002602052604090205460ff165b6113a85760405162461bcd60e51b81526020600482015260136024820152721d1c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161070f565b826001600160a01b03166113ba610c0a565b6001600160a01b03161480156113e957506001600160a01b03821660009081526002602052604090205460ff16155b156114b957600c5481111561144f5760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b606482015260840161070f565b600d546001600160a01b0383166000908152602081905260409020546114759083611d9d565b11156114b95760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161070f565b600f54600160a81b900460ff16156115d25730600090815260208190526040902054600f54600160a01b900460ff1615801561150e57506001600160a01b03841660009081526002602052604090205460ff16155b801561153357506001600160a01b03831660009081526002602052604090205460ff16155b80156115445750611544828461199d565b156115d057600f805460ff60a01b1916600160a01b179055600b54811061157557611570600b546119cf565b611588565b600a5481111561158857611588816119cf565b6007546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156115c1573d6000803e3d6000fd5b50600f805460ff60a01b191690555b505b600f54600160a01b900460ff16806115f45750600f54600160a81b900460ff16155b1561168a576001600160a01b03831660009081526020819052604090205461161c9082611b39565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461164b9082611b45565b6001600160a01b03838116600081815260208181526040918290209490945551848152909291861691600080516020611fd383398151915291016110ed565b6001600160a01b03831660009081526002602052604090205460ff161561176d576001600160a01b03831660009081526002602052604081205460ff166116d157816116eb565b816001600a546116e19190611f4a565b6116eb9190611f7f565b9050801561116e576001600160a01b0380851660009081526020819052604080822080548590039055918516815220546117259083611b45565b6001600160a01b03848116600081815260208181526040918290209490945551858152909291871691600080516020611fd3833981519152910160405180910390a350505050565b611775610c0a565b6001600160a01b0316826001600160a01b031614806117ac5750611797610c0a565b6001600160a01b0316836001600160a01b0316145b156119285760006117bb610c0a565b6001600160a01b0316836001600160a01b0316036117d857506009545b6117e0610c0a565b6001600160a01b0316846001600160a01b0316036117fd57506008545b6001600160a01b0384166000908152602081905260409020546118209083611b39565b6001600160a01b038516600090815260208190526040812091909155611851606461184b8585610fc9565b90610fb6565b905080156118ac573060009081526020819052604081208054839290611878908490611d9d565b909155505060405181815230906001600160a01b03871690600080516020611fd38339815191529060200160405180910390a35b6118d86118b98483611b39565b6001600160a01b03861660009081526020819052604090205490611b45565b6001600160a01b038086166000818152602081905260409020929092558616600080516020611fd38339815191526119108685611b39565b60405190815260200160405180910390a35050505050565b6001600160a01b03831660009081526020819052604090205461161c9082611b39565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006119a7610c0a565b6001600160a01b0316826001600160a01b0316148015610fc2575050600a5490911015919050565b600e546119e79030906001600160a01b031683610fd5565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a1c57611a1c611e11565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a999190611db0565b81600181518110611aac57611aac611e11565b6001600160a01b039283166020918202929092010152600e546040516318cbafe560e01b81529116906318cbafe590611af2908590600090869030904290600401611f96565b6000604051808303816000875af1158015611b11573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a369190810190611e8c565b6000610fc28284611f4a565b6000610fc28284611d9d565b600060208083528351808285015260005b81811015611b7e57858101830151858201604001528201611b62565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461074457600080fd5b60008060408385031215611bc757600080fd5b8235611bd281611b9f565b946020939093013593505050565b600080600060608486031215611bf557600080fd5b8335611c0081611b9f565b92506020840135611c1081611b9f565b929592945050506040919091013590565b60008060408385031215611c3457600080fd5b50508035926020909101359150565b600060208284031215611c5557600080fd5b8135610fc281611b9f565b80358015158114611c7057600080fd5b919050565b60008060408385031215611c8857600080fd5b8235611c9381611b9f565b9150611ca160208401611c60565b90509250929050565b60008060408385031215611cbd57600080fd5b8235611cc881611b9f565b91506020830135611cd881611b9f565b809150509250929050565b60008060408385031215611cf657600080fd5b611bd283611c60565b600060208284031215611d1157600080fd5b5035919050565b600181811c90821680611d2c57607f821691505b602082108103611d4c57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156106df576106df611d87565b600060208284031215611dc257600080fd5b8151610fc281611b9f565b600080600060608486031215611de257600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015611e605781516001600160a01b031687529582019590820190600101611e3b565b509495945050505050565b828152604060208201526000611e846040830184611e27565b949350505050565b60006020808385031215611e9f57600080fd5b825167ffffffffffffffff80821115611eb757600080fd5b818501915085601f830112611ecb57600080fd5b815181811115611edd57611edd611dfb565b8060051b604051601f19603f83011681018181108582111715611f0257611f02611dfb565b604052918252848201925083810185019188831115611f2057600080fd5b938501935b82851015611f3e57845184529385019392850192611f25565b98975050505050505050565b818103818111156106df576106df611d87565b600082611f7a57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176106df576106df611d87565b85815284602082015260a060408201526000611fb560a0830186611e27565b6001600160a01b039490941660608301525060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122036d4d38bd5d18f519c0db4aa43d39a4c164b11abeb762c15762a68771ee2f5d764736f6c63430008110033

Deployed Bytecode Sourcemap

10982:11317:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11570:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;11570:55:0;;;;;;;;13398:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;14400:228::-;;;;;;;;;;-1:-1:-1;14400:228:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;14400:228:0;1205:187:1;22027:114:0;;;;;;;;;;;;;:::i;:::-;;13719:108;;;;;;;;;;-1:-1:-1;13807:12:0;;13719:108;;11889:28;;;;;;;;;;-1:-1:-1;11889:28:0;;;;-1:-1:-1;;;11889:28:0;;;;;;14636:295;;;;;;;;;;-1:-1:-1;14636:295:0;;;;;:::i;:::-;;:::i;13618:93::-;;;;;;;;;;-1:-1:-1;13618:93:0;;13701:2;2000:36:1;;1988:2;1973:18;13618:93:0;1858:184:1;14939:266:0;;;;;;;;;;-1:-1:-1;14939:266:0;;;;;:::i;:::-;;:::i;11962:31::-;;;;;;;;;;-1:-1:-1;11962:31:0;;;;-1:-1:-1;;;11962:31:0;;;;;;16176:570;;;;;;;;;;;;;:::i;11820:32::-;;;;;;;;;;-1:-1:-1;11820:32:0;;;;-1:-1:-1;;;;;11820:32:0;;;;;;-1:-1:-1;;;;;2235:32:1;;;2217:51;;2205:2;2190:18;11820:32:0;2047:227:1;12243:126:0;;;;;;;;;;-1:-1:-1;12243:126:0;;;;;:::i;:::-;;:::i;12377:95::-;;;;;;;;;;;;;:::i;11924:31::-;;;;;;;;;;-1:-1:-1;11924:31:0;;;;-1:-1:-1;;;11924:31:0;;;;;;13835:143;;;;;;;;;;-1:-1:-1;13835:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;13952:18:0;13925:7;13952:18;;;;;;;;;;;;13835:143;12681:103;;;;;;;;;;;;;:::i;16005:163::-;;;;;;;;;;;;;:::i;11698:51::-;;;;;;;;;;;;;;;;11210:50;;;;;;;;;;-1:-1:-1;11210:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11269:20;;;;;;;;;;-1:-1:-1;11269:20:0;;;;-1:-1:-1;;;;;11269:20:0;;;11859:21;;;;;;;;;;-1:-1:-1;11859:21:0;;;;-1:-1:-1;;;;;11859:21:0;;;13506:104;;;;;;;;;;;;;:::i;15380:499::-;;;;;;;;;;-1:-1:-1;15380:499:0;;;;;:::i;:::-;;:::i;13986:220::-;;;;;;;;;;-1:-1:-1;13986:220:0;;;;;:::i;:::-;;:::i;12792:127::-;;;;;;;;;;-1:-1:-1;12792:127:0;;;;;:::i;:::-;;:::i;21763:256::-;;;;;;;;;;;;;:::i;15887:110::-;;;;;;;;;;;;;:::i;14214:178::-;;;;;;;;;;-1:-1:-1;14214:178:0;;;;;:::i;:::-;;:::i;22149:147::-;;;;;;;;;;-1:-1:-1;22149:147:0;;;;;:::i;:::-;;:::i;11533:28::-;;;;;;;;;;;;;;;;11499:27;;;;;;;;;;;;;;;;11632:59;;;;;;;;;;;;;;;;20420:395;;;;;;;;;;-1:-1:-1;20420:395:0;;;;;:::i;:::-;;:::i;11756:55::-;;;;;;;;;;;;;;;;13398:100;13452:13;13485:5;13478:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13398:100;:::o;14400:228::-;14508:4;7090:10;14565:33;7090:10;14582:7;14591:6;14565:8;:33::i;:::-;14616:4;14609:11;;;14400:228;;;;;:::o;22027:114::-;12159:5;;-1:-1:-1;;;;;12159:5:0;12168:10;12159:19;12151:64;;;;-1:-1:-1;;;12151:64:0;;;;;;;:::i;:::-;;;;;;;;;22082:51:::1;::::0;22090:10:::1;::::0;22111:21:::1;22082:51:::0;::::1;;;::::0;::::1;::::0;;;22111:21;22090:10;22082:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22027:114::o:0;14636:295::-;14767:4;7090:10;14825:38;14841:4;7090:10;14856:6;14825:15;:38::i;:::-;14874:27;14884:4;14890:2;14894:6;14874:9;:27::i;:::-;-1:-1:-1;14919:4:0;;14636:295;-1:-1:-1;;;;14636:295:0:o;14939:266::-;15052:4;7090:10;15109:66;7090:10;15126:7;15164:10;15135:26;7090:10;15126:7;15135:9;:26::i;:::-;:39;;;;:::i;:::-;15109:8;:66::i;16176:570::-;12159:5;;-1:-1:-1;;;;;12159:5:0;12168:10;12159:19;12151:64;;;;-1:-1:-1;;;12151:64:0;;;;;;;:::i;:::-;16233:8:::1;:71:::0;;-1:-1:-1;;;;;;16233:71:0::1;16261:42;16233:71:::0;;::::1;::::0;;;16317:55:::1;::::0;16334:4:::1;::::0;-1:-1:-1;;16317:8:0::1;:55::i;:::-;16412:8;;;;;;;;;-1:-1:-1::0;;;;;16412:8:0::1;-1:-1:-1::0;;;;;16412:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16394:48:0::1;;16465:4;16485:8;;;;;;;;;-1:-1:-1::0;;;;;16485:8:0::1;-1:-1:-1::0;;;;;16485:13:0::1;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16394:117;::::0;-1:-1:-1;;;;;;16394:117:0::1;::::0;;;;;;-1:-1:-1;;;;;5802:15:1;;;16394:117:0::1;::::0;::::1;5784:34:1::0;5854:15;;5834:18;;;5827:43;5719:18;;16394:117:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16385:6;:126:::0;;-1:-1:-1;;;;;16385:126:0;;::::1;-1:-1:-1::0;;;;;;16385:126:0;;::::1;;::::0;;16524:8:::1;::::0;::::1;:24;16556:21;16601:4;16621:24;16601:4:::0;-1:-1:-1;;;;;13952:18:0;13925:7;13952:18;;;;;;;;;;;;13835:143;16621:24:::1;16692:5;::::0;16524:214:::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;;16524:214:0;;;-1:-1:-1;;;;;6240:15:1;;;16524:214:0::1;::::0;::::1;6222:34:1::0;6272:18;;;6265:34;;;;16660:1:0::1;6315:18:1::0;;;6308:34;;;6358:18;;;6351:34;16692:5:0;;;::::1;6401:19:1::0;;;6394:44;16712:15:0::1;6454:19:1::0;;;6447:35;6156:19;;16524:214:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16176:570::o:0;12243:126::-;12159:5;;-1:-1:-1;;;;;12159:5:0;12168:10;12159:19;12151:64;;;;-1:-1:-1;;;12151:64:0;;;;;;;:::i;:::-;12319:7:::1;:15:::0;;;;12345:8:::1;:16:::0;12243:126::o;12377:95::-;12159:5;;-1:-1:-1;;;;;12159:5:0;12168:10;12159:19;12151:64;;;;-1:-1:-1;;;12151:64:0;;;;;;;:::i;:::-;12440:1:::1;12430:7;:11:::0;;;12452:8:::1;:12:::0;12377:95::o;12681:103::-;12159:5;;-1:-1:-1;;;;;12159:5:0;12168:10;12159:19;12151:64;;;;-1:-1:-1;;;12151:64:0;;;;;;;:::i;:::-;12746:30:::1;12773:1;12746:18;:30::i;:::-;12681:103::o:0;16005:163::-;12159:5;;-1:-1:-1;;;;;12159:5:0;12168:10;12159:19;12151:64;;;;-1:-1:-1;;;12151:64:0;;;;;;;:::i;:::-;16070:1:::1;16060:7;:11:::0;16093:1:::1;16082:8;:12:::0;-1:-1:-1;;16107:5:0::1;:19:::0;;;16137:9:::1;:23:::0;16005:163::o;13506:104::-;13562:13;13595:7;13588:14;;;;;:::i;15380:499::-;15498:4;7090:10;15498:4;15582:26;7090:10;15600:7;15582:9;:26::i;:::-;15555:53;;15661:15;15641:16;:35;;15619:122;;;;-1:-1:-1;;;15619:122:0;;7006:2:1;15619:122:0;;;6988:21:1;7045:2;7025:18;;;7018:30;7084:34;7064:18;;;7057:62;-1:-1:-1;;;7135:18:1;;;7128:35;7180:19;;15619:122:0;6804:401:1;15619:122:0;15777:61;15786:6;15794:7;15822:15;15803:16;:34;15777:8;:61::i;13986:220::-;14090:4;7090:10;14147:29;7090:10;14165:2;14169:6;14147:9;:29::i;12792:127::-;12159:5;;-1:-1:-1;;;;;12159:5:0;12168:10;12159:19;12151:64;;;;-1:-1:-1;;;12151:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12876:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;12876:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12792:127::o;21763:256::-;21803:7;21823:19;21894:8;;;;;;;;;-1:-1:-1;;;;;21894:8:0;-1:-1:-1;;;;;21877:34:0;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21845:87:0;;21941:4;21965:8;;;;;;;;;-1:-1:-1;;;;;21965:8:0;-1:-1:-1;;;;;21948:31:0;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21845:137;;-1:-1:-1;;;;;;21845:137:0;;;;;;;-1:-1:-1;;;;;5802:15:1;;;21845:137:0;;;5784:34:1;5854:15;;5834:18;;;5827:43;5719:18;;21845:137:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15887:110::-;12159:5;;-1:-1:-1;;;;;12159:5:0;12168:10;12159:19;12151:64;;;;-1:-1:-1;;;12151:64:0;;;;;;;:::i;:::-;15942:11:::1;:18:::0;;-1:-1:-1;;;;15971:18:0;-1:-1:-1;;;15971:18:0;;;15887:110::o;14214:178::-;-1:-1:-1;;;;;14356:19:0;;;14329:7;14356:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;14214:178::o;22149:147::-;12159:5;;-1:-1:-1;;;;;12159:5:0;12168:10;12159:19;12151:64;;;;-1:-1:-1;;;12151:64:0;;;;;;;:::i;:::-;22235:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;22235:19:0::1;-1:-1:-1::0;;;;22235:19:0;;::::1;::::0;;;::::1;::::0;;;22265:13:::1;:23:::0;22149:147::o;20420:395::-;20542:16;;;20556:1;20542:16;;;20503:21;20542:16;;;;;20483:7;;20503:21;;20542:16;20556:1;20542:16;;;;;;;;;;-1:-1:-1;20542:16:0;20535:23;;20587:4;20569;20574:1;20569:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20569:23:0;;;:7;;;;;;;;;;:23;;;;20630:8;;20613:33;;;-1:-1:-1;;;20613:33:0;;;;20630:8;;;;;20613:31;;:33;;;;;20569:7;;20613:33;;;;;20630:8;20613:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20603:4;20608:1;20603:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20603:43:0;;;:7;;;;;;;;;:43;20707:8;;20690:69;;-1:-1:-1;;;20690:69:0;;20657:30;;20707:8;;;;;20690:54;;:69;;20745:7;;20754:4;;20690:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20690:69:0;;;;;;;;;;;;:::i;:::-;20657:102;;20777:13;20805:1;20791:4;:11;:15;;;;:::i;:::-;20777:30;;;;;;;;:::i;:::-;;;;;;;20770:37;;;;20420:395;;;:::o;3949:98::-;4007:7;4034:5;4038:1;4034;:5;:::i;:::-;4027:12;3949:98;-1:-1:-1;;;3949:98:0:o;3550:::-;3608:7;3635:5;3639:1;3635;:5;:::i;20823:382::-;-1:-1:-1;;;;;20960:20:0;;20952:69;;;;-1:-1:-1;;;20952:69:0;;10117:2:1;20952:69:0;;;10099:21:1;10156:2;10136:18;;;10129:30;10195:34;10175:18;;;10168:62;-1:-1:-1;;;10246:18:1;;;10239:34;10290:19;;20952:69:0;9915:400:1;20952:69:0;-1:-1:-1;;;;;21040:21:0;;21032:68;;;;-1:-1:-1;;;21032:68:0;;10522:2:1;21032:68:0;;;10504:21:1;10561:2;10541:18;;;10534:30;10600:34;10580:18;;;10573:62;-1:-1:-1;;;10651:18:1;;;10644:32;10693:19;;21032:68:0;10320:398:1;21032:68:0;-1:-1:-1;;;;;21111:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;21164:33;;160:25:1;;;21164:33:0;;133:18:1;21164:33:0;;;;;;;;20823:382;;;:::o;21213:505::-;21349:24;21376:26;21386:6;21394:7;21376:9;:26::i;:::-;21349:53;;-1:-1:-1;;21417:16:0;:37;21413:298;;21517:6;21497:16;:26;;21471:117;;;;-1:-1:-1;;;21471:117:0;;10925:2:1;21471:117:0;;;10907:21:1;10964:2;10944:18;;;10937:30;11003:31;10983:18;;;10976:59;11052:18;;21471:117:0;10723:353:1;21471:117:0;21632:52;21641:6;21649:7;21677:6;21658:16;:25;21632:8;:52::i;:::-;21338:380;21213:505;;;:::o;16754:3187::-;-1:-1:-1;;;;;16885:18:0;;16877:68;;;;-1:-1:-1;;;16877:68:0;;11283:2:1;16877:68:0;;;11265:21:1;11322:2;11302:18;;;11295:30;11361:34;11341:18;;;11334:62;-1:-1:-1;;;11412:18:1;;;11405:35;11457:19;;16877:68:0;11081:401:1;16877:68:0;-1:-1:-1;;;;;16964:16:0;;16956:64;;;;-1:-1:-1;;;16956:64:0;;11689:2:1;16956:64:0;;;11671:21:1;11728:2;11708:18;;;11701:30;11767:34;11747:18;;;11740:62;-1:-1:-1;;;11818:18:1;;;11811:33;11861:19;;16956:64:0;11487:399:1;16956:64:0;-1:-1:-1;;;;;17053:15:0;;:9;:15;;;;;;;;;;;:25;-1:-1:-1;17053:25:0;17031:113;;;;-1:-1:-1;;;17031:113:0;;12093:2:1;17031:113:0;;;12075:21:1;12132:2;12112:18;;;12105:30;12171:34;12151:18;;;12144:62;-1:-1:-1;;;12222:18:1;;;12215:36;12268:19;;17031:113:0;11891:402:1;17031:113:0;17172:1;17163:6;:10;17155:64;;;;-1:-1:-1;;;17155:64:0;;12500:2:1;17155:64:0;;;12482:21:1;12539:2;12519:18;;;12512:30;12578:34;12558:18;;;12551:62;-1:-1:-1;;;12629:18:1;;;12622:39;12678:19;;17155:64:0;12298:405:1;17155:64:0;17252:11;;-1:-1:-1;;;17252:11:0;;;;;:39;;-1:-1:-1;;;;;;17267:24:0;;;;;;:18;:24;;;;;;;;17252:39;:65;;;-1:-1:-1;;;;;;17295:22:0;;;;;;:18;:22;;;;;;;;17252:65;17230:134;;;;-1:-1:-1;;;17230:134:0;;12910:2:1;17230:134:0;;;12892:21:1;12949:2;12929:18;;;12922:30;-1:-1:-1;;;12968:18:1;;;12961:49;13027:18;;17230:134:0;12708:343:1;17230:134:0;17394:4;-1:-1:-1;;;;;17381:17:0;:9;:7;:9::i;:::-;-1:-1:-1;;;;;17381:17:0;;:44;;;;-1:-1:-1;;;;;;17403:22:0;;;;;;:18;:22;;;;;;;;17402:23;17381:44;17377:225;;;17460:5;;17450:6;:15;;17442:66;;;;-1:-1:-1;;;17442:66:0;;13258:2:1;17442:66:0;;;13240:21:1;13297:2;13277:18;;;13270:30;13336:34;13316:18;;;13309:62;-1:-1:-1;;;13387:18:1;;;13380:36;13433:19;;17442:66:0;13056:402:1;17442:66:0;17557:9;;-1:-1:-1;;;;;13952:18:0;;13925:7;13952:18;;;;;;;;;;;17531:22;;:6;:22;:::i;:::-;:35;;17523:67;;;;-1:-1:-1;;;17523:67:0;;13665:2:1;17523:67:0;;;13647:21:1;13704:2;13684:18;;;13677:30;-1:-1:-1;;;13723:18:1;;;13716:49;13782:18;;17523:67:0;13463:343:1;17523:67:0;17639:11;;-1:-1:-1;;;17639:11:0;;;;17635:743;;;17715:4;17667:27;17697:24;;;;;;;;;;;17761:16;;-1:-1:-1;;;17761:16:0;;;;17760:17;:63;;;;-1:-1:-1;;;;;;17799:24:0;;;;;;:18;:24;;;;;;;;17798:25;17760:63;:107;;;;-1:-1:-1;;;;;;17845:22:0;;;;;;:18;:22;;;;;;;;17844:23;17760:107;:157;;;;;17888:29;17906:6;17914:2;17888:17;:29::i;:::-;17738:629;;;17952:16;:23;;-1:-1:-1;;;;17952:23:0;-1:-1:-1;;;17952:23:0;;;18023:12;;18000:35;;17996:240;;18060:30;18077:12;;18060:16;:30::i;:::-;17996:240;;;18141:13;;18119:19;:35;18116:120;;;18179:37;18196:19;18179:16;:37::i;:::-;18264:9;;18256:50;;-1:-1:-1;;;;;18264:9:0;;;;18284:21;18256:50;;;;;18264:9;18256:50;18264:9;18256:50;18284:21;18264:9;18256:50;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18327:16:0;:24;;-1:-1:-1;;;;18327:24:0;;;17738:629;17652:726;17635:743;18394:16;;-1:-1:-1;;;18394:16:0;;;;;:32;;-1:-1:-1;18415:11:0;;-1:-1:-1;;;18415:11:0;;;;18414:12;18394:32;18390:1544;;;-1:-1:-1;;;;;18461:15:0;;:9;:15;;;;;;;;;;;:27;;18481:6;18461:19;:27::i;:::-;-1:-1:-1;;;;;18443:15:0;;;:9;:15;;;;;;;;;;;:45;;;;18519:13;;;;;;;:25;;18537:6;18519:17;:25::i;:::-;-1:-1:-1;;;;;18503:13:0;;;:9;:13;;;;;;;;;;;;:41;;;;18564:26;160:25:1;;;18503:13:0;;18564:26;;;;-1:-1:-1;;;;;;;;;;;18564:26:0;133:18:1;18564:26:0;14:177:1;18390:1544:0;-1:-1:-1;;;;;18612:24:0;;;;;;:18;:24;;;;;;;;18608:1326;;;-1:-1:-1;;;;;18675:24:0;;18653:19;18675:24;;;:18;:24;;;;;;;;:81;;18750:6;18675:81;;;18741:6;18736:1;18720:13;;:17;;;;:::i;:::-;18719:28;;;;:::i;:::-;18653:103;-1:-1:-1;18775:15:0;;18771:267;;-1:-1:-1;;;;;18862:15:0;;;:9;:15;;;;;;;;;;;;;:31;;;18844:49;;18947:13;;;;;;;:25;;18965:6;18947:17;:25::i;:::-;-1:-1:-1;;;;;18931:13:0;;;:9;:13;;;;;;;;;;;;:41;;;;18996:26;160:25:1;;;18931:13:0;;18996:26;;;;-1:-1:-1;;;;;;;;;;;18996:26:0;133:18:1;18996:26:0;;;;;;;18638:411;16524:214:::1;;;16176:570::o:0;18608:1326::-;19080:9;:7;:9::i;:::-;-1:-1:-1;;;;;19074:15:0;:2;-1:-1:-1;;;;;19074:15:0;;:36;;;;19101:9;:7;:9::i;:::-;-1:-1:-1;;;;;19093:17:0;:4;-1:-1:-1;;;;;19093:17:0;;19074:36;19070:853;;;19131:12;19172:9;:7;:9::i;:::-;-1:-1:-1;;;;;19166:15:0;:2;-1:-1:-1;;;;;19166:15:0;;19162:36;;-1:-1:-1;19190:8:0;;19162:36;19229:9;:7;:9::i;:::-;-1:-1:-1;;;;;19221:17:0;:4;-1:-1:-1;;;;;19221:17:0;;19217:37;;-1:-1:-1;19247:7:0;;19217:37;-1:-1:-1;;;;;19293:15:0;;:9;:15;;;;;;;;;;;:27;;19313:6;19293:19;:27::i;:::-;-1:-1:-1;;;;;19275:15:0;;:9;:15;;;;;;;;;;:45;;;;19361:25;19382:3;19361:16;:6;19372:4;19361:10;:16::i;:::-;:20;;:25::i;:::-;19341:45;-1:-1:-1;19409:13:0;;19405:167;;19465:4;19447:9;:24;;;;;;;;;;:37;;19475:9;;19447;:37;;19475:9;;19447:37;:::i;:::-;;;;-1:-1:-1;;19512:40:0;;160:25:1;;;19535:4:0;;-1:-1:-1;;;;;19512:40:0;;;-1:-1:-1;;;;;;;;;;;19512:40:0;148:2:1;133:18;19512:40:0;;;;;;;19405:167;19606:40;19624:21;:6;19635:9;19624:10;:21::i;:::-;-1:-1:-1;;;;;19606:13:0;;:9;:13;;;;;;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;19590:13:0;;;:9;:13;;;;;;;;;;:56;;;;19670:41;;-1:-1:-1;;;;;;;;;;;19689:21:0;:6;19700:9;19689:10;:21::i;:::-;19670:41;;160:25:1;;;148:2;133:18;19670:41:0;;;;;;;19112:615;;16524:214:::1;;;16176:570::o:0;19070:853::-;-1:-1:-1;;;;;19770:15:0;;:9;:15;;;;;;;;;;;:27;;19790:6;19770:19;:27::i;12484:189::-;12577:5;;;-1:-1:-1;;;;;12593:16:0;;;-1:-1:-1;;;;;;12593:16:0;;;;;;;12625:40;;12577:5;;;12593:16;12577:5;;12625:40;;12558:16;;12625:40;12547:126;12484:189;:::o;15213:159::-;15294:4;15328:9;:7;:9::i;:::-;-1:-1:-1;;;;;15317:20:0;:7;-1:-1:-1;;;;;15317:20:0;;:47;;;;-1:-1:-1;;15351:13:0;;15341:23;;;;;15213:159;-1:-1:-1;15213:159:0:o;19949:463::-;20049:8;;20017:56;;20034:4;;-1:-1:-1;;;;;20049:8:0;20060:12;20017:8;:56::i;:::-;20110:16;;;20124:1;20110:16;;;;;;;;20086:21;;20110:16;;;;;;;;;;-1:-1:-1;20110:16:0;20086:40;;20155:4;20137;20142:1;20137:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20137:23:0;;;:7;;;;;;;;;;:23;;;;20198:8;;20181:33;;;-1:-1:-1;;;20181:33:0;;;;20198:8;;;;;20181:31;;:33;;;;;20137:7;;20181:33;;;;;20198:8;20181:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20171:4;20176:1;20171:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20171:43:0;;;:7;;;;;;;;;:43;20242:8;;20225:179;;-1:-1:-1;;;20225:179:0;;20242:8;;;20225:48;;:179;;20288:12;;20242:8;;20331:4;;20358;;20378:15;;20225:179;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20225:179:0;;;;;;;;;;;;:::i;3193:98::-;3251:7;3278:5;3282:1;3278;:5;:::i;2812:98::-;2870:7;2897:5;2901:1;2897;:5;:::i;196:548: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;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2279:248::-;2347:6;2355;2408:2;2396:9;2387:7;2383:23;2379:32;2376:52;;;2424:1;2421;2414:12;2376:52;-1:-1:-1;;2447:23:1;;;2517:2;2502:18;;;2489:32;;-1:-1:-1;2279:248:1:o;2532:247::-;2591:6;2644:2;2632:9;2623:7;2619:23;2615:32;2612:52;;;2660:1;2657;2650:12;2612:52;2699:9;2686:23;2718:31;2743:5;2718:31;:::i;2992:160::-;3057:20;;3113:13;;3106:21;3096:32;;3086:60;;3142:1;3139;3132:12;3086:60;2992:160;;;:::o;3157:315::-;3222:6;3230;3283:2;3271:9;3262:7;3258:23;3254:32;3251:52;;;3299:1;3296;3289:12;3251:52;3338:9;3325:23;3357:31;3382:5;3357:31;:::i;:::-;3407:5;-1:-1:-1;3431:35:1;3462:2;3447:18;;3431:35;:::i;:::-;3421:45;;3157:315;;;;;:::o;3477:388::-;3545:6;3553;3606:2;3594:9;3585:7;3581:23;3577:32;3574:52;;;3622:1;3619;3612:12;3574:52;3661:9;3648:23;3680:31;3705:5;3680:31;:::i;:::-;3730:5;-1:-1:-1;3787:2:1;3772:18;;3759:32;3800:33;3759:32;3800:33;:::i;:::-;3852:7;3842:17;;;3477:388;;;;;:::o;3870:248::-;3935:6;3943;3996:2;3984:9;3975:7;3971:23;3967:32;3964:52;;;4012:1;4009;4002:12;3964:52;4035:26;4051:9;4035:26;:::i;4123:180::-;4182:6;4235:2;4223:9;4214:7;4210:23;4206:32;4203:52;;;4251:1;4248;4241:12;4203:52;-1:-1:-1;4274:23:1;;4123:180;-1:-1:-1;4123:180:1:o;4308:380::-;4387:1;4383:12;;;;4430;;;4451:61;;4505:4;4497:6;4493:17;4483:27;;4451:61;4558:2;4550:6;4547:14;4527:18;4524:38;4521:161;;4604:10;4599:3;4595:20;4592:1;4585:31;4639:4;4636:1;4629:15;4667:4;4664:1;4657:15;4521:161;;4308:380;;;:::o;4693:356::-;4895:2;4877:21;;;4914:18;;;4907:30;4973:34;4968:2;4953:18;;4946:62;5040:2;5025:18;;4693:356::o;5054:127::-;5115:10;5110:3;5106:20;5103:1;5096:31;5146:4;5143:1;5136:15;5170:4;5167:1;5160:15;5186:125;5251:9;;;5272:10;;;5269:36;;;5285:18;;:::i;5316:251::-;5386:6;5439:2;5427:9;5418:7;5414:23;5410:32;5407:52;;;5455:1;5452;5445:12;5407:52;5487:9;5481:16;5506:31;5531:5;5506:31;:::i;6493:306::-;6581:6;6589;6597;6650:2;6638:9;6629:7;6625:23;6621:32;6618:52;;;6666:1;6663;6656:12;6618:52;6695:9;6689:16;6679:26;;6745:2;6734:9;6730:18;6724:25;6714:35;;6789:2;6778:9;6774:18;6768:25;6758:35;;6493:306;;;;;:::o;7210:127::-;7271:10;7266:3;7262:20;7259:1;7252:31;7302:4;7299:1;7292:15;7326:4;7323:1;7316:15;7342:127;7403:10;7398:3;7394:20;7391:1;7384:31;7434:4;7431:1;7424:15;7458:4;7455:1;7448:15;7474:461;7527:3;7565:5;7559:12;7592:6;7587:3;7580:19;7618:4;7647:2;7642:3;7638:12;7631:19;;7684:2;7677:5;7673:14;7705:1;7715:195;7729:6;7726:1;7723:13;7715:195;;;7794:13;;-1:-1:-1;;;;;7790:39:1;7778:52;;7850:12;;;;7885:15;;;;7826:1;7744:9;7715:195;;;-1:-1:-1;7926:3:1;;7474:461;-1:-1:-1;;;;;7474:461:1:o;7940:332::-;8147:6;8136:9;8129:25;8190:2;8185;8174:9;8170:18;8163:30;8110:4;8210:56;8262:2;8251:9;8247:18;8239:6;8210:56;:::i;:::-;8202:64;7940:332;-1:-1:-1;;;;7940:332:1:o;8277:1105::-;8372:6;8403:2;8446;8434:9;8425:7;8421:23;8417:32;8414:52;;;8462:1;8459;8452:12;8414:52;8495:9;8489:16;8524:18;8565:2;8557:6;8554:14;8551:34;;;8581:1;8578;8571:12;8551:34;8619:6;8608:9;8604:22;8594:32;;8664:7;8657:4;8653:2;8649:13;8645:27;8635:55;;8686:1;8683;8676:12;8635:55;8715:2;8709:9;8737:2;8733;8730:10;8727:36;;;8743:18;;:::i;:::-;8789:2;8786:1;8782:10;8821:2;8815:9;8884:2;8880:7;8875:2;8871;8867:11;8863:25;8855:6;8851:38;8939:6;8927:10;8924:22;8919:2;8907:10;8904:18;8901:46;8898:72;;;8950:18;;:::i;:::-;8986:2;8979:22;9036:18;;;9070:15;;;;-1:-1:-1;9112:11:1;;;9108:20;;;9140:19;;;9137:39;;;9172:1;9169;9162:12;9137:39;9196:11;;;;9216:135;9232:6;9227:3;9224:15;9216:135;;;9298:10;;9286:23;;9249:12;;;;9329;;;;9216:135;;;9370:6;8277:1105;-1:-1:-1;;;;;;;;8277:1105:1:o;9387:128::-;9454:9;;;9475:11;;;9472:37;;;9489:18;;:::i;9520:217::-;9560:1;9586;9576:132;;9630:10;9625:3;9621:20;9618:1;9611:31;9665:4;9662:1;9655:15;9693:4;9690:1;9683:15;9576:132;-1:-1:-1;9722:9:1;;9520:217::o;9742:168::-;9815:9;;;9846;;9863:15;;;9857:22;;9843:37;9833:71;;9884:18;;:::i;13811:582::-;14110:6;14099:9;14092:25;14153:6;14148:2;14137:9;14133:18;14126:34;14196:3;14191:2;14180:9;14176:18;14169:31;14073:4;14217:57;14269:3;14258:9;14254:19;14246:6;14217:57;:::i;:::-;-1:-1:-1;;;;;14310:32:1;;;;14305:2;14290:18;;14283:60;-1:-1:-1;14374:3:1;14359:19;14352:35;14209:65;13811:582;-1:-1:-1;;;13811:582:1:o

Swarm Source

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