ETH Price: $3,268.95 (+0.27%)
Gas: 2 Gwei

Token

Nex (Nex)
 

Overview

Max Total Supply

100,000,000 Nex

Holders

101

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
6,808,525.811291813721635778 Nex

Value
$0.00
0xc4290b0fb11086c2c070a30de65c64b9c3ba2ff0
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:
Nex

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-15
*/

// Website: https://www.nexlabs.io
// Twitter: https://x.com/NEX_Protocol
// Telegram: https://t.me/NEX_Labs

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;

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() {
        require(owner() == _msgSender(), "Invalid owner");
        _;
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "New owner is ZERO");
        _transferOwnership(newOwner);
    }

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

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

library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return 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 div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function tryDiv(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 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 sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

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

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return 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 sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

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

interface IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);

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

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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 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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

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

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

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

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

    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;

    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 burn(address to) external returns (uint256 amount0, uint256 amount1);
    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;
}

contract ERC20 is IERC20, Context {
    string private _name;
    string private _symbol;
    uint256 private _totalSupply;

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

    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 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 approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: Not owner != address(0)");
        require(spender != address(0), "ERC20: Not spender != address(0)");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        _transfer(from, to, amount);
        uint256 curAllow = _allowances[from][_msgSender()];
        require(curAllow >= amount, "ERC20: Not curAllow >= amount");
        unchecked {
            _approve(from, _msgSender(), curAllow - amount);
        }
        return true;
    }

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

    function increaseAllowance(address spender, uint256 addValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subValue) public virtual returns (bool) {
        uint256 curAllow = _allowances[_msgSender()][spender];
        require(curAllow >= subValue, "ERC20: Not curAllow >= subValue");
        unchecked {
            _approve(_msgSender(), spender, curAllow - subValue);
        }
        return true;
    }

    function _mint(
    	address account,
	    uint256 amount
    ) internal virtual {
        require(account != address(0), "ERC20: Not account != address(0)");
        _beforeTokenTransfer(address(0), account, amount);
        _totalSupply += amount;
        _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: Not account != address(0)");
        _beforeTokenTransfer(account, address(0), amount);
        uint256 kBalance = _balances[account];
        require(kBalance >= amount, "ERC20: kBalance >= amount");
        unchecked {
            _balances[account] = kBalance - amount;
        }
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
        _afterTokenTransfer(account, address(0), amount);
    }

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

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: Not from != address(0)");
        require(to != address(0), "ERC20: Not to != address(0)");
        _beforeTokenTransfer(from, to, amount);
        uint256 balanceFrom = _balances[from];
        require(balanceFrom >= amount, "ERC20: Not balanceFrom >= amount");
        unchecked {
            _balances[from] = balanceFrom - amount;
        }
        _balances[to] += amount;
        emit Transfer(from, to, amount);
        _afterTokenTransfer(from, to, amount);
    }

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

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

    IUniswapV2Router02 public swapRouter;
    address public swapPair;
    
    uint256 public minSwapTokenAmount;
    uint256 public maxTokenAmountPerWallet;
    uint256 public maxTokenAmountPerTxn;

    bool public bTradingActive = false;
    bool public nSwapEnabled = false;

    address public marketingWallet;
    address public devWallet;

    uint256 public tokenAmountForMarketing;
    uint256 public tokenAmountForDev;

    mapping(address => bool) public bExcludedMaxTokenAmountPerTxn;

    mapping(address => bool) public bExcludedFromTax;

    mapping(address => bool) public automatedMarketMakerPairs;

    bool public limitsInEffect = true;

    uint256 public sellTotalTax;
    uint256 public sellMarketingTax;
    uint256 public sellDevTax;

    uint256 public buyTotalTax;
    uint256 public buyMarketingTax;
    uint256 public buyDevTax;

    
    bool private nSwapping;

    struct StartTradingRequest {
        uint256 deadline;
    }

    mapping(address => bool) private blackList;
    
    constructor(address _devWallet, address _marketingWallet, address _swapRouter) ERC20("Nex", "Nex"){
        devWallet = address(_devWallet);
        marketingWallet = address(_marketingWallet);


        swapRouter = IUniswapV2Router02(_swapRouter);
        swapPair = IUniswapV2Factory(swapRouter.factory()).createPair(address(this), swapRouter.WETH());

        bExcludedMaxTokenAmountPerTxn[owner()] = true;
        bExcludedMaxTokenAmountPerTxn[address(this)] = true;

        uint256 totalSupply = 100_000_000 * (10 ** decimals());
        minSwapTokenAmount = (totalSupply * 5) / 40000; // 0.05% swap wallet
        maxTokenAmountPerTxn = (totalSupply * 1) / 200; // 0.5% from total supply max transaction amount
        maxTokenAmountPerWallet = (totalSupply * 1) / 200;  // 0.5% from total supply max wallet amount
        bExcludedFromTax[address(this)] = true;
        bExcludedFromTax[owner()] = true;


        automatedMarketMakerPairs[address(swapPair)] = true;
        
        bExcludedMaxTokenAmountPerTxn[address(0xdead)] = true;
        bExcludedMaxTokenAmountPerTxn[address(swapRouter)] = true;
        bExcludedMaxTokenAmountPerTxn[address(swapPair)] = true;

        bExcludedFromTax[address(0xdead)] = true;

        sellMarketingTax = 10;
        sellDevTax = 10;
        sellTotalTax = sellMarketingTax + sellDevTax;


        buyMarketingTax = 10;
        buyDevTax = 10;
        buyTotalTax = buyMarketingTax + buyDevTax;


        _mint(msg.sender, totalSupply);
    }

    function updateDevWallet(address _devWallet) external onlyOwner {
        devWallet = _devWallet;
    }

    function updateMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = _marketingWallet;
    }

    function enableTrading() external {
        require(tx.origin == owner(), "Only owner can enable trading");
        bTradingActive = true;
        nSwapEnabled = true;
    }

    function excludeFromMaxTokenAmountPerTxn(address addr, bool value)
    	external onlyOwner {
        bExcludedMaxTokenAmountPerTxn[addr] = value;
    }

    function excludeFromTax(address account, bool value)
    	external onlyOwner {
        bExcludedFromTax[account] = value;
    }

    function removeLimits()
    	external onlyOwner {
        limitsInEffect = false;
    }


    function updateSwapEnabled(bool enabled)
    	external onlyOwner {
        nSwapEnabled = enabled;
    }

    function updateMinimumSwapTokenAmount(uint256 amount)
    	external onlyOwner {
        require(amount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply.");
        require(amount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply.");
        minSwapTokenAmount = amount;
    }

    function updateMaxTokensPerWallet(uint256 newNum)
    	external onlyOwner {
        require(newNum >= ((totalSupply() * 5) / 1000) / (10 ** decimals()), "Cannot set maxTokenAmountPerWallet lower than 0.5%");
        maxTokenAmountPerWallet = newNum * (10 ** decimals());
    }

    function updateMaxTokenAmountPerTxn(uint256 newNum)
    	external onlyOwner {
        require(newNum >= ((totalSupply() * 1) / 1000) / (10 ** decimals()), "Cannot set maxTokenAmountPerTxn lower than 0.1%");
        maxTokenAmountPerTxn = newNum * (10 ** decimals());
    }

    function updateBuyTax(uint256 newMarketFee, uint256 newDevFee)
    	external onlyOwner {
        buyMarketingTax = newMarketFee;
        buyDevTax = newDevFee;
        buyTotalTax = buyMarketingTax + buyDevTax;
        require(buyTotalTax <= 95, "Must keep tax at 95% or less");
    }

    function updateSellTax(uint256 newMarketFee, uint256 newDevFee)
        external onlyOwner {
        sellMarketingTax = newMarketFee;
        sellDevTax = newDevFee;
        sellTotalTax = sellMarketingTax + sellDevTax;
        require(sellTotalTax <= 95, "Must keep tax at 95% or less");
    }
    
    function setAutomatedMarketMakerPairs(address pair, bool value)
        external onlyOwner {
        require(pair != swapPair, "The pair cannot be removed from automatedMarketMakerPairs");
        automatedMarketMakerPairs[pair] = value;
    }

    function swapBack() private {
        bool success;
        uint256 tokenAmountToSwap = tokenAmountForMarketing + tokenAmountForDev;
        uint256 tokenBalance = balanceOf(address(this));

        if (tokenAmountToSwap == 0 || tokenBalance == 0)
            return;

        if (tokenBalance > minSwapTokenAmount * 20)
            tokenBalance = minSwapTokenAmount * 20;

        uint256 prevETHBalance = address(this).balance;
        swapTokensForEth(tokenBalance);

        uint256 ethBalance = address(this).balance.sub(prevETHBalance);
        uint256 ethForDev = ethBalance.mul(tokenAmountForDev).div(tokenAmountToSwap);

        (success, ) = address(devWallet).call{value: ethForDev}("");
        (success, ) = address(marketingWallet).call{ value: address(this).balance }("");

        tokenAmountForMarketing = 0;
        tokenAmountForDev = 0;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: Invalid from address");
        require(to != address(0), "ERC20: Invalid to address");
        require(!blackList[from], "ERC20: from is black list");
        require(!blackList[to], "ERC20: to is black list");

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

        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !nSwapping) {
                if (!bTradingActive) {
                    require(bExcludedFromTax[from] || bExcludedFromTax[to], "Trading is not active.");
                }

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

        uint256 tokenBalance = balanceOf(address(this));
        bool canSwap = tokenBalance >= minSwapTokenAmount;
        if (nSwapEnabled && canSwap && !nSwapping &&
            !automatedMarketMakerPairs[from] && !bExcludedFromTax[from] && !bExcludedFromTax[to]) {
            nSwapping = true;
            swapBack();
            nSwapping = false;
        }

        bool nTax = !nSwapping;
        if (bExcludedFromTax[from] || bExcludedFromTax[to])
            nTax = false;

        uint256 fees = 0;
        if (nTax) {
            if (automatedMarketMakerPairs[to] && sellTotalTax > 0) {
                fees = amount.mul(sellTotalTax).div(100);
                tokenAmountForDev += (fees * sellDevTax) / sellTotalTax;
                tokenAmountForMarketing += (fees * sellMarketingTax) / sellTotalTax;
            }
            else if (automatedMarketMakerPairs[from] && buyTotalTax > 0) {
                fees = amount.mul(buyTotalTax).div(100);
                tokenAmountForDev += (fees * buyDevTax) / buyTotalTax;
                tokenAmountForMarketing += (fees * buyMarketingTax) / buyTotalTax;
            }
            if (fees > 0)
                super._transfer(from, address(this), fees);
            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a < b) ? a : b;
    }

    receive() external payable {}

    function swapTokensForEth(uint256 amount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = swapRouter.WETH();

        _approve(address(this), address(swapRouter), amount);

        // make the swap
        swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function withdrawEthPool() external onlyOwner() {
        bool success;
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }

    function emergencyWithdrawToken(address tokenAddress) external onlyOwner() {
        IERC20 token = IERC20(tokenAddress);
        uint256 balance = token.balanceOf(address(this));
        token.transfer(msg.sender, balance);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"},{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_swapRouter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bExcludedFromTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bExcludedMaxTokenAmountPerTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bTradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalTax","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":"subValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"emergencyWithdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromMaxTokenAmountPerTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTokenAmountPerTxn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTokenAmountPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSwapTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAmountForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAmountForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"updateBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTokenAmountPerTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTokensPerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMinimumSwapTokenAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"updateSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEthPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600b805461ffff191690556012805460ff1916600117905534801562000028575f80fd5b5060405162002f3d38038062002f3d8339810160408190526200004b91620005c1565b60408051808201825260038082526209ccaf60eb1b6020808401829052845180860190955291845290830152905f620000858382620006a5565b506001620000948282620006a5565b505050620000b1620000ab6200046660201b60201c565b6200046a565b600c80546001600160a01b038086166001600160a01b031992831617909255600b8054858416620100000262010000600160b01b03199091161790556006805492841692909116821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000136573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015c919062000771565b6001600160a01b031663c9c653963060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001bc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e2919062000771565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200022d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000253919062000771565b600780546001600160a01b0319166001600160a01b03928316179055600554165f908152600f6020526040808220805460ff19908116600190811790925530845291832080549092161790556012620002ae90600a620008a3565b620002be906305f5e100620008b3565b9050619c40620002d0826005620008b3565b620002dc9190620008cd565b60085560c8620002ee826001620008b3565b620002fa9190620008cd565b600a5560c86200030c826001620008b3565b620003189190620008cd565b600955305f9081526010602081905260408220805460ff19166001908117909155916200034d6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055600780548316825260118552838220805487166001908117909155600f86527f99629f56119585bf27511b6b7d295dffb54757453fcc3dabcf51d92028301f10805488168217905560065484168352848320805488168217905590549092168152918220805485168217905561dead90915260109091527f9e93e1db4a1f807cc22b2aecf4deeb0bf5745f1ecb319e87c68c5624c0fa6b698054909216179055600a60148190556015819055620004329080620008ed565b601355600a601781905560188190556200044d9080620008ed565b6016556200045c3382620004bb565b5050505062000903565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620005165760405162461bcd60e51b815260206004820181905260248201527f45524332303a204e6f74206163636f756e7420213d2061646472657373283029604482015260640160405180910390fd5b8060025f828254620005299190620008ed565b90915550506001600160a01b0382165f908152600360205260408120805483929062000557908490620008ed565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b80516001600160a01b0381168114620005bc575f80fd5b919050565b5f805f60608486031215620005d4575f80fd5b620005df84620005a5565b9250620005ef60208501620005a5565b9150620005ff60408501620005a5565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200063157607f821691505b6020821081036200065057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620005a057805f5260205f20601f840160051c810160208510156200067d5750805b601f840160051c820191505b818110156200069e575f815560010162000689565b5050505050565b81516001600160401b03811115620006c157620006c162000608565b620006d981620006d284546200061c565b8462000656565b602080601f8311600181146200070f575f8415620006f75750858301515b5f19600386901b1c1916600185901b17855562000769565b5f85815260208120601f198616915b828110156200073f578886015182559484019460019091019084016200071e565b50858210156200075d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f6020828403121562000782575f80fd5b6200078d82620005a5565b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620007e857815f1904821115620007cc57620007cc62000794565b80851615620007da57918102915b93841c9390800290620007ad565b509250929050565b5f8262000800575060016200089d565b816200080e57505f6200089d565b8160018114620008275760028114620008325762000852565b60019150506200089d565b60ff84111562000846576200084662000794565b50506001821b6200089d565b5060208310610133831016604e8410600b841016171562000877575081810a6200089d565b620008838383620007a8565b805f190482111562000899576200089962000794565b0290505b92915050565b5f6200078d60ff841683620007f0565b80820281158282048414176200089d576200089d62000794565b5f82620008e857634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156200089d576200089d62000794565b61262c80620009115f395ff3fe6080604052600436106102c2575f3560e01c8063751039fc1161016f578063b1256f84116100d8578063c42c3f8811610092578063dd62ed3e1161006d578063dd62ed3e14610837578063e27a55fe1461087b578063e96db1ef14610890578063f2fde38b146108a5575f80fd5b8063c42c3f88146107ea578063c6a30647146107ff578063d929a0831461081e575f80fd5b8063b1256f841461072c578063b38d5ef41461074a578063b62496f514610769578063b79c188614610797578063be691883146107b6578063c31c9c07146107cb575f80fd5b8063924de9b711610129578063924de9b71461068757806395d89b41146106a6578063a457c2d7146106ba578063a9059cbb146106d9578063aacebbe3146106f8578063af8f26e714610717575f80fd5b8063751039fc146105e957806375f0a874146105fd5780637d673170146106225780638a8c523c146106375780638da5cb5b1461064b5780638ea5220f14610668575f80fd5b8063330124111161022b5780635df6e68e116101e55780636f498e21116101c05780636f498e21146105545780637070678b1461058257806370a08231146105a1578063715018a6146105d5575f80fd5b80635df6e68e1461050b57806367b740e914610520578063685fbc6b1461053f575f80fd5b8063330124111461046b578063372b44b814610480578063395093511461049557806345167f26146104b45780634a62bb65146104d3578063544d1ec9146104ec575f80fd5b80631af032031161027c5780631af032031461038e57806322f59835146103ad57806323b872dd146103db57806326991cc8146103fa5780632c81355e14610431578063313ce56714610450575f80fd5b806306fdde03146102cd578063095ea7b3146102f75780630e3d57eb1461032657806318160ddd1461033c5780631816467f1461035a57806318c34be114610379575f80fd5b366102c957005b5f80fd5b3480156102d8575f80fd5b506102e16108c4565b6040516102ee91906121c2565b60405180910390f35b348015610302575f80fd5b50610316610311366004612222565b610953565b60405190151581526020016102ee565b348015610331575f80fd5b5061033a610969565b005b348015610347575f80fd5b506002545b6040519081526020016102ee565b348015610365575f80fd5b5061033a61037436600461224c565b6109e6565b348015610384575f80fd5b5061034c600d5481565b348015610399575f80fd5b5061033a6103a836600461224c565b610a32565b3480156103b8575f80fd5b506103166103c736600461224c565b60106020525f908152604090205460ff1681565b3480156103e6575f80fd5b506103166103f5366004612267565b610b37565b348015610405575f80fd5b50600754610419906001600160a01b031681565b6040516001600160a01b0390911681526020016102ee565b34801561043c575f80fd5b5061033a61044b3660046122a5565b610bce565b34801561045b575f80fd5b50604051601281526020016102ee565b348015610476575f80fd5b5061034c60175481565b34801561048b575f80fd5b5061034c600e5481565b3480156104a0575f80fd5b506103166104af366004612222565b610d19565b3480156104bf575f80fd5b5061033a6104ce3660046122c9565b610d54565b3480156104de575f80fd5b506012546103169060ff1681565b3480156104f7575f80fd5b5061033a6105063660046122a5565b610e2c565b348015610516575f80fd5b5061034c60165481565b34801561052b575f80fd5b5061033a61053a3660046122a5565b610f10565b34801561054a575f80fd5b5061034c60095481565b34801561055f575f80fd5b5061031661056e36600461224c565b600f6020525f908152604090205460ff1681565b34801561058d575f80fd5b5061033a61059c3660046122c9565b610ff7565b3480156105ac575f80fd5b5061034c6105bb36600461224c565b6001600160a01b03165f9081526003602052604090205490565b3480156105e0575f80fd5b5061033a61104b565b3480156105f4575f80fd5b5061033a611080565b348015610608575f80fd5b50600b54610419906201000090046001600160a01b031681565b34801561062d575f80fd5b5061034c60085481565b348015610642575f80fd5b5061033a6110b6565b348015610656575f80fd5b506005546001600160a01b0316610419565b348015610673575f80fd5b50600c54610419906001600160a01b031681565b348015610692575f80fd5b5061033a6106a1366004612300565b611121565b3480156106b1575f80fd5b506102e1611165565b3480156106c5575f80fd5b506103166106d4366004612222565b611174565b3480156106e4575f80fd5b506103166106f3366004612222565b6111fe565b348015610703575f80fd5b5061033a61071236600461224c565b61120a565b348015610722575f80fd5b5061034c60185481565b348015610737575f80fd5b50600b5461031690610100900460ff1681565b348015610755575f80fd5b5061033a61076436600461231b565b61125e565b348015610774575f80fd5b5061031661078336600461224c565b60116020525f908152604090205460ff1681565b3480156107a2575f80fd5b5061033a6107b136600461231b565b6112f5565b3480156107c1575f80fd5b5061034c60155481565b3480156107d6575f80fd5b50600654610419906001600160a01b031681565b3480156107f5575f80fd5b5061034c600a5481565b34801561080a575f80fd5b5061033a6108193660046122c9565b611388565b348015610829575f80fd5b50600b546103169060ff1681565b348015610842575f80fd5b5061034c61085136600461233b565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610886575f80fd5b5061034c60135481565b34801561089b575f80fd5b5061034c60145481565b3480156108b0575f80fd5b5061033a6108bf36600461224c565b6113dc565b60605f80546108d290612367565b80601f01602080910402602001604051908101604052809291908181526020018280546108fe90612367565b80156109495780601f1061092057610100808354040283529160200191610949565b820191905f5260205f20905b81548152906001019060200180831161092c57829003601f168201915b5050505050905090565b5f61095f33848461145c565b5060015b92915050565b6005546001600160a01b0316331461099c5760405162461bcd60e51b81526004016109939061239f565b60405180910390fd5b6040515f90339047908381818185875af1925050503d805f81146109db576040519150601f19603f3d011682016040523d82523d5f602084013e6109e0565b606091505b50505050565b6005546001600160a01b03163314610a105760405162461bcd60e51b81526004016109939061239f565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610a5c5760405162461bcd60e51b81526004016109939061239f565b6040516370a0823160e01b815230600482015281905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610aa2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac691906123c6565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303815f875af1158015610b13573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e091906123dd565b5f610b43848484611568565b6001600160a01b0384165f90815260046020908152604080832033845290915290205482811015610bb65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a204e6f7420637572416c6c6f77203e3d20616d6f756e740000006044820152606401610993565b610bc3853385840361145c565b506001949350505050565b6005546001600160a01b03163314610bf85760405162461bcd60e51b81526004016109939061239f565b620186a0610c0560025490565b610c1090600161240c565b610c1a9190612423565b811015610c875760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610993565b6103e8610c9360025490565b610c9e90600561240c565b610ca89190612423565b811115610d145760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610993565b600855565b335f8181526004602090815260408083206001600160a01b0387168452909152812054909161095f918590610d4f908690612442565b61145c565b6005546001600160a01b03163314610d7e5760405162461bcd60e51b81526004016109939061239f565b6007546001600160a01b0390811690831603610e025760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610993565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610e565760405162461bcd60e51b81526004016109939061239f565b610e626012600a612535565b6103e8610e6e60025490565b610e7990600161240c565b610e839190612423565b610e8d9190612423565b811015610ef45760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657254786e2060448201526e6c6f776572207468616e20302e312560881b6064820152608401610993565b610f006012600a612535565b610f0a908261240c565b600a5550565b6005546001600160a01b03163314610f3a5760405162461bcd60e51b81526004016109939061239f565b610f466012600a612535565b6103e8610f5260025490565b610f5d90600561240c565b610f679190612423565b610f719190612423565b811015610fdb5760405162461bcd60e51b815260206004820152603260248201527f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657257616c6c6044820152716574206c6f776572207468616e20302e352560701b6064820152608401610993565b610fe76012600a612535565b610ff1908261240c565b60095550565b6005546001600160a01b031633146110215760405162461bcd60e51b81526004016109939061239f565b6001600160a01b03919091165f908152600f60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110755760405162461bcd60e51b81526004016109939061239f565b61107e5f611d0a565b565b6005546001600160a01b031633146110aa5760405162461bcd60e51b81526004016109939061239f565b6012805460ff19169055565b6005546001600160a01b031632146111105760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c79206f776e65722063616e20656e61626c652074726164696e670000006044820152606401610993565b600b805461ffff1916610101179055565b6005546001600160a01b0316331461114b5760405162461bcd60e51b81526004016109939061239f565b600b80549115156101000261ff0019909216919091179055565b6060600180546108d290612367565b335f9081526004602090815260408083206001600160a01b0386168452909152812054828110156111e75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a204e6f7420637572416c6c6f77203e3d2073756256616c7565006044820152606401610993565b6111f4338585840361145c565b5060019392505050565b5f61095f338484611568565b6005546001600160a01b031633146112345760405162461bcd60e51b81526004016109939061239f565b600b80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6005546001600160a01b031633146112885760405162461bcd60e51b81526004016109939061239f565b6017829055601881905561129c8183612442565b6016819055605f10156112f15760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702074617820617420393525206f72206c657373000000006044820152606401610993565b5050565b6005546001600160a01b0316331461131f5760405162461bcd60e51b81526004016109939061239f565b601482905560158190556113338183612442565b6013819055605f10156112f15760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702074617820617420393525206f72206c657373000000006044820152606401610993565b6005546001600160a01b031633146113b25760405162461bcd60e51b81526004016109939061239f565b6001600160a01b03919091165f908152601060205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146114065760405162461bcd60e51b81526004016109939061239f565b6001600160a01b0381166114505760405162461bcd60e51b81526020600482015260116024820152704e6577206f776e6572206973205a45524f60781b6044820152606401610993565b61145981611d0a565b50565b6001600160a01b0383166114b25760405162461bcd60e51b815260206004820152601e60248201527f45524332303a204e6f74206f776e657220213d206164647265737328302900006044820152606401610993565b6001600160a01b0382166115085760405162461bcd60e51b815260206004820181905260248201527f45524332303a204e6f74207370656e64657220213d20616464726573732830296044820152606401610993565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115be5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20496e76616c69642066726f6d206164647265737300000000006044820152606401610993565b6001600160a01b0382166116145760405162461bcd60e51b815260206004820152601960248201527f45524332303a20496e76616c696420746f2061646472657373000000000000006044820152606401610993565b6001600160a01b0383165f908152601a602052604090205460ff161561167c5760405162461bcd60e51b815260206004820152601960248201527f45524332303a2066726f6d20697320626c61636b206c697374000000000000006044820152606401610993565b6001600160a01b0382165f908152601a602052604090205460ff16156116e45760405162461bcd60e51b815260206004820152601760248201527f45524332303a20746f20697320626c61636b206c6973740000000000000000006044820152606401610993565b805f036116fb576116f683835f611d5b565b505050565b60125460ff1615611a5c576005546001600160a01b0384811691161480159061173257506005546001600160a01b03838116911614155b801561174657506001600160a01b03821615155b801561175d57506001600160a01b03821661dead14155b801561176c575060195460ff16155b15611a5c57600b5460ff166117fd576001600160a01b0383165f9081526010602052604090205460ff16806117b857506001600160a01b0382165f9081526010602052604090205460ff165b6117fd5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610993565b6001600160a01b0383165f9081526011602052604090205460ff16801561183c57506001600160a01b0382165f908152600f602052604090205460ff16155b1561191f57600a548111156118b15760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a37b5b2b720b6b7bab73a2832b92a3c371760591b6064820152608401610993565b6009546001600160a01b0383165f908152600360205260409020546118d69083612442565b111561191a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610993565b611a5c565b6001600160a01b0382165f9081526011602052604090205460ff16801561195e57506001600160a01b0383165f908152600f602052604090205460ff16155b156119d457600a5481111561191a5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a37b5b2b720b6b7bab73a2832b92a3c371760511b6064820152608401610993565b6001600160a01b0382165f908152600f602052604090205460ff16611a5c576009546001600160a01b0383165f90815260036020526040902054611a189083612442565b1115611a5c5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610993565b305f90815260036020526040902054600854600b549082101590610100900460ff168015611a875750805b8015611a96575060195460ff16155b8015611aba57506001600160a01b0385165f9081526011602052604090205460ff16155b8015611ade57506001600160a01b0385165f9081526010602052604090205460ff16155b8015611b0257506001600160a01b0384165f9081526010602052604090205460ff16155b15611b27576019805460ff19166001179055611b1c611efe565b6019805460ff191690555b6019546001600160a01b0386165f9081526010602052604090205460ff91821615911680611b6c57506001600160a01b0385165f9081526010602052604090205460ff165b15611b7457505f5b5f8115611cf6576001600160a01b0386165f9081526011602052604090205460ff168015611ba357505f601354115b15611c2f57611bc86064611bc26013548861204a90919063ffffffff16565b9061205c565b905060135460155482611bdb919061240c565b611be59190612423565b600e5f828254611bf59190612442565b9091555050601354601454611c0a908361240c565b611c149190612423565b600d5f828254611c249190612442565b90915550611cd89050565b6001600160a01b0387165f9081526011602052604090205460ff168015611c5757505f601654115b15611cd857611c766064611bc26016548861204a90919063ffffffff16565b905060165460185482611c89919061240c565b611c939190612423565b600e5f828254611ca39190612442565b9091555050601654601754611cb8908361240c565b611cc29190612423565b600d5f828254611cd29190612442565b90915550505b8015611ce957611ce9873083611d5b565b611cf38186612543565b94505b611d01878787611d5b565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316611db15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a204e6f742066726f6d20213d20616464726573732830290000006044820152606401610993565b6001600160a01b038216611e075760405162461bcd60e51b815260206004820152601b60248201527f45524332303a204e6f7420746f20213d206164647265737328302900000000006044820152606401610993565b6001600160a01b0383165f9081526003602052604090205481811015611e6f5760405162461bcd60e51b815260206004820181905260248201527f45524332303a204e6f742062616c616e636546726f6d203e3d20616d6f756e746044820152606401610993565b6001600160a01b038085165f90815260036020526040808220858503905591851681529081208054849290611ea5908490612442565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ef191815260200190565b60405180910390a36109e0565b5f80600e54600d54611f109190612442565b305f90815260036020526040902054909150811580611f2d575080155b15611f3757505050565b600854611f4590601461240c565b811115611f5d57600854611f5a90601461240c565b90505b47611f6782612067565b5f611f7247836121b7565b90505f611f8e85611bc2600e548561204a90919063ffffffff16565b600c546040519192506001600160a01b03169082905f81818185875af1925050503d805f8114611fd9576040519150601f19603f3d011682016040523d82523d5f602084013e611fde565b606091505b5050600b546040519197506201000090046001600160a01b03169047905f81818185875af1925050503d805f8114612031576040519150601f19603f3d011682016040523d82523d5f602084013e612036565b606091505b50505f600d819055600e5550505050505050565b5f612055828461240c565b9392505050565b5f6120558284612423565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061209a5761209a612556565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120f1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612115919061256a565b8160018151811061212857612128612556565b6001600160a01b03928316602091820292909201015260065461214e913091168461145c565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906121869085905f90869030904290600401612585565b5f604051808303815f87803b15801561219d575f80fd5b505af11580156121af573d5f803e3d5ffd5b505050505050565b5f6120558284612543565b5f602080835283518060208501525f5b818110156121ee578581018301518582016040015282016121d2565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611459575f80fd5b5f8060408385031215612233575f80fd5b823561223e8161220e565b946020939093013593505050565b5f6020828403121561225c575f80fd5b81356120558161220e565b5f805f60608486031215612279575f80fd5b83356122848161220e565b925060208401356122948161220e565b929592945050506040919091013590565b5f602082840312156122b5575f80fd5b5035919050565b8015158114611459575f80fd5b5f80604083850312156122da575f80fd5b82356122e58161220e565b915060208301356122f5816122bc565b809150509250929050565b5f60208284031215612310575f80fd5b8135612055816122bc565b5f806040838503121561232c575f80fd5b50508035926020909101359150565b5f806040838503121561234c575f80fd5b82356123578161220e565b915060208301356122f58161220e565b600181811c9082168061237b57607f821691505b60208210810361239957634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600d908201526c24b73b30b634b21037bbb732b960991b604082015260600190565b5f602082840312156123d6575f80fd5b5051919050565b5f602082840312156123ed575f80fd5b8151612055816122bc565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610963576109636123f8565b5f8261243d57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610963576109636123f8565b600181815b8085111561248f57815f1904821115612475576124756123f8565b8085161561248257918102915b93841c939080029061245a565b509250929050565b5f826124a557506001610963565b816124b157505f610963565b81600181146124c757600281146124d1576124ed565b6001915050610963565b60ff8411156124e2576124e26123f8565b50506001821b610963565b5060208310610133831016604e8410600b8410161715612510575081810a610963565b61251a8383612455565b805f190482111561252d5761252d6123f8565b029392505050565b5f61205560ff841683612497565b81810381811115610963576109636123f8565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561257a575f80fd5b81516120558161220e565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156125d55784516001600160a01b0316835293830193918301916001016125b0565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220792018fa953ae8b128f9e2e485dfa8e64a5d248618eeb7fda956fa5e58f6878064736f6c63430008170033000000000000000000000000b8a33118be5373feedfbd3e2db5ad229ee1858b0000000000000000000000000b8a33118be5373feedfbd3e2db5ad229ee1858b00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106102c2575f3560e01c8063751039fc1161016f578063b1256f84116100d8578063c42c3f8811610092578063dd62ed3e1161006d578063dd62ed3e14610837578063e27a55fe1461087b578063e96db1ef14610890578063f2fde38b146108a5575f80fd5b8063c42c3f88146107ea578063c6a30647146107ff578063d929a0831461081e575f80fd5b8063b1256f841461072c578063b38d5ef41461074a578063b62496f514610769578063b79c188614610797578063be691883146107b6578063c31c9c07146107cb575f80fd5b8063924de9b711610129578063924de9b71461068757806395d89b41146106a6578063a457c2d7146106ba578063a9059cbb146106d9578063aacebbe3146106f8578063af8f26e714610717575f80fd5b8063751039fc146105e957806375f0a874146105fd5780637d673170146106225780638a8c523c146106375780638da5cb5b1461064b5780638ea5220f14610668575f80fd5b8063330124111161022b5780635df6e68e116101e55780636f498e21116101c05780636f498e21146105545780637070678b1461058257806370a08231146105a1578063715018a6146105d5575f80fd5b80635df6e68e1461050b57806367b740e914610520578063685fbc6b1461053f575f80fd5b8063330124111461046b578063372b44b814610480578063395093511461049557806345167f26146104b45780634a62bb65146104d3578063544d1ec9146104ec575f80fd5b80631af032031161027c5780631af032031461038e57806322f59835146103ad57806323b872dd146103db57806326991cc8146103fa5780632c81355e14610431578063313ce56714610450575f80fd5b806306fdde03146102cd578063095ea7b3146102f75780630e3d57eb1461032657806318160ddd1461033c5780631816467f1461035a57806318c34be114610379575f80fd5b366102c957005b5f80fd5b3480156102d8575f80fd5b506102e16108c4565b6040516102ee91906121c2565b60405180910390f35b348015610302575f80fd5b50610316610311366004612222565b610953565b60405190151581526020016102ee565b348015610331575f80fd5b5061033a610969565b005b348015610347575f80fd5b506002545b6040519081526020016102ee565b348015610365575f80fd5b5061033a61037436600461224c565b6109e6565b348015610384575f80fd5b5061034c600d5481565b348015610399575f80fd5b5061033a6103a836600461224c565b610a32565b3480156103b8575f80fd5b506103166103c736600461224c565b60106020525f908152604090205460ff1681565b3480156103e6575f80fd5b506103166103f5366004612267565b610b37565b348015610405575f80fd5b50600754610419906001600160a01b031681565b6040516001600160a01b0390911681526020016102ee565b34801561043c575f80fd5b5061033a61044b3660046122a5565b610bce565b34801561045b575f80fd5b50604051601281526020016102ee565b348015610476575f80fd5b5061034c60175481565b34801561048b575f80fd5b5061034c600e5481565b3480156104a0575f80fd5b506103166104af366004612222565b610d19565b3480156104bf575f80fd5b5061033a6104ce3660046122c9565b610d54565b3480156104de575f80fd5b506012546103169060ff1681565b3480156104f7575f80fd5b5061033a6105063660046122a5565b610e2c565b348015610516575f80fd5b5061034c60165481565b34801561052b575f80fd5b5061033a61053a3660046122a5565b610f10565b34801561054a575f80fd5b5061034c60095481565b34801561055f575f80fd5b5061031661056e36600461224c565b600f6020525f908152604090205460ff1681565b34801561058d575f80fd5b5061033a61059c3660046122c9565b610ff7565b3480156105ac575f80fd5b5061034c6105bb36600461224c565b6001600160a01b03165f9081526003602052604090205490565b3480156105e0575f80fd5b5061033a61104b565b3480156105f4575f80fd5b5061033a611080565b348015610608575f80fd5b50600b54610419906201000090046001600160a01b031681565b34801561062d575f80fd5b5061034c60085481565b348015610642575f80fd5b5061033a6110b6565b348015610656575f80fd5b506005546001600160a01b0316610419565b348015610673575f80fd5b50600c54610419906001600160a01b031681565b348015610692575f80fd5b5061033a6106a1366004612300565b611121565b3480156106b1575f80fd5b506102e1611165565b3480156106c5575f80fd5b506103166106d4366004612222565b611174565b3480156106e4575f80fd5b506103166106f3366004612222565b6111fe565b348015610703575f80fd5b5061033a61071236600461224c565b61120a565b348015610722575f80fd5b5061034c60185481565b348015610737575f80fd5b50600b5461031690610100900460ff1681565b348015610755575f80fd5b5061033a61076436600461231b565b61125e565b348015610774575f80fd5b5061031661078336600461224c565b60116020525f908152604090205460ff1681565b3480156107a2575f80fd5b5061033a6107b136600461231b565b6112f5565b3480156107c1575f80fd5b5061034c60155481565b3480156107d6575f80fd5b50600654610419906001600160a01b031681565b3480156107f5575f80fd5b5061034c600a5481565b34801561080a575f80fd5b5061033a6108193660046122c9565b611388565b348015610829575f80fd5b50600b546103169060ff1681565b348015610842575f80fd5b5061034c61085136600461233b565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610886575f80fd5b5061034c60135481565b34801561089b575f80fd5b5061034c60145481565b3480156108b0575f80fd5b5061033a6108bf36600461224c565b6113dc565b60605f80546108d290612367565b80601f01602080910402602001604051908101604052809291908181526020018280546108fe90612367565b80156109495780601f1061092057610100808354040283529160200191610949565b820191905f5260205f20905b81548152906001019060200180831161092c57829003601f168201915b5050505050905090565b5f61095f33848461145c565b5060015b92915050565b6005546001600160a01b0316331461099c5760405162461bcd60e51b81526004016109939061239f565b60405180910390fd5b6040515f90339047908381818185875af1925050503d805f81146109db576040519150601f19603f3d011682016040523d82523d5f602084013e6109e0565b606091505b50505050565b6005546001600160a01b03163314610a105760405162461bcd60e51b81526004016109939061239f565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610a5c5760405162461bcd60e51b81526004016109939061239f565b6040516370a0823160e01b815230600482015281905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610aa2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac691906123c6565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303815f875af1158015610b13573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e091906123dd565b5f610b43848484611568565b6001600160a01b0384165f90815260046020908152604080832033845290915290205482811015610bb65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a204e6f7420637572416c6c6f77203e3d20616d6f756e740000006044820152606401610993565b610bc3853385840361145c565b506001949350505050565b6005546001600160a01b03163314610bf85760405162461bcd60e51b81526004016109939061239f565b620186a0610c0560025490565b610c1090600161240c565b610c1a9190612423565b811015610c875760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610993565b6103e8610c9360025490565b610c9e90600561240c565b610ca89190612423565b811115610d145760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610993565b600855565b335f8181526004602090815260408083206001600160a01b0387168452909152812054909161095f918590610d4f908690612442565b61145c565b6005546001600160a01b03163314610d7e5760405162461bcd60e51b81526004016109939061239f565b6007546001600160a01b0390811690831603610e025760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610993565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610e565760405162461bcd60e51b81526004016109939061239f565b610e626012600a612535565b6103e8610e6e60025490565b610e7990600161240c565b610e839190612423565b610e8d9190612423565b811015610ef45760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657254786e2060448201526e6c6f776572207468616e20302e312560881b6064820152608401610993565b610f006012600a612535565b610f0a908261240c565b600a5550565b6005546001600160a01b03163314610f3a5760405162461bcd60e51b81526004016109939061239f565b610f466012600a612535565b6103e8610f5260025490565b610f5d90600561240c565b610f679190612423565b610f719190612423565b811015610fdb5760405162461bcd60e51b815260206004820152603260248201527f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657257616c6c6044820152716574206c6f776572207468616e20302e352560701b6064820152608401610993565b610fe76012600a612535565b610ff1908261240c565b60095550565b6005546001600160a01b031633146110215760405162461bcd60e51b81526004016109939061239f565b6001600160a01b03919091165f908152600f60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110755760405162461bcd60e51b81526004016109939061239f565b61107e5f611d0a565b565b6005546001600160a01b031633146110aa5760405162461bcd60e51b81526004016109939061239f565b6012805460ff19169055565b6005546001600160a01b031632146111105760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c79206f776e65722063616e20656e61626c652074726164696e670000006044820152606401610993565b600b805461ffff1916610101179055565b6005546001600160a01b0316331461114b5760405162461bcd60e51b81526004016109939061239f565b600b80549115156101000261ff0019909216919091179055565b6060600180546108d290612367565b335f9081526004602090815260408083206001600160a01b0386168452909152812054828110156111e75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a204e6f7420637572416c6c6f77203e3d2073756256616c7565006044820152606401610993565b6111f4338585840361145c565b5060019392505050565b5f61095f338484611568565b6005546001600160a01b031633146112345760405162461bcd60e51b81526004016109939061239f565b600b80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6005546001600160a01b031633146112885760405162461bcd60e51b81526004016109939061239f565b6017829055601881905561129c8183612442565b6016819055605f10156112f15760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702074617820617420393525206f72206c657373000000006044820152606401610993565b5050565b6005546001600160a01b0316331461131f5760405162461bcd60e51b81526004016109939061239f565b601482905560158190556113338183612442565b6013819055605f10156112f15760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702074617820617420393525206f72206c657373000000006044820152606401610993565b6005546001600160a01b031633146113b25760405162461bcd60e51b81526004016109939061239f565b6001600160a01b03919091165f908152601060205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146114065760405162461bcd60e51b81526004016109939061239f565b6001600160a01b0381166114505760405162461bcd60e51b81526020600482015260116024820152704e6577206f776e6572206973205a45524f60781b6044820152606401610993565b61145981611d0a565b50565b6001600160a01b0383166114b25760405162461bcd60e51b815260206004820152601e60248201527f45524332303a204e6f74206f776e657220213d206164647265737328302900006044820152606401610993565b6001600160a01b0382166115085760405162461bcd60e51b815260206004820181905260248201527f45524332303a204e6f74207370656e64657220213d20616464726573732830296044820152606401610993565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115be5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20496e76616c69642066726f6d206164647265737300000000006044820152606401610993565b6001600160a01b0382166116145760405162461bcd60e51b815260206004820152601960248201527f45524332303a20496e76616c696420746f2061646472657373000000000000006044820152606401610993565b6001600160a01b0383165f908152601a602052604090205460ff161561167c5760405162461bcd60e51b815260206004820152601960248201527f45524332303a2066726f6d20697320626c61636b206c697374000000000000006044820152606401610993565b6001600160a01b0382165f908152601a602052604090205460ff16156116e45760405162461bcd60e51b815260206004820152601760248201527f45524332303a20746f20697320626c61636b206c6973740000000000000000006044820152606401610993565b805f036116fb576116f683835f611d5b565b505050565b60125460ff1615611a5c576005546001600160a01b0384811691161480159061173257506005546001600160a01b03838116911614155b801561174657506001600160a01b03821615155b801561175d57506001600160a01b03821661dead14155b801561176c575060195460ff16155b15611a5c57600b5460ff166117fd576001600160a01b0383165f9081526010602052604090205460ff16806117b857506001600160a01b0382165f9081526010602052604090205460ff165b6117fd5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610993565b6001600160a01b0383165f9081526011602052604090205460ff16801561183c57506001600160a01b0382165f908152600f602052604090205460ff16155b1561191f57600a548111156118b15760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a37b5b2b720b6b7bab73a2832b92a3c371760591b6064820152608401610993565b6009546001600160a01b0383165f908152600360205260409020546118d69083612442565b111561191a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610993565b611a5c565b6001600160a01b0382165f9081526011602052604090205460ff16801561195e57506001600160a01b0383165f908152600f602052604090205460ff16155b156119d457600a5481111561191a5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a37b5b2b720b6b7bab73a2832b92a3c371760511b6064820152608401610993565b6001600160a01b0382165f908152600f602052604090205460ff16611a5c576009546001600160a01b0383165f90815260036020526040902054611a189083612442565b1115611a5c5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610993565b305f90815260036020526040902054600854600b549082101590610100900460ff168015611a875750805b8015611a96575060195460ff16155b8015611aba57506001600160a01b0385165f9081526011602052604090205460ff16155b8015611ade57506001600160a01b0385165f9081526010602052604090205460ff16155b8015611b0257506001600160a01b0384165f9081526010602052604090205460ff16155b15611b27576019805460ff19166001179055611b1c611efe565b6019805460ff191690555b6019546001600160a01b0386165f9081526010602052604090205460ff91821615911680611b6c57506001600160a01b0385165f9081526010602052604090205460ff165b15611b7457505f5b5f8115611cf6576001600160a01b0386165f9081526011602052604090205460ff168015611ba357505f601354115b15611c2f57611bc86064611bc26013548861204a90919063ffffffff16565b9061205c565b905060135460155482611bdb919061240c565b611be59190612423565b600e5f828254611bf59190612442565b9091555050601354601454611c0a908361240c565b611c149190612423565b600d5f828254611c249190612442565b90915550611cd89050565b6001600160a01b0387165f9081526011602052604090205460ff168015611c5757505f601654115b15611cd857611c766064611bc26016548861204a90919063ffffffff16565b905060165460185482611c89919061240c565b611c939190612423565b600e5f828254611ca39190612442565b9091555050601654601754611cb8908361240c565b611cc29190612423565b600d5f828254611cd29190612442565b90915550505b8015611ce957611ce9873083611d5b565b611cf38186612543565b94505b611d01878787611d5b565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316611db15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a204e6f742066726f6d20213d20616464726573732830290000006044820152606401610993565b6001600160a01b038216611e075760405162461bcd60e51b815260206004820152601b60248201527f45524332303a204e6f7420746f20213d206164647265737328302900000000006044820152606401610993565b6001600160a01b0383165f9081526003602052604090205481811015611e6f5760405162461bcd60e51b815260206004820181905260248201527f45524332303a204e6f742062616c616e636546726f6d203e3d20616d6f756e746044820152606401610993565b6001600160a01b038085165f90815260036020526040808220858503905591851681529081208054849290611ea5908490612442565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ef191815260200190565b60405180910390a36109e0565b5f80600e54600d54611f109190612442565b305f90815260036020526040902054909150811580611f2d575080155b15611f3757505050565b600854611f4590601461240c565b811115611f5d57600854611f5a90601461240c565b90505b47611f6782612067565b5f611f7247836121b7565b90505f611f8e85611bc2600e548561204a90919063ffffffff16565b600c546040519192506001600160a01b03169082905f81818185875af1925050503d805f8114611fd9576040519150601f19603f3d011682016040523d82523d5f602084013e611fde565b606091505b5050600b546040519197506201000090046001600160a01b03169047905f81818185875af1925050503d805f8114612031576040519150601f19603f3d011682016040523d82523d5f602084013e612036565b606091505b50505f600d819055600e5550505050505050565b5f612055828461240c565b9392505050565b5f6120558284612423565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061209a5761209a612556565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120f1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612115919061256a565b8160018151811061212857612128612556565b6001600160a01b03928316602091820292909201015260065461214e913091168461145c565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906121869085905f90869030904290600401612585565b5f604051808303815f87803b15801561219d575f80fd5b505af11580156121af573d5f803e3d5ffd5b505050505050565b5f6120558284612543565b5f602080835283518060208501525f5b818110156121ee578581018301518582016040015282016121d2565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611459575f80fd5b5f8060408385031215612233575f80fd5b823561223e8161220e565b946020939093013593505050565b5f6020828403121561225c575f80fd5b81356120558161220e565b5f805f60608486031215612279575f80fd5b83356122848161220e565b925060208401356122948161220e565b929592945050506040919091013590565b5f602082840312156122b5575f80fd5b5035919050565b8015158114611459575f80fd5b5f80604083850312156122da575f80fd5b82356122e58161220e565b915060208301356122f5816122bc565b809150509250929050565b5f60208284031215612310575f80fd5b8135612055816122bc565b5f806040838503121561232c575f80fd5b50508035926020909101359150565b5f806040838503121561234c575f80fd5b82356123578161220e565b915060208301356122f58161220e565b600181811c9082168061237b57607f821691505b60208210810361239957634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600d908201526c24b73b30b634b21037bbb732b960991b604082015260600190565b5f602082840312156123d6575f80fd5b5051919050565b5f602082840312156123ed575f80fd5b8151612055816122bc565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610963576109636123f8565b5f8261243d57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610963576109636123f8565b600181815b8085111561248f57815f1904821115612475576124756123f8565b8085161561248257918102915b93841c939080029061245a565b509250929050565b5f826124a557506001610963565b816124b157505f610963565b81600181146124c757600281146124d1576124ed565b6001915050610963565b60ff8411156124e2576124e26123f8565b50506001821b610963565b5060208310610133831016604e8410600b8410161715612510575081810a610963565b61251a8383612455565b805f190482111561252d5761252d6123f8565b029392505050565b5f61205560ff841683612497565b81810381811115610963576109636123f8565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561257a575f80fd5b81516120558161220e565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156125d55784516001600160a01b0316835293830193918301916001016125b0565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220792018fa953ae8b128f9e2e485dfa8e64a5d248618eeb7fda956fa5e58f6878064736f6c63430008170033

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

000000000000000000000000b8a33118be5373feedfbd3e2db5ad229ee1858b0000000000000000000000000b8a33118be5373feedfbd3e2db5ad229ee1858b00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : _devWallet (address): 0xB8a33118be5373feEDfbd3E2DB5ad229eE1858b0
Arg [1] : _marketingWallet (address): 0xB8a33118be5373feEDfbd3E2DB5ad229eE1858b0
Arg [2] : _swapRouter (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000b8a33118be5373feedfbd3e2db5ad229ee1858b0
Arg [1] : 000000000000000000000000b8a33118be5373feedfbd3e2db5ad229ee1858b0
Arg [2] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

14061:10354:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9746:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10318:169;;;;;;;;;;-1:-1:-1;10318:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10318:169:0;1023:187:1;24007:161:0;;;;;;;;;;;;;:::i;:::-;;10067:108;;;;;;;;;;-1:-1:-1;10155:12:0;;10067:108;;;1361:25:1;;;1349:2;1334:18;10067:108:0;1215:177:1;16728:105:0;;;;;;;;;;-1:-1:-1;16728:105:0;;;;;:::i;:::-;;:::i;14494:38::-;;;;;;;;;;;;;;;;24176:234;;;;;;;;;;-1:-1:-1;24176:234:0;;;;;:::i;:::-;;:::i;14650:48::-;;;;;;;;;;-1:-1:-1;14650:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10998:397;;;;;;;;;;-1:-1:-1;10998:397:0;;;;;:::i;:::-;;:::i;14177:23::-;;;;;;;;;;-1:-1:-1;14177:23:0;;;;-1:-1:-1;;;;;14177:23:0;;;;;;-1:-1:-1;;;;;2274:32:1;;;2256:51;;2244:2;2229:18;14177:23:0;2110:203:1;17678:352:0;;;;;;;;;;-1:-1:-1;17678:352:0;;;;;:::i;:::-;;:::i;9966:93::-;;;;;;;;;;-1:-1:-1;9966:93:0;;10049:2;2645:36:1;;2633:2;2618:18;9966:93:0;2503:184:1;14954:30:0;;;;;;;;;;;;;;;;14539:32;;;;;;;;;;;;;;;;11572:211;;;;;;;;;;-1:-1:-1;11572:211:0;;;;;:::i;:::-;;:::i;19220:247::-;;;;;;;;;;-1:-1:-1;19220:247:0;;;;;:::i;:::-;;:::i;14773:33::-;;;;;;;;;;-1:-1:-1;14773:33:0;;;;;;;;18326:276;;;;;;;;;;-1:-1:-1;18326:276:0;;;;;:::i;:::-;;:::i;14921:26::-;;;;;;;;;;;;;;;;18038:280;;;;;;;;;;-1:-1:-1;18038:280:0;;;;;:::i;:::-;;:::i;14253:38::-;;;;;;;;;;;;;;;;14580:61;;;;;;;;;;-1:-1:-1;14580:61:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17163:154;;;;;;;;;;-1:-1:-1;17163:154:0;;;;;:::i;:::-;;:::i;10183:127::-;;;;;;;;;;-1:-1:-1;10183:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;10284:18:0;10257:7;10284:18;;;:9;:18;;;;;;;10183:127;1056:103;;;;;;;;;;;;;:::i;17463:90::-;;;;;;;;;;;;;:::i;14424:30::-;;;;;;;;;;-1:-1:-1;14424:30:0;;;;;;;-1:-1:-1;;;;;14424:30:0;;;14213:33;;;;;;;;;;;;;;;;16978:177;;;;;;;;;;;;;:::i;773:87::-;;;;;;;;;;-1:-1:-1;846:6:0;;-1:-1:-1;;;;;846:6:0;773:87;;14461:24;;;;;;;;;;-1:-1:-1;14461:24:0;;;;-1:-1:-1;;;;;14461:24:0;;;17563:107;;;;;;;;;;-1:-1:-1;17563:107:0;;;;;:::i;:::-;;:::i;9854:104::-;;;;;;;;;;;;;:::i;11791:360::-;;;;;;;;;;-1:-1:-1;11791:360:0;;;;;:::i;:::-;;:::i;11403:161::-;;;;;;;;;;-1:-1:-1;11403:161:0;;;;;:::i;:::-;;:::i;16841:129::-;;;;;;;;;;-1:-1:-1;16841:129:0;;;;;:::i;:::-;;:::i;14991:24::-;;;;;;;;;;;;;;;;14383:32;;;;;;;;;;-1:-1:-1;14383:32:0;;;;;;;;;;;18610:290;;;;;;;;;;-1:-1:-1;18610:290:0;;;;;:::i;:::-;;:::i;14707:57::-;;;;;;;;;;-1:-1:-1;14707:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18908:300;;;;;;;;;;-1:-1:-1;18908:300:0;;;;;:::i;:::-;;:::i;14887:25::-;;;;;;;;;;;;;;;;14134:36;;;;;;;;;;-1:-1:-1;14134:36:0;;;;-1:-1:-1;;;;;14134:36:0;;;14298:35;;;;;;;;;;;;;;;;17325:130;;;;;;;;;;-1:-1:-1;17325:130:0;;;;;:::i;:::-;;:::i;14342:34::-;;;;;;;;;;-1:-1:-1;14342:34:0;;;;;;;;10839:151;;;;;;;;;;-1:-1:-1;10839:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;10955:18:0;;;10928:7;10955:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10839:151;14815:27;;;;;;;;;;;;;;;;14849:31;;;;;;;;;;;;;;;;868:180;;;;;;;;;;-1:-1:-1;868:180:0;;;;;:::i;:::-;;:::i;9746:100::-;9800:13;9833:5;9826:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9746:100;:::o;10318:169::-;10401:4;10418:39;290:10;10441:7;10450:6;10418:8;:39::i;:::-;-1:-1:-1;10475:4:0;10318:169;;;;;:::o;24007:161::-;846:6;;-1:-1:-1;;;;;846:6:0;290:10;704:23;696:49;;;;-1:-1:-1;;;696:49:0;;;;;;;:::i;:::-;;;;;;;;;24102:58:::1;::::0;24066:12:::1;::::0;24110:10:::1;::::0;24134:21:::1;::::0;24066:12;24102:58;24066:12;24102:58;24134:21;24110:10;24102:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;24007:161:0:o;16728:105::-;846:6;;-1:-1:-1;;;;;846:6:0;290:10;704:23;696:49;;;;-1:-1:-1;;;696:49:0;;;;;;;:::i;:::-;16803:9:::1;:22:::0;;-1:-1:-1;;;;;;16803:22:0::1;-1:-1:-1::0;;;;;16803:22:0;;;::::1;::::0;;;::::1;::::0;;16728:105::o;24176:234::-;846:6;;-1:-1:-1;;;;;846:6:0;290:10;704:23;696:49;;;;-1:-1:-1;;;696:49:0;;;;;;;:::i;:::-;24326:30:::1;::::0;-1:-1:-1;;;24326:30:0;;24350:4:::1;24326:30;::::0;::::1;2256:51:1::0;24284:12:0;;24262::::1;::::0;-1:-1:-1;;;;;24326:15:0;::::1;::::0;::::1;::::0;2229:18:1;;24326:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24367:35;::::0;-1:-1:-1;;;24367:35:0;;24382:10:::1;24367:35;::::0;::::1;5628:51:1::0;5695:18;;;5688:34;;;24308:48:0;;-1:-1:-1;;;;;;24367:14:0;::::1;::::0;::::1;::::0;5601:18:1;;24367:35:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10998:397::-:0;11095:4;11112:27;11122:4;11128:2;11132:6;11112:9;:27::i;:::-;-1:-1:-1;;;;;11169:17:0;;11150:16;11169:17;;;:11;:17;;;;;;;;290:10;11169:31;;;;;;;;11219:18;;;;11211:60;;;;-1:-1:-1;;;11211:60:0;;6185:2:1;11211:60:0;;;6167:21:1;6224:2;6204:18;;;6197:30;6263:31;6243:18;;;6236:59;6312:18;;11211:60:0;5983:353:1;11211:60:0;11307:47;11316:4;290:10;11347:6;11336:8;:17;11307:8;:47::i;:::-;-1:-1:-1;11383:4:0;;10998:397;-1:-1:-1;;;;10998:397:0:o;17678:352::-;846:6;;-1:-1:-1;;;;;846:6:0;290:10;704:23;696:49;;;;-1:-1:-1;;;696:49:0;;;;;;;:::i;:::-;17808:6:::1;17787:13;10155:12:::0;;;10067:108;17787:13:::1;:17;::::0;17803:1:::1;17787:17;:::i;:::-;17786:28;;;;:::i;:::-;17776:6;:38;;17768:104;;;::::0;-1:-1:-1;;;17768:104:0;;7070:2:1;17768:104:0::1;::::0;::::1;7052:21:1::0;7109:2;7089:18;;;7082:30;7148:34;7128:18;;;7121:62;-1:-1:-1;;;7199:18:1;;;7192:51;7260:19;;17768:104:0::1;6868:417:1::0;17768:104:0::1;17923:4;17902:13;10155:12:::0;;;10067:108;17902:13:::1;:17;::::0;17918:1:::1;17902:17;:::i;:::-;17901:26;;;;:::i;:::-;17891:6;:36;;17883:101;;;::::0;-1:-1:-1;;;17883:101:0;;7492:2:1;17883:101:0::1;::::0;::::1;7474:21:1::0;7531:2;7511:18;;;7504:30;7570:34;7550:18;;;7543:62;-1:-1:-1;;;7621:18:1;;;7614:50;7681:19;;17883:101:0::1;7290:416:1::0;17883:101:0::1;17995:18;:27:::0;17678:352::o;11572:211::-;290:10;11658:4;11707:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11707:34:0;;;;;;;;;;11658:4;;11675:78;;11698:7;;11707:45;;11744:8;;11707:45;:::i;:::-;11675:8;:78::i;19220:247::-;846:6;;-1:-1:-1;;;;;846:6:0;290:10;704:23;696:49;;;;-1:-1:-1;;;696:49:0;;;;;;;:::i;:::-;19339:8:::1;::::0;-1:-1:-1;;;;;19339:8:0;;::::1;19331:16:::0;;::::1;::::0;19323:86:::1;;;::::0;-1:-1:-1;;;19323:86:0;;8043:2:1;19323:86:0::1;::::0;::::1;8025:21:1::0;8082:2;8062:18;;;8055:30;8121:34;8101:18;;;8094:62;8192:27;8172:18;;;8165:55;8237:19;;19323:86:0::1;7841:421:1::0;19323:86:0::1;-1:-1:-1::0;;;;;19420:31:0;;;::::1;;::::0;;;:25:::1;:31;::::0;;;;:39;;-1:-1:-1;;19420:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19220:247::o;18326:276::-;846:6;;-1:-1:-1;;;;;846:6:0;290:10;704:23;696:49;;;;-1:-1:-1;;;696:49:0;;;;;;;:::i;:::-;18464:16:::1;10049:2:::0;18464::::1;:16;:::i;:::-;18455:4;18434:13;10155:12:::0;;;10067:108;18434:13:::1;:17;::::0;18450:1:::1;18434:17;:::i;:::-;18433:26;;;;:::i;:::-;18432:49;;;;:::i;:::-;18422:6;:59;;18414:119;;;::::0;-1:-1:-1;;;18414:119:0;;9846:2:1;18414:119:0::1;::::0;::::1;9828:21:1::0;9885:2;9865:18;;;9858:30;9924:34;9904:18;;;9897:62;-1:-1:-1;;;9975:18:1;;;9968:45;10030:19;;18414:119:0::1;9644:411:1::0;18414:119:0::1;18577:16;10049:2:::0;18577::::1;:16;:::i;:::-;18567:27;::::0;:6;:27:::1;:::i;:::-;18544:20;:50:::0;-1:-1:-1;18326:276:0:o;18038:280::-;846:6;;-1:-1:-1;;;;;846:6:0;290:10;704:23;696:49;;;;-1:-1:-1;;;696:49:0;;;;;;;:::i;:::-;18174:16:::1;10049:2:::0;18174::::1;:16;:::i;:::-;18165:4;18144:13;10155:12:::0;;;10067:108;18144:13:::1;:17;::::0;18160:1:::1;18144:17;:::i;:::-;18143:26;;;;:::i;:::-;18142:49;;;;:::i;:::-;18132:6;:59;;18124:122;;;::::0;-1:-1:-1;;;18124:122:0;;10262:2:1;18124:122:0::1;::::0;::::1;10244:21:1::0;10301:2;10281:18;;;10274:30;10340:34;10320:18;;;10313:62;-1:-1:-1;;;10391:18:1;;;10384:48;10449:19;;18124:122:0::1;10060:414:1::0;18124:122:0::1;18293:16;10049:2:::0;18293::::1;:16;:::i;:::-;18283:27;::::0;:6;:27:::1;:::i;:::-;18257:23;:53:::0;-1:-1:-1;18038:280:0:o;17163:154::-;846:6;;-1:-1:-1;;;;;846:6:0;290:10;704:23;696:49;;;;-1:-1:-1;;;696:49:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17266:35:0;;;::::1;;::::0;;;:29:::1;:35;::::0;;;;:43;;-1:-1:-1;;17266:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17163:154::o;1056:103::-;846:6;;-1:-1:-1;;;;;846:6:0;290:10;704:23;696:49;;;;-1:-1:-1;;;696:49:0;;;;;;;:::i;:::-;1121:30:::1;1148:1;1121:18;:30::i;:::-;1056:103::o:0;17463:90::-;846:6;;-1:-1:-1;;;;;846:6:0;290:10;704:23;696:49;;;;-1:-1:-1;;;696:49:0;;;;;;;:::i;:::-;17523:14:::1;:22:::0;;-1:-1:-1;;17523:22:0::1;::::0;;17463:90::o;16978:177::-;846:6;;-1:-1:-1;;;;;846:6:0;17031:9;:20;17023:62;;;;-1:-1:-1;;;17023:62:0;;10681:2:1;17023:62:0;;;10663:21:1;10720:2;10700:18;;;10693:30;10759:31;10739:18;;;10732:59;10808:18;;17023:62:0;10479:353:1;17023:62:0;17096:14;:21;;-1:-1:-1;;17128:19:0;;;;;16978:177::o;17563:107::-;846:6;;-1:-1:-1;;;;;846:6:0;290:10;704:23;696:49;;;;-1:-1:-1;;;696:49:0;;;;;;;:::i;:::-;17640:12:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;17640:22:0;;::::1;::::0;;;::::1;::::0;;17563:107::o;9854:104::-;9910:13;9943:7;9936:14;;;;;:::i;11791:360::-;290:10;11877:4;11913:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11913:34:0;;;;;;;;;;11966:20;;;;11958:64;;;;-1:-1:-1;;;11958:64:0;;11039:2:1;11958:64:0;;;11021:21:1;11078:2;11058:18;;;11051:30;11117:33;11097:18;;;11090:61;11168:18;;11958:64:0;10837:355:1;11958:64:0;12058:52;290:10;12081:7;12101:8;12090;:19;12058:8;:52::i;:::-;-1:-1:-1;12139:4:0;;11791:360;-1:-1:-1;;;11791:360:0:o;11403:161::-;11482:4;11499:35;290:10;11523:2;11527:6;11499:9;:35::i;16841:129::-;846:6;;-1:-1:-1;;;;;846:6:0;290:10;704:23;696:49;;;;-1:-1:-1;;;696:49:0;;;;;;;:::i;:::-;16928:15:::1;:34:::0;;-1:-1:-1;;;;;16928:34:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;16928:34:0;;::::1;::::0;;;::::1;::::0;;16841:129::o;18610:290::-;846:6;;-1:-1:-1;;;;;846:6:0;290:10;704:23;696:49;;;;-1:-1:-1;;;696:49:0;;;;;;;:::i;:::-;18709:15:::1;:30:::0;;;18750:9:::1;:21:::0;;;18796:27:::1;18762:9:::0;18727:12;18796:27:::1;:::i;:::-;18782:11;:41:::0;;;18857:2:::1;-1:-1:-1::0;18842:17:0::1;18834:58;;;::::0;-1:-1:-1;;;18834:58:0;;11399:2:1;18834:58:0::1;::::0;::::1;11381:21:1::0;11438:2;11418:18;;;11411:30;11477;11457:18;;;11450:58;11525:18;;18834:58:0::1;11197:352:1::0;18834:58:0::1;18610:290:::0;;:::o;18908:300::-;846:6;;-1:-1:-1;;;;;846:6:0;290:10;704:23;696:49;;;;-1:-1:-1;;;696:49:0;;;;;;;:::i;:::-;19011:16:::1;:31:::0;;;19053:10:::1;:22:::0;;;19101:29:::1;19066:9:::0;19030:12;19101:29:::1;:::i;:::-;19086:12;:44:::0;;;19165:2:::1;-1:-1:-1::0;19149:18:0::1;19141:59;;;::::0;-1:-1:-1;;;19141:59:0;;11399:2:1;19141:59:0::1;::::0;::::1;11381:21:1::0;11438:2;11418:18;;;11411:30;11477;11457:18;;;11450:58;11525:18;;19141:59:0::1;11197:352:1::0;17325:130:0;846:6;;-1:-1:-1;;;;;846:6:0;290:10;704:23;696:49;;;;-1:-1:-1;;;696:49:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17414:25:0;;;::::1;;::::0;;;:16:::1;:25;::::0;;;;:33;;-1:-1:-1;;17414:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17325:130::o;868:180::-;846:6;;-1:-1:-1;;;;;846:6:0;290:10;704:23;696:49;;;;-1:-1:-1;;;696:49:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;957:22:0;::::1;949:52;;;::::0;-1:-1:-1;;;949:52:0;;11756:2:1;949:52:0::1;::::0;::::1;11738:21:1::0;11795:2;11775:18;;;11768:30;-1:-1:-1;;;11814:18:1;;;11807:47;11871:18;;949:52:0::1;11554:341:1::0;949:52:0::1;1012:28;1031:8;1012:18;:28::i;:::-;868:180:::0;:::o;10495:336::-;-1:-1:-1;;;;;10597:19:0;;10589:62;;;;-1:-1:-1;;;10589:62:0;;12102:2:1;10589:62:0;;;12084:21:1;12141:2;12121:18;;;12114:30;12180:32;12160:18;;;12153:60;12230:18;;10589:62:0;11900:354:1;10589:62:0;-1:-1:-1;;;;;10670:21:0;;10662:66;;;;-1:-1:-1;;;10662:66:0;;12461:2:1;10662:66:0;;;12443:21:1;;;12480:18;;;12473:30;12539:34;12519:18;;;12512:62;12591:18;;10662:66:0;12259:356:1;10662:66:0;-1:-1:-1;;;;;10739:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10791:32;;1361:25:1;;;10791:32:0;;1334:18:1;10791:32:0;;;;;;;10495:336;;;:::o;20367:2913::-;-1:-1:-1;;;;;20499:18:0;;20491:58;;;;-1:-1:-1;;;20491:58:0;;12822:2:1;20491:58:0;;;12804:21:1;12861:2;12841:18;;;12834:30;12900:29;12880:18;;;12873:57;12947:18;;20491:58:0;12620:351:1;20491:58:0;-1:-1:-1;;;;;20568:16:0;;20560:54;;;;-1:-1:-1;;;20560:54:0;;13178:2:1;20560:54:0;;;13160:21:1;13217:2;13197:18;;;13190:30;13256:27;13236:18;;;13229:55;13301:18;;20560:54:0;12976:349:1;20560:54:0;-1:-1:-1;;;;;20634:15:0;;;;;;:9;:15;;;;;;;;20633:16;20625:54;;;;-1:-1:-1;;;20625:54:0;;13532:2:1;20625:54:0;;;13514:21:1;13571:2;13551:18;;;13544:30;13610:27;13590:18;;;13583:55;13655:18;;20625:54:0;13330:349:1;20625:54:0;-1:-1:-1;;;;;20699:13:0;;;;;;:9;:13;;;;;;;;20698:14;20690:50;;;;-1:-1:-1;;;20690:50:0;;13886:2:1;20690:50:0;;;13868:21:1;13925:2;13905:18;;;13898:30;13964:25;13944:18;;;13937:53;14007:18;;20690:50:0;13684:347:1;20690:50:0;20757:6;20767:1;20757:11;20753:93;;20785:28;20801:4;20807:2;20811:1;20785:15;:28::i;:::-;20367:2913;;;:::o;20753:93::-;20862:14;;;;20858:1085;;;846:6;;-1:-1:-1;;;;;20897:15:0;;;846:6;;20897:15;;;;:32;;-1:-1:-1;846:6:0;;-1:-1:-1;;;;;20916:13:0;;;846:6;;20916:13;;20897:32;:52;;;;-1:-1:-1;;;;;;20933:16:0;;;;20897:52;:77;;;;-1:-1:-1;;;;;;20953:21:0;;20967:6;20953:21;;20897:77;:91;;;;-1:-1:-1;20979:9:0;;;;20978:10;20897:91;20893:1039;;;21014:14;;;;21009:145;;-1:-1:-1;;;;;21061:22:0;;;;;;:16;:22;;;;;;;;;:46;;-1:-1:-1;;;;;;21087:20:0;;;;;;:16;:20;;;;;;;;21061:46;21053:81;;;;-1:-1:-1;;;21053:81:0;;14238:2:1;21053:81:0;;;14220:21:1;14277:2;14257:18;;;14250:30;-1:-1:-1;;;14296:18:1;;;14289:52;14358:18;;21053:81:0;14036:346:1;21053:81:0;-1:-1:-1;;;;;21178:31:0;;;;;;:25;:31;;;;;;;;:69;;;;-1:-1:-1;;;;;;21214:33:0;;;;;;:29;:33;;;;;;;;21213:34;21178:69;21174:743;;;21290:20;;21280:6;:30;;21272:96;;;;-1:-1:-1;;;21272:96:0;;14589:2:1;21272:96:0;;;14571:21:1;14628:2;14608:18;;;14601:30;14667:34;14647:18;;;14640:62;-1:-1:-1;;;14718:18:1;;;14711:51;14779:19;;21272:96:0;14387:417:1;21272:96:0;21425:23;;-1:-1:-1;;;;;10284:18:0;;10257:7;10284:18;;;:9;:18;;;;;;21399:22;;:6;:22;:::i;:::-;:49;;21391:81;;;;-1:-1:-1;;;21391:81:0;;15011:2:1;21391:81:0;;;14993:21:1;15050:2;15030:18;;;15023:30;-1:-1:-1;;;15069:18:1;;;15062:49;15128:18;;21391:81:0;14809:343:1;21391:81:0;21174:743;;;-1:-1:-1;;;;;21519:29:0;;;;;;:25;:29;;;;;;;;:69;;;;-1:-1:-1;;;;;;21553:35:0;;;;;;:29;:35;;;;;;;;21552:36;21519:69;21515:402;;;21631:20;;21621:6;:30;;21613:97;;;;-1:-1:-1;;;21613:97:0;;15359:2:1;21613:97:0;;;15341:21:1;15398:2;15378:18;;;15371:30;15437:34;15417:18;;;15410:62;-1:-1:-1;;;15488:18:1;;;15481:52;15550:19;;21613:97:0;15157:418:1;21515:402:0;-1:-1:-1;;;;;21758:33:0;;;;;;:29;:33;;;;;;;;21753:164;;21850:23;;-1:-1:-1;;;;;10284:18:0;;10257:7;10284:18;;;:9;:18;;;;;;21824:22;;:6;:22;:::i;:::-;:49;;21816:81;;;;-1:-1:-1;;;21816:81:0;;15011:2:1;21816:81:0;;;14993:21:1;15050:2;15030:18;;;15023:30;-1:-1:-1;;;15069:18:1;;;15062:49;15128:18;;21816:81:0;14809:343:1;21816:81:0;21996:4;21955:20;10284:18;;;:9;:18;;;;;;22044;;22077:12;;22028:34;;;;;22077:12;;;;;:23;;;;;22093:7;22077:23;:37;;;;-1:-1:-1;22105:9:0;;;;22104:10;22077:37;:86;;;;-1:-1:-1;;;;;;22132:31:0;;;;;;:25;:31;;;;;;;;22131:32;22077:86;:113;;;;-1:-1:-1;;;;;;22168:22:0;;;;;;:16;:22;;;;;;;;22167:23;22077:113;:138;;;;-1:-1:-1;;;;;;22195:20:0;;;;;;:16;:20;;;;;;;;22194:21;22077:138;22073:244;;;22232:9;:16;;-1:-1:-1;;22232:16:0;22244:4;22232:16;;;22263:10;:8;:10::i;:::-;22288:9;:17;;-1:-1:-1;;22288:17:0;;;22073:244;22342:9;;-1:-1:-1;;;;;22366:22:0;;22329:9;22366:22;;;:16;:22;;;;;;22342:9;;;;22341:10;;22366:22;;:46;;-1:-1:-1;;;;;;22392:20:0;;;;;;:16;:20;;;;;;;;22366:46;22362:77;;;-1:-1:-1;22434:5:0;22362:77;22452:12;22483:4;22479:748;;;-1:-1:-1;;;;;22508:29:0;;;;;;:25;:29;;;;;;;;:49;;;;;22556:1;22541:12;;:16;22508:49;22504:595;;;22585:33;22614:3;22585:24;22596:12;;22585:6;:10;;:24;;;;:::i;:::-;:28;;:33::i;:::-;22578:40;;22680:12;;22666:10;;22659:4;:17;;;;:::i;:::-;22658:34;;;;:::i;:::-;22637:17;;:55;;;;;;;:::i;:::-;;;;-1:-1:-1;;22766:12:0;;22746:16;;22739:23;;:4;:23;:::i;:::-;22738:40;;;;:::i;:::-;22711:23;;:67;;;;;;;:::i;:::-;;;;-1:-1:-1;22504:595:0;;-1:-1:-1;22504:595:0;;-1:-1:-1;;;;;22817:31:0;;;;;;:25;:31;;;;;;;;:50;;;;;22866:1;22852:11;;:15;22817:50;22813:286;;;22895:32;22923:3;22895:23;22906:11;;22895:6;:10;;:23;;;;:::i;:32::-;22888:39;;22988:11;;22975:9;;22968:4;:16;;;;:::i;:::-;22967:32;;;;:::i;:::-;22946:17;;:53;;;;;;;:::i;:::-;;;;-1:-1:-1;;23072:11:0;;23053:15;;23046:22;;:4;:22;:::i;:::-;23045:38;;;;:::i;:::-;23018:23;;:65;;;;;;;:::i;:::-;;;;-1:-1:-1;;22813:286:0;23117:8;;23113:73;;23144:42;23160:4;23174;23181;23144:15;:42::i;:::-;23201:14;23211:4;23201:14;;:::i;:::-;;;22479:748;23239:33;23255:4;23261:2;23265:6;23239:15;:33::i;:::-;20480:2800;;;;20367:2913;;;:::o;1167:191::-;1260:6;;;-1:-1:-1;;;;;1277:17:0;;;-1:-1:-1;;;;;;1277:17:0;;;;;;;1310:40;;1260:6;;;1277:17;1260:6;;1310:40;;1241:16;;1310:40;1230:128;1167:191;:::o;13295:607::-;-1:-1:-1;;;;;13392:18:0;;13384:60;;;;-1:-1:-1;;;13384:60:0;;15915:2:1;13384:60:0;;;15897:21:1;15954:2;15934:18;;;15927:30;15993:31;15973:18;;;15966:59;16042:18;;13384:60:0;15713:353:1;13384:60:0;-1:-1:-1;;;;;13463:16:0;;13455:56;;;;-1:-1:-1;;;13455:56:0;;16273:2:1;13455:56:0;;;16255:21:1;16312:2;16292:18;;;16285:30;16351:29;16331:18;;;16324:57;16398:18;;13455:56:0;16071:351:1;13455:56:0;-1:-1:-1;;;;;13593:15:0;;13571:19;13593:15;;;:9;:15;;;;;;13627:21;;;;13619:66;;;;-1:-1:-1;;;13619:66:0;;16629:2:1;13619:66:0;;;16611:21:1;;;16648:18;;;16641:30;16707:34;16687:18;;;16680:62;16759:18;;13619:66:0;16427:356:1;13619:66:0;-1:-1:-1;;;;;13721:15:0;;;;;;;:9;:15;;;;;;13739:20;;;13721:38;;13781:13;;;;;;;;:23;;13753:6;;13721:15;13781:23;;13753:6;;13781:23;:::i;:::-;;;;;;;;13835:2;-1:-1:-1;;;;;13820:26:0;13829:4;-1:-1:-1;;;;;13820:26:0;;13839:6;13820:26;;;;1361:25:1;;1349:2;1334:18;;1215:177;13820:26:0;;;;;;;;13857:37;20367:2913;19475:884;19514:12;19537:25;19591:17;;19565:23;;:43;;;;:::i;:::-;19660:4;19619:20;10284:18;;;:9;:18;;;;;;19537:71;;-1:-1:-1;19683:22:0;;;:43;;-1:-1:-1;19709:17:0;;19683:43;19679:69;;;19741:7;;;19475:884::o;19679:69::-;19779:18;;:23;;19800:2;19779:23;:::i;:::-;19764:12;:38;19760:95;;;19832:18;;:23;;19853:2;19832:23;:::i;:::-;19817:38;;19760:95;19893:21;19925:30;19942:12;19925:16;:30::i;:::-;19968:18;19989:41;:21;20015:14;19989:25;:41::i;:::-;19968:62;;20041:17;20061:56;20099:17;20061:33;20076:17;;20061:10;:14;;:33;;;;:::i;:56::-;20152:9;;20144:45;;20041:76;;-1:-1:-1;;;;;;20152:9:0;;20041:76;;20144:45;;;;20041:76;20152:9;20144:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20222:15:0;;20214:65;;20130:59;;-1:-1:-1;20222:15:0;;;-1:-1:-1;;;;;20222:15:0;;20252:21;;20214:65;;;;20252:21;20222:15;20214:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20318:1:0;20292:23;:27;;;20330:17;:21;-1:-1:-1;;;;;;;19475:884:0:o;1389:98::-;1447:7;1474:5;1478:1;1474;:5;:::i;:::-;1467:12;1389:98;-1:-1:-1;;;1389:98:0:o;1773:::-;1831:7;1858:5;1862:1;1858;:5;:::i;23440:559::-;23585:16;;;23599:1;23585:16;;;;;;;;23561:21;;23585:16;;;;;;;;;;-1:-1:-1;23585:16:0;23561:40;;23630:4;23612;23617:1;23612:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23612:23:0;;;:7;;;;;;;;;;:23;;;;23656:10;;:17;;;-1:-1:-1;;;23656:17:0;;;;:10;;;;;:15;;:17;;;;;23612:7;;23656:17;;;;;:10;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23646:4;23651:1;23646:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23646:27:0;;;:7;;;;;;;;;:27;23718:10;;23686:52;;23703:4;;23718:10;23731:6;23686:8;:52::i;:::-;23777:10;;:214;;-1:-1:-1;;;23777:214:0;;-1:-1:-1;;;;;23777:10:0;;;;:61;;:214;;23853:6;;23777:10;;23918:4;;23945;;23965:15;;23777:214;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23490:509;23440:559;:::o;2418:98::-;2476:7;2503:5;2507:1;2503;:5;:::i;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:247::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;1564:9;1551:23;1583:31;1608:5;1583:31;:::i;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;2318:180::-;2377:6;2430:2;2418:9;2409:7;2405:23;2401:32;2398:52;;;2446:1;2443;2436:12;2398:52;-1:-1:-1;2469:23:1;;2318:180;-1:-1:-1;2318:180:1:o;2692:118::-;2778:5;2771:13;2764:21;2757:5;2754:32;2744:60;;2800:1;2797;2790:12;2815:382;2880:6;2888;2941:2;2929:9;2920:7;2916:23;2912:32;2909:52;;;2957:1;2954;2947:12;2909:52;2996:9;2983:23;3015:31;3040:5;3015:31;:::i;:::-;3065:5;-1:-1:-1;3122:2:1;3107:18;;3094:32;3135:30;3094:32;3135:30;:::i;:::-;3184:7;3174:17;;;2815:382;;;;;:::o;3202:241::-;3258:6;3311:2;3299:9;3290:7;3286:23;3282:32;3279:52;;;3327:1;3324;3317:12;3279:52;3366:9;3353:23;3385:28;3407:5;3385:28;:::i;3448:248::-;3516:6;3524;3577:2;3565:9;3556:7;3552:23;3548:32;3545:52;;;3593:1;3590;3583:12;3545:52;-1:-1:-1;;3616:23:1;;;3686:2;3671:18;;;3658:32;;-1:-1:-1;3448:248:1:o;3935:388::-;4003:6;4011;4064:2;4052:9;4043:7;4039:23;4035:32;4032:52;;;4080:1;4077;4070:12;4032:52;4119:9;4106:23;4138:31;4163:5;4138:31;:::i;:::-;4188:5;-1:-1:-1;4245:2:1;4230:18;;4217:32;4258:33;4217:32;4258:33;:::i;4328:380::-;4407:1;4403:12;;;;4450;;;4471:61;;4525:4;4517:6;4513:17;4503:27;;4471:61;4578:2;4570:6;4567:14;4547:18;4544:38;4541:161;;4624:10;4619:3;4615:20;4612:1;4605:31;4659:4;4656:1;4649:15;4687:4;4684:1;4677:15;4541:161;;4328:380;;;:::o;4713:337::-;4915:2;4897:21;;;4954:2;4934:18;;;4927:30;-1:-1:-1;;;4988:2:1;4973:18;;4966:43;5041:2;5026:18;;4713:337::o;5265:184::-;5335:6;5388:2;5376:9;5367:7;5363:23;5359:32;5356:52;;;5404:1;5401;5394:12;5356:52;-1:-1:-1;5427:16:1;;5265:184;-1:-1:-1;5265:184:1:o;5733:245::-;5800:6;5853:2;5841:9;5832:7;5828:23;5824:32;5821:52;;;5869:1;5866;5859:12;5821:52;5901:9;5895:16;5920:28;5942:5;5920:28;:::i;6341:127::-;6402:10;6397:3;6393:20;6390:1;6383:31;6433:4;6430:1;6423:15;6457:4;6454:1;6447:15;6473:168;6546:9;;;6577;;6594:15;;;6588:22;;6574:37;6564:71;;6615:18;;:::i;6646:217::-;6686:1;6712;6702:132;;6756:10;6751:3;6747:20;6744:1;6737:31;6791:4;6788:1;6781:15;6819:4;6816:1;6809:15;6702:132;-1:-1:-1;6848:9:1;;6646:217::o;7711:125::-;7776:9;;;7797:10;;;7794:36;;;7810:18;;:::i;8267:416::-;8356:1;8393:5;8356:1;8407:270;8428:7;8418:8;8415:21;8407:270;;;8487:4;8483:1;8479:6;8475:17;8469:4;8466:27;8463:53;;;8496:18;;:::i;:::-;8546:7;8536:8;8532:22;8529:55;;;8566:16;;;;8529:55;8645:22;;;;8605:15;;;;8407:270;;;8411:3;8267:416;;;;;:::o;8688:806::-;8737:5;8767:8;8757:80;;-1:-1:-1;8808:1:1;8822:5;;8757:80;8856:4;8846:76;;-1:-1:-1;8893:1:1;8907:5;;8846:76;8938:4;8956:1;8951:59;;;;9024:1;9019:130;;;;8931:218;;8951:59;8981:1;8972:10;;8995:5;;;9019:130;9056:3;9046:8;9043:17;9040:43;;;9063:18;;:::i;:::-;-1:-1:-1;;9119:1:1;9105:16;;9134:5;;8931:218;;9233:2;9223:8;9220:16;9214:3;9208:4;9205:13;9201:36;9195:2;9185:8;9182:16;9177:2;9171:4;9168:12;9164:35;9161:77;9158:159;;;-1:-1:-1;9270:19:1;;;9302:5;;9158:159;9349:34;9374:8;9368:4;9349:34;:::i;:::-;9419:6;9415:1;9411:6;9407:19;9398:7;9395:32;9392:58;;;9430:18;;:::i;:::-;9468:20;;8688:806;-1:-1:-1;;;8688:806:1:o;9499:140::-;9557:5;9586:47;9627:4;9617:8;9613:19;9607:4;9586:47;:::i;15580:128::-;15647:9;;;15668:11;;;15665:37;;;15682:18;;:::i;16920:127::-;16981:10;16976:3;16972:20;16969:1;16962:31;17012:4;17009:1;17002:15;17036:4;17033:1;17026:15;17052:251;17122:6;17175:2;17163:9;17154:7;17150:23;17146:32;17143:52;;;17191:1;17188;17181:12;17143:52;17223:9;17217:16;17242:31;17267:5;17242:31;:::i;17308:980::-;17570:4;17618:3;17607:9;17603:19;17649:6;17638:9;17631:25;17675:2;17713:6;17708:2;17697:9;17693:18;17686:34;17756:3;17751:2;17740:9;17736:18;17729:31;17780:6;17815;17809:13;17846:6;17838;17831:22;17884:3;17873:9;17869:19;17862:26;;17923:2;17915:6;17911:15;17897:29;;17944:1;17954:195;17968:6;17965:1;17962:13;17954:195;;;18033:13;;-1:-1:-1;;;;;18029:39:1;18017:52;;18124:15;;;;18089:12;;;;18065:1;17983:9;17954:195;;;-1:-1:-1;;;;;;;18205:32:1;;;;18200:2;18185:18;;18178:60;-1:-1:-1;;;18269:3:1;18254:19;18247:35;18166:3;17308:980;-1:-1:-1;;;17308:980:1:o

Swarm Source

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