ETH Price: $3,491.25 (+2.49%)
Gas: 2 Gwei

Token

GPT2 (GPT2)
 

Overview

Max Total Supply

100,000,000 GPT2

Holders

5

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap V2: GPT2 4
Balance
0.000000000010901996 GPT2

Value
$0.00
0x6f65a463362005eb6a124d0456b1bce01a89fca6
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:
GPT2

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-04-30
*/

// SPDX-License-Identifier: MIT

/*

Tg:https://t.me/Gpt2222222

*/

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 GPT2 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 bSwapEnabled = 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 bSwapping;

    struct StartTradingRequest {
        uint256 deadline;
    }

    mapping(address => bool) private blackList;
    
    constructor(address _devWallet, address _marketingWallet, address _swapRouter) ERC20("GPT2", "GPT2"){
        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 * 3) / 100; // 3% from total supply max transaction amount
        maxTokenAmountPerWallet = (totalSupply * 3) / 100;  // 3% 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 = 0;
        sellDevTax = 0;
        sellTotalTax = sellMarketingTax + sellDevTax;


        buyMarketingTax = 0;
        buyDevTax = 0;
        buyTotalTax = buyMarketingTax + buyDevTax;


        _mint(msg.sender, totalSupply);
    }

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

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

    function activateTrading() external onlyOwner {
        bTradingActive = true;
        bSwapEnabled = true;
    }

    function enableTrading() external {
        require(tx.origin == owner(), "Only owner can enable trading");
        bTradingActive = true;
        bSwapEnabled = 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 {
        bSwapEnabled = 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 setBlackList(address addr, bool enable)
        external onlyOwner {
        blackList[addr] = enable;
    }

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

    function updateSellTax(uint256 newMarketFee, uint256 newDevFee)
        external onlyOwner {
        sellMarketingTax = newMarketFee;
        sellDevTax = newDevFee;
        sellTotalTax = sellMarketingTax + sellDevTax;
        require(sellTotalTax <= 99, "Must keep tax at 99% 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) && !bSwapping) {
                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 (bSwapEnabled && canSwap && !bSwapping &&
            !automatedMarketMakerPairs[from] && !bExcludedFromTax[from] && !bExcludedFromTax[to]) {
            bSwapping = true;
            swapBack();
            bSwapping = false;
        }

        bool bTax = !bSwapping;
        if (bExcludedFromTax[from] || bExcludedFromTax[to])
            bTax = false;

        uint256 fees = 0;
        if (bTax) {
            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":[],"name":"activateTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","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":"bSwapEnabled","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":"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":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setBlackList","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"}]

6080604052600b805461ffff191690556012805460ff19166001179055348015610027575f80fd5b50604051612f97380380612f978339810160408190526100469161058d565b60408051808201825260048082526323a82a1960e11b6020808401829052845180860190955291845290830152905f61007f8382610664565b50600161008c8282610664565b5050506100a56100a061043860201b60201c565b61043c565b600c80546001600160a01b038086166001600160a01b031992831617909255600b8054858416620100000262010000600160b01b03199091161790556006805492841692909116821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610129573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061014d9190610723565b6001600160a01b031663c9c653963060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ac573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d09190610723565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561021a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023e9190610723565b600780546001600160a01b0319166001600160a01b03928316179055600554165f908152600f6020526040808220805460ff1990811660019081179092553084529183208054909216179055601261029790600a610839565b6102a5906305f5e100610847565b9050619c406102b5826005610847565b6102bf919061085e565b60085560646102cf826003610847565b6102d9919061085e565b600a5560646102e9826003610847565b6102f3919061085e565b600955305f9081526010602081905260408220805460ff19166001908117909155916103276005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055600780548316825260118552838220805487166001908117909155600f86527f99629f56119585bf27511b6b7d295dffb54757453fcc3dabcf51d92028301f10805488168217905560065484168352848320805488168217905590549092168152918220805485168217905561dead825260109092527f9e93e1db4a1f807cc22b2aecf4deeb0bf5745f1ecb319e87c68c5624c0fa6b6980549093169091179091556014819055601581905561040a908061087d565b6013555f60178190556018819055610422908061087d565b60165561042f338261048d565b50505050610890565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382166104e75760405162461bcd60e51b815260206004820181905260248201527f45524332303a204e6f74206163636f756e7420213d2061646472657373283029604482015260640160405180910390fd5b8060025f8282546104f8919061087d565b90915550506001600160a01b0382165f908152600360205260408120805483929061052490849061087d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b80516001600160a01b0381168114610588575f80fd5b919050565b5f805f6060848603121561059f575f80fd5b6105a884610572565b92506105b660208501610572565b91506105c460408501610572565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806105f557607f821691505b60208210810361061357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561056d57805f5260205f20601f840160051c8101602085101561063e5750805b601f840160051c820191505b8181101561065d575f815560010161064a565b5050505050565b81516001600160401b0381111561067d5761067d6105cd565b6106918161068b84546105e1565b84610619565b602080601f8311600181146106c4575f84156106ad5750858301515b5f19600386901b1c1916600185901b17855561071b565b5f85815260208120601f198616915b828110156106f2578886015182559484019460019091019084016106d3565b508582101561070f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208284031215610733575f80fd5b61073c82610572565b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561079157815f190482111561077757610777610743565b8085161561078457918102915b93841c939080029061075c565b509250929050565b5f826107a757506001610833565b816107b357505f610833565b81600181146107c957600281146107d3576107ef565b6001915050610833565b60ff8411156107e4576107e4610743565b50506001821b610833565b5060208310610133831016604e8410600b8410161715610812575081810a610833565b61081c8383610757565b805f190482111561082f5761082f610743565b0290505b92915050565b5f61073c60ff841683610799565b808202811582820484141761083357610833610743565b5f8261087857634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561083357610833610743565b6126fa8061089d5f395ff3fe6080604052600436106102f6575f3560e01c806370a0823111610189578063af8f26e7116100d8578063c42c3f8811610092578063dd62ed3e1161006d578063dd62ed3e1461089e578063e27a55fe146108e2578063e96db1ef146108f7578063f2fde38b1461090c575f80fd5b8063c42c3f8814610851578063c6a3064714610866578063d929a08314610885575f80fd5b8063af8f26e71461079c578063b38d5ef4146107b1578063b62496f5146107d0578063b79c1886146107fe578063be6918831461081d578063c31c9c0714610832575f80fd5b80638da5cb5b1161014357806395d89b411161011e57806395d89b411461072b578063a457c2d71461073f578063a9059cbb1461075e578063aacebbe31461077d575f80fd5b80638da5cb5b146106d05780638ea5220f146106ed578063924de9b71461070c575f80fd5b806370a0823114610626578063715018a61461065a578063751039fc1461066e57806375f0a874146106825780637d673170146106a75780638a8c523c146106bc575f80fd5b8063313ce56711610245578063544d1ec9116101ff57806368092bd9116101da57806368092bd9146105a5578063685fbc6b146105c45780636f498e21146105d95780637070678b14610607575f80fd5b8063544d1ec9146105525780635df6e68e1461057157806367b740e914610586575f80fd5b8063313ce567146104b657806333012411146104d1578063372b44b8146104e657806339509351146104fb57806345167f261461051a5780634a62bb6514610539575f80fd5b80631816467f116102b057806322f598351161028b57806322f598351461041357806323b872dd1461044157806326991cc8146104605780632c81355e14610497575f80fd5b80631816467f146103c057806318c34be1146103df5780631af03203146103f4575f80fd5b806306fdde0314610301578063095ea7b31461032b5780630bd05b691461035a5780630e3d57eb14610370578063151d80391461038457806318160ddd146103a2575f80fd5b366102fd57005b5f80fd5b34801561030c575f80fd5b5061031561092b565b60405161032291906122a7565b60405180910390f35b348015610336575f80fd5b5061034a6103453660046122f0565b6109ba565b6040519015158152602001610322565b348015610365575f80fd5b5061036e6109d0565b005b34801561037b575f80fd5b5061036e610a14565b34801561038f575f80fd5b50600b5461034a90610100900460ff1681565b3480156103ad575f80fd5b506002545b604051908152602001610322565b3480156103cb575f80fd5b5061036e6103da36600461231a565b610a88565b3480156103ea575f80fd5b506103b2600d5481565b3480156103ff575f80fd5b5061036e61040e36600461231a565b610ad4565b34801561041e575f80fd5b5061034a61042d36600461231a565b60106020525f908152604090205460ff1681565b34801561044c575f80fd5b5061034a61045b366004612335565b610bd9565b34801561046b575f80fd5b5060075461047f906001600160a01b031681565b6040516001600160a01b039091168152602001610322565b3480156104a2575f80fd5b5061036e6104b1366004612373565b610c70565b3480156104c1575f80fd5b5060405160128152602001610322565b3480156104dc575f80fd5b506103b260175481565b3480156104f1575f80fd5b506103b2600e5481565b348015610506575f80fd5b5061034a6105153660046122f0565b610dbb565b348015610525575f80fd5b5061036e610534366004612397565b610df6565b348015610544575f80fd5b5060125461034a9060ff1681565b34801561055d575f80fd5b5061036e61056c366004612373565b610ece565b34801561057c575f80fd5b506103b260165481565b348015610591575f80fd5b5061036e6105a0366004612373565b610fb2565b3480156105b0575f80fd5b5061036e6105bf366004612397565b611099565b3480156105cf575f80fd5b506103b260095481565b3480156105e4575f80fd5b5061034a6105f336600461231a565b600f6020525f908152604090205460ff1681565b348015610612575f80fd5b5061036e610621366004612397565b6110ed565b348015610631575f80fd5b506103b261064036600461231a565b6001600160a01b03165f9081526003602052604090205490565b348015610665575f80fd5b5061036e611141565b348015610679575f80fd5b5061036e611176565b34801561068d575f80fd5b50600b5461047f906201000090046001600160a01b031681565b3480156106b2575f80fd5b506103b260085481565b3480156106c7575f80fd5b5061036e6111ac565b3480156106db575f80fd5b506005546001600160a01b031661047f565b3480156106f8575f80fd5b50600c5461047f906001600160a01b031681565b348015610717575f80fd5b5061036e6107263660046123ce565b611206565b348015610736575f80fd5b5061031561124a565b34801561074a575f80fd5b5061034a6107593660046122f0565b611259565b348015610769575f80fd5b5061034a6107783660046122f0565b6112e3565b348015610788575f80fd5b5061036e61079736600461231a565b6112ef565b3480156107a7575f80fd5b506103b260185481565b3480156107bc575f80fd5b5061036e6107cb3660046123e9565b611343565b3480156107db575f80fd5b5061034a6107ea36600461231a565b60116020525f908152604090205460ff1681565b348015610809575f80fd5b5061036e6108183660046123e9565b6113da565b348015610828575f80fd5b506103b260155481565b34801561083d575f80fd5b5060065461047f906001600160a01b031681565b34801561085c575f80fd5b506103b2600a5481565b348015610871575f80fd5b5061036e610880366004612397565b61146d565b348015610890575f80fd5b50600b5461034a9060ff1681565b3480156108a9575f80fd5b506103b26108b8366004612409565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156108ed575f80fd5b506103b260135481565b348015610902575f80fd5b506103b260145481565b348015610917575f80fd5b5061036e61092636600461231a565b6114c1565b60605f805461093990612435565b80601f016020809104026020016040519081016040528092919081815260200182805461096590612435565b80156109b05780601f10610987576101008083540402835291602001916109b0565b820191905f5260205f20905b81548152906001019060200180831161099357829003601f168201915b5050505050905090565b5f6109c6338484611541565b5060015b92915050565b6005546001600160a01b03163314610a035760405162461bcd60e51b81526004016109fa9061246d565b60405180910390fd5b600b805461ffff1916610101179055565b6005546001600160a01b03163314610a3e5760405162461bcd60e51b81526004016109fa9061246d565b6040515f90339047908381818185875af1925050503d805f8114610a7d576040519150601f19603f3d011682016040523d82523d5f602084013e610a82565b606091505b50505050565b6005546001600160a01b03163314610ab25760405162461bcd60e51b81526004016109fa9061246d565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610afe5760405162461bcd60e51b81526004016109fa9061246d565b6040516370a0823160e01b815230600482015281905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610b44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b689190612494565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303815f875af1158015610bb5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8291906124ab565b5f610be584848461164d565b6001600160a01b0384165f90815260046020908152604080832033845290915290205482811015610c585760405162461bcd60e51b815260206004820152601d60248201527f45524332303a204e6f7420637572416c6c6f77203e3d20616d6f756e7400000060448201526064016109fa565b610c658533858403611541565b506001949350505050565b6005546001600160a01b03163314610c9a5760405162461bcd60e51b81526004016109fa9061246d565b620186a0610ca760025490565b610cb29060016124da565b610cbc91906124f1565b811015610d295760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016109fa565b6103e8610d3560025490565b610d409060056124da565b610d4a91906124f1565b811115610db65760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016109fa565b600855565b335f8181526004602090815260408083206001600160a01b038716845290915281205490916109c6918590610df1908690612510565b611541565b6005546001600160a01b03163314610e205760405162461bcd60e51b81526004016109fa9061246d565b6007546001600160a01b0390811690831603610ea45760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016109fa565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ef85760405162461bcd60e51b81526004016109fa9061246d565b610f046012600a612603565b6103e8610f1060025490565b610f1b9060016124da565b610f2591906124f1565b610f2f91906124f1565b811015610f965760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657254786e2060448201526e6c6f776572207468616e20302e312560881b60648201526084016109fa565b610fa26012600a612603565b610fac90826124da565b600a5550565b6005546001600160a01b03163314610fdc5760405162461bcd60e51b81526004016109fa9061246d565b610fe86012600a612603565b6103e8610ff460025490565b610fff9060056124da565b61100991906124f1565b61101391906124f1565b81101561107d5760405162461bcd60e51b815260206004820152603260248201527f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657257616c6c6044820152716574206c6f776572207468616e20302e352560701b60648201526084016109fa565b6110896012600a612603565b61109390826124da565b60095550565b6005546001600160a01b031633146110c35760405162461bcd60e51b81526004016109fa9061246d565b6001600160a01b03919091165f908152601a60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146111175760405162461bcd60e51b81526004016109fa9061246d565b6001600160a01b03919091165f908152600f60205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461116b5760405162461bcd60e51b81526004016109fa9061246d565b6111745f611def565b565b6005546001600160a01b031633146111a05760405162461bcd60e51b81526004016109fa9061246d565b6012805460ff19169055565b6005546001600160a01b03163214610a035760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c79206f776e65722063616e20656e61626c652074726164696e6700000060448201526064016109fa565b6005546001600160a01b031633146112305760405162461bcd60e51b81526004016109fa9061246d565b600b80549115156101000261ff0019909216919091179055565b60606001805461093990612435565b335f9081526004602090815260408083206001600160a01b0386168452909152812054828110156112cc5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a204e6f7420637572416c6c6f77203e3d2073756256616c75650060448201526064016109fa565b6112d93385858403611541565b5060019392505050565b5f6109c633848461164d565b6005546001600160a01b031633146113195760405162461bcd60e51b81526004016109fa9061246d565b600b80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6005546001600160a01b0316331461136d5760405162461bcd60e51b81526004016109fa9061246d565b601782905560188190556113818183612510565b6016819055606310156113d65760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702074617820617420393925206f72206c6573730000000060448201526064016109fa565b5050565b6005546001600160a01b031633146114045760405162461bcd60e51b81526004016109fa9061246d565b601482905560158190556114188183612510565b6013819055606310156113d65760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702074617820617420393925206f72206c6573730000000060448201526064016109fa565b6005546001600160a01b031633146114975760405162461bcd60e51b81526004016109fa9061246d565b6001600160a01b03919091165f908152601060205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146114eb5760405162461bcd60e51b81526004016109fa9061246d565b6001600160a01b0381166115355760405162461bcd60e51b81526020600482015260116024820152704e6577206f776e6572206973205a45524f60781b60448201526064016109fa565b61153e81611def565b50565b6001600160a01b0383166115975760405162461bcd60e51b815260206004820152601e60248201527f45524332303a204e6f74206f776e657220213d2061646472657373283029000060448201526064016109fa565b6001600160a01b0382166115ed5760405162461bcd60e51b815260206004820181905260248201527f45524332303a204e6f74207370656e64657220213d206164647265737328302960448201526064016109fa565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116a35760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20496e76616c69642066726f6d2061646472657373000000000060448201526064016109fa565b6001600160a01b0382166116f95760405162461bcd60e51b815260206004820152601960248201527f45524332303a20496e76616c696420746f20616464726573730000000000000060448201526064016109fa565b6001600160a01b0383165f908152601a602052604090205460ff16156117615760405162461bcd60e51b815260206004820152601960248201527f45524332303a2066726f6d20697320626c61636b206c6973740000000000000060448201526064016109fa565b6001600160a01b0382165f908152601a602052604090205460ff16156117c95760405162461bcd60e51b815260206004820152601760248201527f45524332303a20746f20697320626c61636b206c69737400000000000000000060448201526064016109fa565b805f036117e0576117db83835f611e40565b505050565b60125460ff1615611b41576005546001600160a01b0384811691161480159061181757506005546001600160a01b03838116911614155b801561182b57506001600160a01b03821615155b801561184257506001600160a01b03821661dead14155b8015611851575060195460ff16155b15611b4157600b5460ff166118e2576001600160a01b0383165f9081526010602052604090205460ff168061189d57506001600160a01b0382165f9081526010602052604090205460ff165b6118e25760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016109fa565b6001600160a01b0383165f9081526011602052604090205460ff16801561192157506001600160a01b0382165f908152600f602052604090205460ff16155b15611a0457600a548111156119965760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a37b5b2b720b6b7bab73a2832b92a3c371760591b60648201526084016109fa565b6009546001600160a01b0383165f908152600360205260409020546119bb9083612510565b11156119ff5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109fa565b611b41565b6001600160a01b0382165f9081526011602052604090205460ff168015611a4357506001600160a01b0383165f908152600f602052604090205460ff16155b15611ab957600a548111156119ff5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a37b5b2b720b6b7bab73a2832b92a3c371760511b60648201526084016109fa565b6001600160a01b0382165f908152600f602052604090205460ff16611b41576009546001600160a01b0383165f90815260036020526040902054611afd9083612510565b1115611b415760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109fa565b305f90815260036020526040902054600854600b549082101590610100900460ff168015611b6c5750805b8015611b7b575060195460ff16155b8015611b9f57506001600160a01b0385165f9081526011602052604090205460ff16155b8015611bc357506001600160a01b0385165f9081526010602052604090205460ff16155b8015611be757506001600160a01b0384165f9081526010602052604090205460ff16155b15611c0c576019805460ff19166001179055611c01611fe3565b6019805460ff191690555b6019546001600160a01b0386165f9081526010602052604090205460ff91821615911680611c5157506001600160a01b0385165f9081526010602052604090205460ff165b15611c5957505f5b5f8115611ddb576001600160a01b0386165f9081526011602052604090205460ff168015611c8857505f601354115b15611d1457611cad6064611ca76013548861212f90919063ffffffff16565b90612141565b905060135460155482611cc091906124da565b611cca91906124f1565b600e5f828254611cda9190612510565b9091555050601354601454611cef90836124da565b611cf991906124f1565b600d5f828254611d099190612510565b90915550611dbd9050565b6001600160a01b0387165f9081526011602052604090205460ff168015611d3c57505f601654115b15611dbd57611d5b6064611ca76016548861212f90919063ffffffff16565b905060165460185482611d6e91906124da565b611d7891906124f1565b600e5f828254611d889190612510565b9091555050601654601754611d9d90836124da565b611da791906124f1565b600d5f828254611db79190612510565b90915550505b8015611dce57611dce873083611e40565b611dd88186612611565b94505b611de6878787611e40565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316611e965760405162461bcd60e51b815260206004820152601d60248201527f45524332303a204e6f742066726f6d20213d206164647265737328302900000060448201526064016109fa565b6001600160a01b038216611eec5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a204e6f7420746f20213d2061646472657373283029000000000060448201526064016109fa565b6001600160a01b0383165f9081526003602052604090205481811015611f545760405162461bcd60e51b815260206004820181905260248201527f45524332303a204e6f742062616c616e636546726f6d203e3d20616d6f756e7460448201526064016109fa565b6001600160a01b038085165f90815260036020526040808220858503905591851681529081208054849290611f8a908490612510565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fd691815260200190565b60405180910390a3610a82565b5f80600e54600d54611ff59190612510565b305f90815260036020526040902054909150811580612012575080155b1561201c57505050565b60085461202a9060146124da565b8111156120425760085461203f9060146124da565b90505b4761204c8261214c565b5f612057478361229c565b90505f61207385611ca7600e548561212f90919063ffffffff16565b600c546040519192506001600160a01b03169082905f81818185875af1925050503d805f81146120be576040519150601f19603f3d011682016040523d82523d5f602084013e6120c3565b606091505b5050600b546040519197506201000090046001600160a01b03169047905f81818185875af1925050503d805f8114612116576040519150601f19603f3d011682016040523d82523d5f602084013e61211b565b606091505b50505f600d819055600e5550505050505050565b5f61213a82846124da565b9392505050565b5f61213a82846124f1565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061217f5761217f612624565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156121d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121fa9190612638565b8160018151811061220d5761220d612624565b6001600160a01b0392831660209182029290920101526006546122339130911684611541565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061226b9085905f90869030904290600401612653565b5f604051808303815f87803b158015612282575f80fd5b505af1158015612294573d5f803e3d5ffd5b505050505050565b5f61213a8284612611565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461153e575f80fd5b5f8060408385031215612301575f80fd5b823561230c816122dc565b946020939093013593505050565b5f6020828403121561232a575f80fd5b813561213a816122dc565b5f805f60608486031215612347575f80fd5b8335612352816122dc565b92506020840135612362816122dc565b929592945050506040919091013590565b5f60208284031215612383575f80fd5b5035919050565b801515811461153e575f80fd5b5f80604083850312156123a8575f80fd5b82356123b3816122dc565b915060208301356123c38161238a565b809150509250929050565b5f602082840312156123de575f80fd5b813561213a8161238a565b5f80604083850312156123fa575f80fd5b50508035926020909101359150565b5f806040838503121561241a575f80fd5b8235612425816122dc565b915060208301356123c3816122dc565b600181811c9082168061244957607f821691505b60208210810361246757634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600d908201526c24b73b30b634b21037bbb732b960991b604082015260600190565b5f602082840312156124a4575f80fd5b5051919050565b5f602082840312156124bb575f80fd5b815161213a8161238a565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109ca576109ca6124c6565b5f8261250b57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156109ca576109ca6124c6565b600181815b8085111561255d57815f1904821115612543576125436124c6565b8085161561255057918102915b93841c9390800290612528565b509250929050565b5f82612573575060016109ca565b8161257f57505f6109ca565b8160018114612595576002811461259f576125bb565b60019150506109ca565b60ff8411156125b0576125b06124c6565b50506001821b6109ca565b5060208310610133831016604e8410600b84101617156125de575081810a6109ca565b6125e88383612523565b805f19048211156125fb576125fb6124c6565b029392505050565b5f61213a60ff841683612565565b818103818111156109ca576109ca6124c6565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612648575f80fd5b815161213a816122dc565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156126a35784516001600160a01b03168352938301939183019160010161267e565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212200db6e90919b27c3a3f22a32b99bcd5019635d2c712741f0043b1342f942fb14e64736f6c6343000819003300000000000000000000000065ee5b31ff715f7f0a456ea97ce601939fcfe5020000000000000000000000007791b4749e4e54a4c72b9d845120db99264f7e440000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106102f6575f3560e01c806370a0823111610189578063af8f26e7116100d8578063c42c3f8811610092578063dd62ed3e1161006d578063dd62ed3e1461089e578063e27a55fe146108e2578063e96db1ef146108f7578063f2fde38b1461090c575f80fd5b8063c42c3f8814610851578063c6a3064714610866578063d929a08314610885575f80fd5b8063af8f26e71461079c578063b38d5ef4146107b1578063b62496f5146107d0578063b79c1886146107fe578063be6918831461081d578063c31c9c0714610832575f80fd5b80638da5cb5b1161014357806395d89b411161011e57806395d89b411461072b578063a457c2d71461073f578063a9059cbb1461075e578063aacebbe31461077d575f80fd5b80638da5cb5b146106d05780638ea5220f146106ed578063924de9b71461070c575f80fd5b806370a0823114610626578063715018a61461065a578063751039fc1461066e57806375f0a874146106825780637d673170146106a75780638a8c523c146106bc575f80fd5b8063313ce56711610245578063544d1ec9116101ff57806368092bd9116101da57806368092bd9146105a5578063685fbc6b146105c45780636f498e21146105d95780637070678b14610607575f80fd5b8063544d1ec9146105525780635df6e68e1461057157806367b740e914610586575f80fd5b8063313ce567146104b657806333012411146104d1578063372b44b8146104e657806339509351146104fb57806345167f261461051a5780634a62bb6514610539575f80fd5b80631816467f116102b057806322f598351161028b57806322f598351461041357806323b872dd1461044157806326991cc8146104605780632c81355e14610497575f80fd5b80631816467f146103c057806318c34be1146103df5780631af03203146103f4575f80fd5b806306fdde0314610301578063095ea7b31461032b5780630bd05b691461035a5780630e3d57eb14610370578063151d80391461038457806318160ddd146103a2575f80fd5b366102fd57005b5f80fd5b34801561030c575f80fd5b5061031561092b565b60405161032291906122a7565b60405180910390f35b348015610336575f80fd5b5061034a6103453660046122f0565b6109ba565b6040519015158152602001610322565b348015610365575f80fd5b5061036e6109d0565b005b34801561037b575f80fd5b5061036e610a14565b34801561038f575f80fd5b50600b5461034a90610100900460ff1681565b3480156103ad575f80fd5b506002545b604051908152602001610322565b3480156103cb575f80fd5b5061036e6103da36600461231a565b610a88565b3480156103ea575f80fd5b506103b2600d5481565b3480156103ff575f80fd5b5061036e61040e36600461231a565b610ad4565b34801561041e575f80fd5b5061034a61042d36600461231a565b60106020525f908152604090205460ff1681565b34801561044c575f80fd5b5061034a61045b366004612335565b610bd9565b34801561046b575f80fd5b5060075461047f906001600160a01b031681565b6040516001600160a01b039091168152602001610322565b3480156104a2575f80fd5b5061036e6104b1366004612373565b610c70565b3480156104c1575f80fd5b5060405160128152602001610322565b3480156104dc575f80fd5b506103b260175481565b3480156104f1575f80fd5b506103b2600e5481565b348015610506575f80fd5b5061034a6105153660046122f0565b610dbb565b348015610525575f80fd5b5061036e610534366004612397565b610df6565b348015610544575f80fd5b5060125461034a9060ff1681565b34801561055d575f80fd5b5061036e61056c366004612373565b610ece565b34801561057c575f80fd5b506103b260165481565b348015610591575f80fd5b5061036e6105a0366004612373565b610fb2565b3480156105b0575f80fd5b5061036e6105bf366004612397565b611099565b3480156105cf575f80fd5b506103b260095481565b3480156105e4575f80fd5b5061034a6105f336600461231a565b600f6020525f908152604090205460ff1681565b348015610612575f80fd5b5061036e610621366004612397565b6110ed565b348015610631575f80fd5b506103b261064036600461231a565b6001600160a01b03165f9081526003602052604090205490565b348015610665575f80fd5b5061036e611141565b348015610679575f80fd5b5061036e611176565b34801561068d575f80fd5b50600b5461047f906201000090046001600160a01b031681565b3480156106b2575f80fd5b506103b260085481565b3480156106c7575f80fd5b5061036e6111ac565b3480156106db575f80fd5b506005546001600160a01b031661047f565b3480156106f8575f80fd5b50600c5461047f906001600160a01b031681565b348015610717575f80fd5b5061036e6107263660046123ce565b611206565b348015610736575f80fd5b5061031561124a565b34801561074a575f80fd5b5061034a6107593660046122f0565b611259565b348015610769575f80fd5b5061034a6107783660046122f0565b6112e3565b348015610788575f80fd5b5061036e61079736600461231a565b6112ef565b3480156107a7575f80fd5b506103b260185481565b3480156107bc575f80fd5b5061036e6107cb3660046123e9565b611343565b3480156107db575f80fd5b5061034a6107ea36600461231a565b60116020525f908152604090205460ff1681565b348015610809575f80fd5b5061036e6108183660046123e9565b6113da565b348015610828575f80fd5b506103b260155481565b34801561083d575f80fd5b5060065461047f906001600160a01b031681565b34801561085c575f80fd5b506103b2600a5481565b348015610871575f80fd5b5061036e610880366004612397565b61146d565b348015610890575f80fd5b50600b5461034a9060ff1681565b3480156108a9575f80fd5b506103b26108b8366004612409565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156108ed575f80fd5b506103b260135481565b348015610902575f80fd5b506103b260145481565b348015610917575f80fd5b5061036e61092636600461231a565b6114c1565b60605f805461093990612435565b80601f016020809104026020016040519081016040528092919081815260200182805461096590612435565b80156109b05780601f10610987576101008083540402835291602001916109b0565b820191905f5260205f20905b81548152906001019060200180831161099357829003601f168201915b5050505050905090565b5f6109c6338484611541565b5060015b92915050565b6005546001600160a01b03163314610a035760405162461bcd60e51b81526004016109fa9061246d565b60405180910390fd5b600b805461ffff1916610101179055565b6005546001600160a01b03163314610a3e5760405162461bcd60e51b81526004016109fa9061246d565b6040515f90339047908381818185875af1925050503d805f8114610a7d576040519150601f19603f3d011682016040523d82523d5f602084013e610a82565b606091505b50505050565b6005546001600160a01b03163314610ab25760405162461bcd60e51b81526004016109fa9061246d565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610afe5760405162461bcd60e51b81526004016109fa9061246d565b6040516370a0823160e01b815230600482015281905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610b44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b689190612494565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303815f875af1158015610bb5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8291906124ab565b5f610be584848461164d565b6001600160a01b0384165f90815260046020908152604080832033845290915290205482811015610c585760405162461bcd60e51b815260206004820152601d60248201527f45524332303a204e6f7420637572416c6c6f77203e3d20616d6f756e7400000060448201526064016109fa565b610c658533858403611541565b506001949350505050565b6005546001600160a01b03163314610c9a5760405162461bcd60e51b81526004016109fa9061246d565b620186a0610ca760025490565b610cb29060016124da565b610cbc91906124f1565b811015610d295760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016109fa565b6103e8610d3560025490565b610d409060056124da565b610d4a91906124f1565b811115610db65760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016109fa565b600855565b335f8181526004602090815260408083206001600160a01b038716845290915281205490916109c6918590610df1908690612510565b611541565b6005546001600160a01b03163314610e205760405162461bcd60e51b81526004016109fa9061246d565b6007546001600160a01b0390811690831603610ea45760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016109fa565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ef85760405162461bcd60e51b81526004016109fa9061246d565b610f046012600a612603565b6103e8610f1060025490565b610f1b9060016124da565b610f2591906124f1565b610f2f91906124f1565b811015610f965760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657254786e2060448201526e6c6f776572207468616e20302e312560881b60648201526084016109fa565b610fa26012600a612603565b610fac90826124da565b600a5550565b6005546001600160a01b03163314610fdc5760405162461bcd60e51b81526004016109fa9061246d565b610fe86012600a612603565b6103e8610ff460025490565b610fff9060056124da565b61100991906124f1565b61101391906124f1565b81101561107d5760405162461bcd60e51b815260206004820152603260248201527f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657257616c6c6044820152716574206c6f776572207468616e20302e352560701b60648201526084016109fa565b6110896012600a612603565b61109390826124da565b60095550565b6005546001600160a01b031633146110c35760405162461bcd60e51b81526004016109fa9061246d565b6001600160a01b03919091165f908152601a60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146111175760405162461bcd60e51b81526004016109fa9061246d565b6001600160a01b03919091165f908152600f60205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461116b5760405162461bcd60e51b81526004016109fa9061246d565b6111745f611def565b565b6005546001600160a01b031633146111a05760405162461bcd60e51b81526004016109fa9061246d565b6012805460ff19169055565b6005546001600160a01b03163214610a035760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c79206f776e65722063616e20656e61626c652074726164696e6700000060448201526064016109fa565b6005546001600160a01b031633146112305760405162461bcd60e51b81526004016109fa9061246d565b600b80549115156101000261ff0019909216919091179055565b60606001805461093990612435565b335f9081526004602090815260408083206001600160a01b0386168452909152812054828110156112cc5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a204e6f7420637572416c6c6f77203e3d2073756256616c75650060448201526064016109fa565b6112d93385858403611541565b5060019392505050565b5f6109c633848461164d565b6005546001600160a01b031633146113195760405162461bcd60e51b81526004016109fa9061246d565b600b80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6005546001600160a01b0316331461136d5760405162461bcd60e51b81526004016109fa9061246d565b601782905560188190556113818183612510565b6016819055606310156113d65760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702074617820617420393925206f72206c6573730000000060448201526064016109fa565b5050565b6005546001600160a01b031633146114045760405162461bcd60e51b81526004016109fa9061246d565b601482905560158190556114188183612510565b6013819055606310156113d65760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702074617820617420393925206f72206c6573730000000060448201526064016109fa565b6005546001600160a01b031633146114975760405162461bcd60e51b81526004016109fa9061246d565b6001600160a01b03919091165f908152601060205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146114eb5760405162461bcd60e51b81526004016109fa9061246d565b6001600160a01b0381166115355760405162461bcd60e51b81526020600482015260116024820152704e6577206f776e6572206973205a45524f60781b60448201526064016109fa565b61153e81611def565b50565b6001600160a01b0383166115975760405162461bcd60e51b815260206004820152601e60248201527f45524332303a204e6f74206f776e657220213d2061646472657373283029000060448201526064016109fa565b6001600160a01b0382166115ed5760405162461bcd60e51b815260206004820181905260248201527f45524332303a204e6f74207370656e64657220213d206164647265737328302960448201526064016109fa565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116a35760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20496e76616c69642066726f6d2061646472657373000000000060448201526064016109fa565b6001600160a01b0382166116f95760405162461bcd60e51b815260206004820152601960248201527f45524332303a20496e76616c696420746f20616464726573730000000000000060448201526064016109fa565b6001600160a01b0383165f908152601a602052604090205460ff16156117615760405162461bcd60e51b815260206004820152601960248201527f45524332303a2066726f6d20697320626c61636b206c6973740000000000000060448201526064016109fa565b6001600160a01b0382165f908152601a602052604090205460ff16156117c95760405162461bcd60e51b815260206004820152601760248201527f45524332303a20746f20697320626c61636b206c69737400000000000000000060448201526064016109fa565b805f036117e0576117db83835f611e40565b505050565b60125460ff1615611b41576005546001600160a01b0384811691161480159061181757506005546001600160a01b03838116911614155b801561182b57506001600160a01b03821615155b801561184257506001600160a01b03821661dead14155b8015611851575060195460ff16155b15611b4157600b5460ff166118e2576001600160a01b0383165f9081526010602052604090205460ff168061189d57506001600160a01b0382165f9081526010602052604090205460ff165b6118e25760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016109fa565b6001600160a01b0383165f9081526011602052604090205460ff16801561192157506001600160a01b0382165f908152600f602052604090205460ff16155b15611a0457600a548111156119965760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a37b5b2b720b6b7bab73a2832b92a3c371760591b60648201526084016109fa565b6009546001600160a01b0383165f908152600360205260409020546119bb9083612510565b11156119ff5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109fa565b611b41565b6001600160a01b0382165f9081526011602052604090205460ff168015611a4357506001600160a01b0383165f908152600f602052604090205460ff16155b15611ab957600a548111156119ff5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a37b5b2b720b6b7bab73a2832b92a3c371760511b60648201526084016109fa565b6001600160a01b0382165f908152600f602052604090205460ff16611b41576009546001600160a01b0383165f90815260036020526040902054611afd9083612510565b1115611b415760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109fa565b305f90815260036020526040902054600854600b549082101590610100900460ff168015611b6c5750805b8015611b7b575060195460ff16155b8015611b9f57506001600160a01b0385165f9081526011602052604090205460ff16155b8015611bc357506001600160a01b0385165f9081526010602052604090205460ff16155b8015611be757506001600160a01b0384165f9081526010602052604090205460ff16155b15611c0c576019805460ff19166001179055611c01611fe3565b6019805460ff191690555b6019546001600160a01b0386165f9081526010602052604090205460ff91821615911680611c5157506001600160a01b0385165f9081526010602052604090205460ff165b15611c5957505f5b5f8115611ddb576001600160a01b0386165f9081526011602052604090205460ff168015611c8857505f601354115b15611d1457611cad6064611ca76013548861212f90919063ffffffff16565b90612141565b905060135460155482611cc091906124da565b611cca91906124f1565b600e5f828254611cda9190612510565b9091555050601354601454611cef90836124da565b611cf991906124f1565b600d5f828254611d099190612510565b90915550611dbd9050565b6001600160a01b0387165f9081526011602052604090205460ff168015611d3c57505f601654115b15611dbd57611d5b6064611ca76016548861212f90919063ffffffff16565b905060165460185482611d6e91906124da565b611d7891906124f1565b600e5f828254611d889190612510565b9091555050601654601754611d9d90836124da565b611da791906124f1565b600d5f828254611db79190612510565b90915550505b8015611dce57611dce873083611e40565b611dd88186612611565b94505b611de6878787611e40565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316611e965760405162461bcd60e51b815260206004820152601d60248201527f45524332303a204e6f742066726f6d20213d206164647265737328302900000060448201526064016109fa565b6001600160a01b038216611eec5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a204e6f7420746f20213d2061646472657373283029000000000060448201526064016109fa565b6001600160a01b0383165f9081526003602052604090205481811015611f545760405162461bcd60e51b815260206004820181905260248201527f45524332303a204e6f742062616c616e636546726f6d203e3d20616d6f756e7460448201526064016109fa565b6001600160a01b038085165f90815260036020526040808220858503905591851681529081208054849290611f8a908490612510565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fd691815260200190565b60405180910390a3610a82565b5f80600e54600d54611ff59190612510565b305f90815260036020526040902054909150811580612012575080155b1561201c57505050565b60085461202a9060146124da565b8111156120425760085461203f9060146124da565b90505b4761204c8261214c565b5f612057478361229c565b90505f61207385611ca7600e548561212f90919063ffffffff16565b600c546040519192506001600160a01b03169082905f81818185875af1925050503d805f81146120be576040519150601f19603f3d011682016040523d82523d5f602084013e6120c3565b606091505b5050600b546040519197506201000090046001600160a01b03169047905f81818185875af1925050503d805f8114612116576040519150601f19603f3d011682016040523d82523d5f602084013e61211b565b606091505b50505f600d819055600e5550505050505050565b5f61213a82846124da565b9392505050565b5f61213a82846124f1565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061217f5761217f612624565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156121d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121fa9190612638565b8160018151811061220d5761220d612624565b6001600160a01b0392831660209182029290920101526006546122339130911684611541565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061226b9085905f90869030904290600401612653565b5f604051808303815f87803b158015612282575f80fd5b505af1158015612294573d5f803e3d5ffd5b505050505050565b5f61213a8284612611565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461153e575f80fd5b5f8060408385031215612301575f80fd5b823561230c816122dc565b946020939093013593505050565b5f6020828403121561232a575f80fd5b813561213a816122dc565b5f805f60608486031215612347575f80fd5b8335612352816122dc565b92506020840135612362816122dc565b929592945050506040919091013590565b5f60208284031215612383575f80fd5b5035919050565b801515811461153e575f80fd5b5f80604083850312156123a8575f80fd5b82356123b3816122dc565b915060208301356123c38161238a565b809150509250929050565b5f602082840312156123de575f80fd5b813561213a8161238a565b5f80604083850312156123fa575f80fd5b50508035926020909101359150565b5f806040838503121561241a575f80fd5b8235612425816122dc565b915060208301356123c3816122dc565b600181811c9082168061244957607f821691505b60208210810361246757634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600d908201526c24b73b30b634b21037bbb732b960991b604082015260600190565b5f602082840312156124a4575f80fd5b5051919050565b5f602082840312156124bb575f80fd5b815161213a8161238a565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109ca576109ca6124c6565b5f8261250b57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156109ca576109ca6124c6565b600181815b8085111561255d57815f1904821115612543576125436124c6565b8085161561255057918102915b93841c9390800290612528565b509250929050565b5f82612573575060016109ca565b8161257f57505f6109ca565b8160018114612595576002811461259f576125bb565b60019150506109ca565b60ff8411156125b0576125b06124c6565b50506001821b6109ca565b5060208310610133831016604e8410600b84101617156125de575081810a6109ca565b6125e88383612523565b805f19048211156125fb576125fb6124c6565b029392505050565b5f61213a60ff841683612565565b818103818111156109ca576109ca6124c6565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612648575f80fd5b815161213a816122dc565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156126a35784516001600160a01b03168352938301939183019160010161267e565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212200db6e90919b27c3a3f22a32b99bcd5019635d2c712741f0043b1342f942fb14e64736f6c63430008190033

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

00000000000000000000000065ee5b31ff715f7f0a456ea97ce601939fcfe5020000000000000000000000007791b4749e4e54a4c72b9d845120db99264f7e440000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

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

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000065ee5b31ff715f7f0a456ea97ce601939fcfe502
Arg [1] : 0000000000000000000000007791b4749e4e54a4c72b9d845120db99264f7e44
Arg [2] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

13991:10601:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9676:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10248:169;;;;;;;;;;-1:-1:-1;10248:169:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;10248:169:0;893:187:1;16903:116:0;;;;;;;;;;;;;:::i;:::-;;24184:161;;;;;;;;;;;;;:::i;14314:32::-;;;;;;;;;;-1:-1:-1;14314:32:0;;;;;;;;;;;9997:108;;;;;;;;;;-1:-1:-1;10085:12:0;;9997:108;;;1231:25:1;;;1219:2;1204:18;9997:108:0;1085:177:1;16653:105:0;;;;;;;;;;-1:-1:-1;16653:105:0;;;;;:::i;:::-;;:::i;14425:38::-;;;;;;;;;;;;;;;;24353:234;;;;;;;;;;-1:-1:-1;24353:234:0;;;;;:::i;:::-;;:::i;14581:48::-;;;;;;;;;;-1:-1:-1;14581:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10928:397;;;;;;;;;;-1:-1:-1;10928:397:0;;;;;:::i;:::-;;:::i;14108:23::-;;;;;;;;;;-1:-1:-1;14108:23:0;;;;-1:-1:-1;;;;;14108:23:0;;;;;;-1:-1:-1;;;;;2144:32:1;;;2126:51;;2114:2;2099:18;14108:23:0;1980:203:1;17727:352:0;;;;;;;;;;-1:-1:-1;17727:352:0;;;;;:::i;:::-;;:::i;9896:93::-;;;;;;;;;;-1:-1:-1;9896:93:0;;9979:2;2515:36:1;;2503:2;2488:18;9896:93:0;2373:184:1;14885:30:0;;;;;;;;;;;;;;;;14470:32;;;;;;;;;;;;;;;;11502:211;;;;;;;;;;-1:-1:-1;11502:211:0;;;;;:::i;:::-;;:::i;19397:247::-;;;;;;;;;;-1:-1:-1;19397:247:0;;;;;:::i;:::-;;:::i;14704:33::-;;;;;;;;;;-1:-1:-1;14704:33:0;;;;;;;;18375:276;;;;;;;;;;-1:-1:-1;18375:276:0;;;;;:::i;:::-;;:::i;14852:26::-;;;;;;;;;;;;;;;;18087:280;;;;;;;;;;-1:-1:-1;18087:280:0;;;;;:::i;:::-;;:::i;18659:120::-;;;;;;;;;;-1:-1:-1;18659:120:0;;;;;:::i;:::-;;:::i;14184:38::-;;;;;;;;;;;;;;;;14511:61;;;;;;;;;;-1:-1:-1;14511:61:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17212:154;;;;;;;;;;-1:-1:-1;17212:154:0;;;;;:::i;:::-;;:::i;10113:127::-;;;;;;;;;;-1:-1:-1;10113:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;10214:18:0;10187:7;10214:18;;;:9;:18;;;;;;;10113:127;986:103;;;;;;;;;;;;;:::i;17512:90::-;;;;;;;;;;;;;:::i;14355:30::-;;;;;;;;;;-1:-1:-1;14355:30:0;;;;;;;-1:-1:-1;;;;;14355:30:0;;;14144:33;;;;;;;;;;;;;;;;17027:177;;;;;;;;;;;;;:::i;703:87::-;;;;;;;;;;-1:-1:-1;776:6:0;;-1:-1:-1;;;;;776:6:0;703:87;;14392:24;;;;;;;;;;-1:-1:-1;14392:24:0;;;;-1:-1:-1;;;;;14392:24:0;;;17612:107;;;;;;;;;;-1:-1:-1;17612:107:0;;;;;:::i;:::-;;:::i;9784:104::-;;;;;;;;;;;;;:::i;11721:360::-;;;;;;;;;;-1:-1:-1;11721:360:0;;;;;:::i;:::-;;:::i;11333:161::-;;;;;;;;;;-1:-1:-1;11333:161:0;;;;;:::i;:::-;;:::i;16766:129::-;;;;;;;;;;-1:-1:-1;16766:129:0;;;;;:::i;:::-;;:::i;14922:24::-;;;;;;;;;;;;;;;;18787:290;;;;;;;;;;-1:-1:-1;18787:290:0;;;;;:::i;:::-;;:::i;14638:57::-;;;;;;;;;;-1:-1:-1;14638:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19085:300;;;;;;;;;;-1:-1:-1;19085:300:0;;;;;:::i;:::-;;:::i;14818:25::-;;;;;;;;;;;;;;;;14065:36;;;;;;;;;;-1:-1:-1;14065:36:0;;;;-1:-1:-1;;;;;14065:36:0;;;14229:35;;;;;;;;;;;;;;;;17374:130;;;;;;;;;;-1:-1:-1;17374:130:0;;;;;:::i;:::-;;:::i;14273:34::-;;;;;;;;;;-1:-1:-1;14273:34:0;;;;;;;;10769:151;;;;;;;;;;-1:-1:-1;10769:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;10885:18:0;;;10858:7;10885:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10769:151;14746:27;;;;;;;;;;;;;;;;14780:31;;;;;;;;;;;;;;;;798:180;;;;;;;;;;-1:-1:-1;798:180:0;;;;;:::i;:::-;;:::i;9676:100::-;9730:13;9763:5;9756:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9676:100;:::o;10248:169::-;10331:4;10348:39;220:10;10371:7;10380:6;10348:8;:39::i;:::-;-1:-1:-1;10405:4:0;10248:169;;;;;:::o;16903:116::-;776:6;;-1:-1:-1;;;;;776:6:0;220:10;634:23;626:49;;;;-1:-1:-1;;;626:49:0;;;;;;;:::i;:::-;;;;;;;;;16960:14:::1;:21:::0;;-1:-1:-1;;16992:19:0;;;;;16903:116::o;24184:161::-;776:6;;-1:-1:-1;;;;;776:6:0;220:10;634:23;626:49;;;;-1:-1:-1;;;626:49:0;;;;;;;:::i;:::-;24279:58:::1;::::0;24243:12:::1;::::0;24287:10:::1;::::0;24311:21:::1;::::0;24243:12;24279:58;24243:12;24279:58;24311:21;24287:10;24279:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;24184:161:0:o;16653:105::-;776:6;;-1:-1:-1;;;;;776:6:0;220:10;634:23;626:49;;;;-1:-1:-1;;;626:49:0;;;;;;;:::i;:::-;16728:9:::1;:22:::0;;-1:-1:-1;;;;;;16728:22:0::1;-1:-1:-1::0;;;;;16728:22:0;;;::::1;::::0;;;::::1;::::0;;16653:105::o;24353:234::-;776:6;;-1:-1:-1;;;;;776:6:0;220:10;634:23;626:49;;;;-1:-1:-1;;;626:49:0;;;;;;;:::i;:::-;24503:30:::1;::::0;-1:-1:-1;;;24503:30:0;;24527:4:::1;24503:30;::::0;::::1;2126:51:1::0;24461:12:0;;24439::::1;::::0;-1:-1:-1;;;;;24503:15:0;::::1;::::0;::::1;::::0;2099:18:1;;24503:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24544:35;::::0;-1:-1:-1;;;24544:35:0;;24559:10:::1;24544:35;::::0;::::1;5498:51:1::0;5565:18;;;5558:34;;;24485:48:0;;-1:-1:-1;;;;;;24544:14:0;::::1;::::0;::::1;::::0;5471:18:1;;24544:35:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10928:397::-:0;11025:4;11042:27;11052:4;11058:2;11062:6;11042:9;:27::i;:::-;-1:-1:-1;;;;;11099:17:0;;11080:16;11099:17;;;:11;:17;;;;;;;;220:10;11099:31;;;;;;;;11149:18;;;;11141:60;;;;-1:-1:-1;;;11141:60:0;;6055:2:1;11141:60:0;;;6037:21:1;6094:2;6074:18;;;6067:30;6133:31;6113:18;;;6106:59;6182:18;;11141:60:0;5853:353:1;11141:60:0;11237:47;11246:4;220:10;11277:6;11266:8;:17;11237:8;:47::i;:::-;-1:-1:-1;11313:4:0;;10928:397;-1:-1:-1;;;;10928:397:0:o;17727:352::-;776:6;;-1:-1:-1;;;;;776:6:0;220:10;634:23;626:49;;;;-1:-1:-1;;;626:49:0;;;;;;;:::i;:::-;17857:6:::1;17836:13;10085:12:::0;;;9997:108;17836:13:::1;:17;::::0;17852:1:::1;17836:17;:::i;:::-;17835:28;;;;:::i;:::-;17825:6;:38;;17817:104;;;::::0;-1:-1:-1;;;17817:104:0;;6940:2:1;17817:104:0::1;::::0;::::1;6922:21:1::0;6979:2;6959:18;;;6952:30;7018:34;6998:18;;;6991:62;-1:-1:-1;;;7069:18:1;;;7062:51;7130:19;;17817:104:0::1;6738:417:1::0;17817:104:0::1;17972:4;17951:13;10085:12:::0;;;9997:108;17951:13:::1;:17;::::0;17967:1:::1;17951:17;:::i;:::-;17950:26;;;;:::i;:::-;17940:6;:36;;17932:101;;;::::0;-1:-1:-1;;;17932:101:0;;7362:2:1;17932:101:0::1;::::0;::::1;7344:21:1::0;7401:2;7381:18;;;7374:30;7440:34;7420:18;;;7413:62;-1:-1:-1;;;7491:18:1;;;7484:50;7551:19;;17932:101:0::1;7160:416:1::0;17932:101:0::1;18044:18;:27:::0;17727:352::o;11502:211::-;220:10;11588:4;11637:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11637:34:0;;;;;;;;;;11588:4;;11605:78;;11628:7;;11637:45;;11674:8;;11637:45;:::i;:::-;11605:8;:78::i;19397:247::-;776:6;;-1:-1:-1;;;;;776:6:0;220:10;634:23;626:49;;;;-1:-1:-1;;;626:49:0;;;;;;;:::i;:::-;19516:8:::1;::::0;-1:-1:-1;;;;;19516:8:0;;::::1;19508:16:::0;;::::1;::::0;19500:86:::1;;;::::0;-1:-1:-1;;;19500:86:0;;7913:2:1;19500:86:0::1;::::0;::::1;7895:21:1::0;7952:2;7932:18;;;7925:30;7991:34;7971:18;;;7964:62;8062:27;8042:18;;;8035:55;8107:19;;19500:86:0::1;7711:421:1::0;19500:86:0::1;-1:-1:-1::0;;;;;19597:31:0;;;::::1;;::::0;;;:25:::1;:31;::::0;;;;:39;;-1:-1:-1;;19597:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19397:247::o;18375:276::-;776:6;;-1:-1:-1;;;;;776:6:0;220:10;634:23;626:49;;;;-1:-1:-1;;;626:49:0;;;;;;;:::i;:::-;18513:16:::1;9979:2:::0;18513::::1;:16;:::i;:::-;18504:4;18483:13;10085:12:::0;;;9997:108;18483:13:::1;:17;::::0;18499:1:::1;18483:17;:::i;:::-;18482:26;;;;:::i;:::-;18481:49;;;;:::i;:::-;18471:6;:59;;18463:119;;;::::0;-1:-1:-1;;;18463:119:0;;9716:2:1;18463:119:0::1;::::0;::::1;9698:21:1::0;9755:2;9735:18;;;9728:30;9794:34;9774:18;;;9767:62;-1:-1:-1;;;9845:18:1;;;9838:45;9900:19;;18463:119:0::1;9514:411:1::0;18463:119:0::1;18626:16;9979:2:::0;18626::::1;:16;:::i;:::-;18616:27;::::0;:6;:27:::1;:::i;:::-;18593:20;:50:::0;-1:-1:-1;18375:276:0:o;18087:280::-;776:6;;-1:-1:-1;;;;;776:6:0;220:10;634:23;626:49;;;;-1:-1:-1;;;626:49:0;;;;;;;:::i;:::-;18223:16:::1;9979:2:::0;18223::::1;:16;:::i;:::-;18214:4;18193:13;10085:12:::0;;;9997:108;18193:13:::1;:17;::::0;18209:1:::1;18193:17;:::i;:::-;18192:26;;;;:::i;:::-;18191:49;;;;:::i;:::-;18181:6;:59;;18173:122;;;::::0;-1:-1:-1;;;18173:122:0;;10132:2:1;18173:122:0::1;::::0;::::1;10114:21:1::0;10171:2;10151:18;;;10144:30;10210:34;10190:18;;;10183:62;-1:-1:-1;;;10261:18:1;;;10254:48;10319:19;;18173:122:0::1;9930:414:1::0;18173:122:0::1;18342:16;9979:2:::0;18342::::1;:16;:::i;:::-;18332:27;::::0;:6;:27:::1;:::i;:::-;18306:23;:53:::0;-1:-1:-1;18087:280:0:o;18659:120::-;776:6;;-1:-1:-1;;;;;776:6:0;220:10;634:23;626:49;;;;-1:-1:-1;;;626:49:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18747:15:0;;;::::1;;::::0;;;:9:::1;:15;::::0;;;;:24;;-1:-1:-1;;18747:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18659:120::o;17212:154::-;776:6;;-1:-1:-1;;;;;776:6:0;220:10;634:23;626:49;;;;-1:-1:-1;;;626:49:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17315:35:0;;;::::1;;::::0;;;:29:::1;:35;::::0;;;;:43;;-1:-1:-1;;17315:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17212:154::o;986:103::-;776:6;;-1:-1:-1;;;;;776:6:0;220:10;634:23;626:49;;;;-1:-1:-1;;;626:49:0;;;;;;;:::i;:::-;1051:30:::1;1078:1;1051:18;:30::i;:::-;986:103::o:0;17512:90::-;776:6;;-1:-1:-1;;;;;776:6:0;220:10;634:23;626:49;;;;-1:-1:-1;;;626:49:0;;;;;;;:::i;:::-;17572:14:::1;:22:::0;;-1:-1:-1;;17572:22:0::1;::::0;;17512:90::o;17027:177::-;776:6;;-1:-1:-1;;;;;776:6:0;17080:9;:20;17072:62;;;;-1:-1:-1;;;17072:62:0;;10551:2:1;17072:62:0;;;10533:21:1;10590:2;10570:18;;;10563:30;10629:31;10609:18;;;10602:59;10678:18;;17072:62:0;10349:353:1;17612:107:0;776:6;;-1:-1:-1;;;;;776:6:0;220:10;634:23;626:49;;;;-1:-1:-1;;;626:49:0;;;;;;;:::i;:::-;17689:12:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;17689:22:0;;::::1;::::0;;;::::1;::::0;;17612:107::o;9784:104::-;9840:13;9873:7;9866:14;;;;;:::i;11721:360::-;220:10;11807:4;11843:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11843:34:0;;;;;;;;;;11896:20;;;;11888:64;;;;-1:-1:-1;;;11888:64:0;;10909:2:1;11888:64:0;;;10891:21:1;10948:2;10928:18;;;10921:30;10987:33;10967:18;;;10960:61;11038:18;;11888:64:0;10707:355:1;11888:64:0;11988:52;220:10;12011:7;12031:8;12020;:19;11988:8;:52::i;:::-;-1:-1:-1;12069:4:0;;11721:360;-1:-1:-1;;;11721:360:0:o;11333:161::-;11412:4;11429:35;220:10;11453:2;11457:6;11429:9;:35::i;16766:129::-;776:6;;-1:-1:-1;;;;;776:6:0;220:10;634:23;626:49;;;;-1:-1:-1;;;626:49:0;;;;;;;:::i;:::-;16853:15:::1;:34:::0;;-1:-1:-1;;;;;16853:34:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;16853:34:0;;::::1;::::0;;;::::1;::::0;;16766:129::o;18787:290::-;776:6;;-1:-1:-1;;;;;776:6:0;220:10;634:23;626:49;;;;-1:-1:-1;;;626:49:0;;;;;;;:::i;:::-;18886:15:::1;:30:::0;;;18927:9:::1;:21:::0;;;18973:27:::1;18939:9:::0;18904:12;18973:27:::1;:::i;:::-;18959:11;:41:::0;;;19034:2:::1;-1:-1:-1::0;19019:17:0::1;19011:58;;;::::0;-1:-1:-1;;;19011:58:0;;11269:2:1;19011:58:0::1;::::0;::::1;11251:21:1::0;11308:2;11288:18;;;11281:30;11347;11327:18;;;11320:58;11395:18;;19011:58:0::1;11067:352:1::0;19011:58:0::1;18787:290:::0;;:::o;19085:300::-;776:6;;-1:-1:-1;;;;;776:6:0;220:10;634:23;626:49;;;;-1:-1:-1;;;626:49:0;;;;;;;:::i;:::-;19188:16:::1;:31:::0;;;19230:10:::1;:22:::0;;;19278:29:::1;19243:9:::0;19207:12;19278:29:::1;:::i;:::-;19263:12;:44:::0;;;19342:2:::1;-1:-1:-1::0;19326:18:0::1;19318:59;;;::::0;-1:-1:-1;;;19318:59:0;;11269:2:1;19318:59:0::1;::::0;::::1;11251:21:1::0;11308:2;11288:18;;;11281:30;11347;11327:18;;;11320:58;11395:18;;19318:59:0::1;11067:352:1::0;17374:130:0;776:6;;-1:-1:-1;;;;;776:6:0;220:10;634:23;626:49;;;;-1:-1:-1;;;626:49:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17463:25:0;;;::::1;;::::0;;;:16:::1;:25;::::0;;;;:33;;-1:-1:-1;;17463:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17374:130::o;798:180::-;776:6;;-1:-1:-1;;;;;776:6:0;220:10;634:23;626:49;;;;-1:-1:-1;;;626:49:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;887:22:0;::::1;879:52;;;::::0;-1:-1:-1;;;879:52:0;;11626:2:1;879:52:0::1;::::0;::::1;11608:21:1::0;11665:2;11645:18;;;11638:30;-1:-1:-1;;;11684:18:1;;;11677:47;11741:18;;879:52:0::1;11424:341:1::0;879:52:0::1;942:28;961:8;942:18;:28::i;:::-;798:180:::0;:::o;10425:336::-;-1:-1:-1;;;;;10527:19:0;;10519:62;;;;-1:-1:-1;;;10519:62:0;;11972:2:1;10519:62:0;;;11954:21:1;12011:2;11991:18;;;11984:30;12050:32;12030:18;;;12023:60;12100:18;;10519:62:0;11770:354:1;10519:62:0;-1:-1:-1;;;;;10600:21:0;;10592:66;;;;-1:-1:-1;;;10592:66:0;;12331:2:1;10592:66:0;;;12313:21:1;;;12350:18;;;12343:30;12409:34;12389:18;;;12382:62;12461:18;;10592:66:0;12129:356:1;10592:66:0;-1:-1:-1;;;;;10669:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10721:32;;1231:25:1;;;10721:32:0;;1204:18:1;10721:32:0;;;;;;;10425:336;;;:::o;20544:2913::-;-1:-1:-1;;;;;20676:18:0;;20668:58;;;;-1:-1:-1;;;20668:58:0;;12692:2:1;20668:58:0;;;12674:21:1;12731:2;12711:18;;;12704:30;12770:29;12750:18;;;12743:57;12817:18;;20668:58:0;12490:351:1;20668:58:0;-1:-1:-1;;;;;20745:16:0;;20737:54;;;;-1:-1:-1;;;20737:54:0;;13048:2:1;20737:54:0;;;13030:21:1;13087:2;13067:18;;;13060:30;13126:27;13106:18;;;13099:55;13171:18;;20737:54:0;12846:349:1;20737:54:0;-1:-1:-1;;;;;20811:15:0;;;;;;:9;:15;;;;;;;;20810:16;20802:54;;;;-1:-1:-1;;;20802:54:0;;13402:2:1;20802:54:0;;;13384:21:1;13441:2;13421:18;;;13414:30;13480:27;13460:18;;;13453:55;13525:18;;20802:54:0;13200:349:1;20802:54:0;-1:-1:-1;;;;;20876:13:0;;;;;;:9;:13;;;;;;;;20875:14;20867:50;;;;-1:-1:-1;;;20867:50:0;;13756:2:1;20867:50:0;;;13738:21:1;13795:2;13775:18;;;13768:30;13834:25;13814:18;;;13807:53;13877:18;;20867:50:0;13554:347:1;20867:50:0;20934:6;20944:1;20934:11;20930:93;;20962:28;20978:4;20984:2;20988:1;20962:15;:28::i;:::-;20544:2913;;;:::o;20930:93::-;21039:14;;;;21035:1085;;;776:6;;-1:-1:-1;;;;;21074:15:0;;;776:6;;21074:15;;;;:32;;-1:-1:-1;776:6:0;;-1:-1:-1;;;;;21093:13:0;;;776:6;;21093:13;;21074:32;:52;;;;-1:-1:-1;;;;;;21110:16:0;;;;21074:52;:77;;;;-1:-1:-1;;;;;;21130:21:0;;21144:6;21130:21;;21074:77;:91;;;;-1:-1:-1;21156:9:0;;;;21155:10;21074:91;21070:1039;;;21191:14;;;;21186:145;;-1:-1:-1;;;;;21238:22:0;;;;;;:16;:22;;;;;;;;;:46;;-1:-1:-1;;;;;;21264:20:0;;;;;;:16;:20;;;;;;;;21238:46;21230:81;;;;-1:-1:-1;;;21230:81:0;;14108:2:1;21230:81:0;;;14090:21:1;14147:2;14127:18;;;14120:30;-1:-1:-1;;;14166:18:1;;;14159:52;14228:18;;21230:81:0;13906:346:1;21230:81:0;-1:-1:-1;;;;;21355:31:0;;;;;;:25;:31;;;;;;;;:69;;;;-1:-1:-1;;;;;;21391:33:0;;;;;;:29;:33;;;;;;;;21390:34;21355:69;21351:743;;;21467:20;;21457:6;:30;;21449:96;;;;-1:-1:-1;;;21449:96:0;;14459:2:1;21449:96:0;;;14441:21:1;14498:2;14478:18;;;14471:30;14537:34;14517:18;;;14510:62;-1:-1:-1;;;14588:18:1;;;14581:51;14649:19;;21449:96:0;14257:417:1;21449:96:0;21602:23;;-1:-1:-1;;;;;10214:18:0;;10187:7;10214:18;;;:9;:18;;;;;;21576:22;;:6;:22;:::i;:::-;:49;;21568:81;;;;-1:-1:-1;;;21568:81:0;;14881:2:1;21568:81:0;;;14863:21:1;14920:2;14900:18;;;14893:30;-1:-1:-1;;;14939:18:1;;;14932:49;14998:18;;21568:81:0;14679:343:1;21568:81:0;21351:743;;;-1:-1:-1;;;;;21696:29:0;;;;;;:25;:29;;;;;;;;:69;;;;-1:-1:-1;;;;;;21730:35:0;;;;;;:29;:35;;;;;;;;21729:36;21696:69;21692:402;;;21808:20;;21798:6;:30;;21790:97;;;;-1:-1:-1;;;21790:97:0;;15229:2:1;21790:97:0;;;15211:21:1;15268:2;15248:18;;;15241:30;15307:34;15287:18;;;15280:62;-1:-1:-1;;;15358:18:1;;;15351:52;15420:19;;21790:97:0;15027:418:1;21692:402:0;-1:-1:-1;;;;;21935:33:0;;;;;;:29;:33;;;;;;;;21930:164;;22027:23;;-1:-1:-1;;;;;10214:18:0;;10187:7;10214:18;;;:9;:18;;;;;;22001:22;;:6;:22;:::i;:::-;:49;;21993:81;;;;-1:-1:-1;;;21993:81:0;;14881:2:1;21993:81:0;;;14863:21:1;14920:2;14900:18;;;14893:30;-1:-1:-1;;;14939:18:1;;;14932:49;14998:18;;21993:81:0;14679:343:1;21993:81:0;22173:4;22132:20;10214:18;;;:9;:18;;;;;;22221;;22254:12;;22205:34;;;;;22254:12;;;;;:23;;;;;22270:7;22254:23;:37;;;;-1:-1:-1;22282:9:0;;;;22281:10;22254:37;:86;;;;-1:-1:-1;;;;;;22309:31:0;;;;;;:25;:31;;;;;;;;22308:32;22254:86;:113;;;;-1:-1:-1;;;;;;22345:22:0;;;;;;:16;:22;;;;;;;;22344:23;22254:113;:138;;;;-1:-1:-1;;;;;;22372:20:0;;;;;;:16;:20;;;;;;;;22371:21;22254:138;22250:244;;;22409:9;:16;;-1:-1:-1;;22409:16:0;22421:4;22409:16;;;22440:10;:8;:10::i;:::-;22465:9;:17;;-1:-1:-1;;22465:17:0;;;22250:244;22519:9;;-1:-1:-1;;;;;22543:22:0;;22506:9;22543:22;;;:16;:22;;;;;;22519:9;;;;22518:10;;22543:22;;:46;;-1:-1:-1;;;;;;22569:20:0;;;;;;:16;:20;;;;;;;;22543:46;22539:77;;;-1:-1:-1;22611:5:0;22539:77;22629:12;22660:4;22656:748;;;-1:-1:-1;;;;;22685:29:0;;;;;;:25;:29;;;;;;;;:49;;;;;22733:1;22718:12;;:16;22685:49;22681:595;;;22762:33;22791:3;22762:24;22773:12;;22762:6;:10;;:24;;;;:::i;:::-;:28;;:33::i;:::-;22755:40;;22857:12;;22843:10;;22836:4;:17;;;;:::i;:::-;22835:34;;;;:::i;:::-;22814:17;;:55;;;;;;;:::i;:::-;;;;-1:-1:-1;;22943:12:0;;22923:16;;22916:23;;:4;:23;:::i;:::-;22915:40;;;;:::i;:::-;22888:23;;:67;;;;;;;:::i;:::-;;;;-1:-1:-1;22681:595:0;;-1:-1:-1;22681:595:0;;-1:-1:-1;;;;;22994:31:0;;;;;;:25;:31;;;;;;;;:50;;;;;23043:1;23029:11;;:15;22994:50;22990:286;;;23072:32;23100:3;23072:23;23083:11;;23072:6;:10;;:23;;;;:::i;:32::-;23065:39;;23165:11;;23152:9;;23145:4;:16;;;;:::i;:::-;23144:32;;;;:::i;:::-;23123:17;;:53;;;;;;;:::i;:::-;;;;-1:-1:-1;;23249:11:0;;23230:15;;23223:22;;:4;:22;:::i;:::-;23222:38;;;;:::i;:::-;23195:23;;:65;;;;;;;:::i;:::-;;;;-1:-1:-1;;22990:286:0;23294:8;;23290:73;;23321:42;23337:4;23351;23358;23321:15;:42::i;:::-;23378:14;23388:4;23378:14;;:::i;:::-;;;22656:748;23416:33;23432:4;23438:2;23442:6;23416:15;:33::i;:::-;20657:2800;;;;20544:2913;;;:::o;1097:191::-;1190:6;;;-1:-1:-1;;;;;1207:17:0;;;-1:-1:-1;;;;;;1207:17:0;;;;;;;1240:40;;1190:6;;;1207:17;1190:6;;1240:40;;1171:16;;1240:40;1160:128;1097:191;:::o;13225:607::-;-1:-1:-1;;;;;13322:18:0;;13314:60;;;;-1:-1:-1;;;13314:60:0;;15785:2:1;13314:60:0;;;15767:21:1;15824:2;15804:18;;;15797:30;15863:31;15843:18;;;15836:59;15912:18;;13314:60:0;15583:353:1;13314:60:0;-1:-1:-1;;;;;13393:16:0;;13385:56;;;;-1:-1:-1;;;13385:56:0;;16143:2:1;13385:56:0;;;16125:21:1;16182:2;16162:18;;;16155:30;16221:29;16201:18;;;16194:57;16268:18;;13385:56:0;15941:351:1;13385:56:0;-1:-1:-1;;;;;13523:15:0;;13501:19;13523:15;;;:9;:15;;;;;;13557:21;;;;13549:66;;;;-1:-1:-1;;;13549:66:0;;16499:2:1;13549:66:0;;;16481:21:1;;;16518:18;;;16511:30;16577:34;16557:18;;;16550:62;16629:18;;13549:66:0;16297:356:1;13549:66:0;-1:-1:-1;;;;;13651:15:0;;;;;;;:9;:15;;;;;;13669:20;;;13651:38;;13711:13;;;;;;;;:23;;13683:6;;13651:15;13711:23;;13683:6;;13711:23;:::i;:::-;;;;;;;;13765:2;-1:-1:-1;;;;;13750:26:0;13759:4;-1:-1:-1;;;;;13750:26:0;;13769:6;13750:26;;;;1231:25:1;;1219:2;1204:18;;1085:177;13750:26:0;;;;;;;;13787:37;20544:2913;19652:884;19691:12;19714:25;19768:17;;19742:23;;:43;;;;:::i;:::-;19837:4;19796:20;10214:18;;;:9;:18;;;;;;19714:71;;-1:-1:-1;19860:22:0;;;:43;;-1:-1:-1;19886:17:0;;19860:43;19856:69;;;19918:7;;;19652:884::o;19856:69::-;19956:18;;:23;;19977:2;19956:23;:::i;:::-;19941:12;:38;19937:95;;;20009:18;;:23;;20030:2;20009:23;:::i;:::-;19994:38;;19937:95;20070:21;20102:30;20119:12;20102:16;:30::i;:::-;20145:18;20166:41;:21;20192:14;20166:25;:41::i;:::-;20145:62;;20218:17;20238:56;20276:17;20238:33;20253:17;;20238:10;:14;;:33;;;;:::i;:56::-;20329:9;;20321:45;;20218:76;;-1:-1:-1;;;;;;20329:9:0;;20218:76;;20321:45;;;;20218:76;20329:9;20321:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20399:15:0;;20391:65;;20307:59;;-1:-1:-1;20399:15:0;;;-1:-1:-1;;;;;20399:15:0;;20429:21;;20391:65;;;;20429:21;20399:15;20391:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20495:1:0;20469:23;:27;;;20507:17;:21;-1:-1:-1;;;;;;;19652:884:0:o;1319:98::-;1377:7;1404:5;1408:1;1404;:5;:::i;:::-;1397:12;1319:98;-1:-1:-1;;;1319:98:0:o;1703:::-;1761:7;1788:5;1792:1;1788;:5;:::i;23617:559::-;23762:16;;;23776:1;23762:16;;;;;;;;23738:21;;23762:16;;;;;;;;;;-1:-1:-1;23762:16:0;23738:40;;23807:4;23789;23794:1;23789:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23789:23:0;;;:7;;;;;;;;;;:23;;;;23833:10;;:17;;;-1:-1:-1;;;23833:17:0;;;;:10;;;;;:15;;:17;;;;;23789:7;;23833:17;;;;;:10;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23823:4;23828:1;23823:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23823:27:0;;;:7;;;;;;;;;:27;23895:10;;23863:52;;23880:4;;23895:10;23908:6;23863:8;:52::i;:::-;23954:10;;:214;;-1:-1:-1;;;23954:214:0;;-1:-1:-1;;;;;23954:10:0;;;;:61;;:214;;24030:6;;23954:10;;24095:4;;24122;;24142:15;;23954:214;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23667:509;23617:559;:::o;2348:98::-;2406:7;2433:5;2437:1;2433;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:315;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1267:247::-;1326:6;1379:2;1367:9;1358:7;1354:23;1350:32;1347:52;;;1395:1;1392;1385:12;1347:52;1434:9;1421:23;1453:31;1478:5;1453:31;:::i;1519:456::-;1596:6;1604;1612;1665:2;1653:9;1644:7;1640:23;1636:32;1633:52;;;1681:1;1678;1671:12;1633:52;1720:9;1707:23;1739:31;1764:5;1739:31;:::i;:::-;1789:5;-1:-1:-1;1846:2:1;1831:18;;1818:32;1859:33;1818:32;1859:33;:::i;:::-;1519:456;;1911:7;;-1:-1:-1;;;1965:2:1;1950:18;;;;1937:32;;1519:456::o;2188:180::-;2247:6;2300:2;2288:9;2279:7;2275:23;2271:32;2268:52;;;2316:1;2313;2306:12;2268:52;-1:-1:-1;2339:23:1;;2188:180;-1:-1:-1;2188:180:1:o;2562:118::-;2648:5;2641:13;2634:21;2627:5;2624:32;2614:60;;2670:1;2667;2660:12;2685:382;2750:6;2758;2811:2;2799:9;2790:7;2786:23;2782:32;2779:52;;;2827:1;2824;2817:12;2779:52;2866:9;2853:23;2885:31;2910:5;2885:31;:::i;:::-;2935:5;-1:-1:-1;2992:2:1;2977:18;;2964:32;3005:30;2964:32;3005:30;:::i;:::-;3054:7;3044:17;;;2685:382;;;;;:::o;3072:241::-;3128:6;3181:2;3169:9;3160:7;3156:23;3152:32;3149:52;;;3197:1;3194;3187:12;3149:52;3236:9;3223:23;3255:28;3277:5;3255:28;:::i;3318:248::-;3386:6;3394;3447:2;3435:9;3426:7;3422:23;3418:32;3415:52;;;3463:1;3460;3453:12;3415:52;-1:-1:-1;;3486:23:1;;;3556:2;3541:18;;;3528:32;;-1:-1:-1;3318:248:1:o;3805:388::-;3873:6;3881;3934:2;3922:9;3913:7;3909:23;3905:32;3902:52;;;3950:1;3947;3940:12;3902:52;3989:9;3976:23;4008:31;4033:5;4008:31;:::i;:::-;4058:5;-1:-1:-1;4115:2:1;4100:18;;4087:32;4128:33;4087:32;4128:33;:::i;4198:380::-;4277:1;4273:12;;;;4320;;;4341:61;;4395:4;4387:6;4383:17;4373:27;;4341:61;4448:2;4440:6;4437:14;4417:18;4414:38;4411:161;;4494:10;4489:3;4485:20;4482:1;4475:31;4529:4;4526:1;4519:15;4557:4;4554:1;4547:15;4411:161;;4198:380;;;:::o;4583:337::-;4785:2;4767:21;;;4824:2;4804:18;;;4797:30;-1:-1:-1;;;4858:2:1;4843:18;;4836:43;4911:2;4896:18;;4583:337::o;5135:184::-;5205:6;5258:2;5246:9;5237:7;5233:23;5229:32;5226:52;;;5274:1;5271;5264:12;5226:52;-1:-1:-1;5297:16:1;;5135:184;-1:-1:-1;5135:184:1:o;5603:245::-;5670:6;5723:2;5711:9;5702:7;5698:23;5694:32;5691:52;;;5739:1;5736;5729:12;5691:52;5771:9;5765:16;5790:28;5812:5;5790:28;:::i;6211:127::-;6272:10;6267:3;6263:20;6260:1;6253:31;6303:4;6300:1;6293:15;6327:4;6324:1;6317:15;6343:168;6416:9;;;6447;;6464:15;;;6458:22;;6444:37;6434:71;;6485:18;;:::i;6516:217::-;6556:1;6582;6572:132;;6626:10;6621:3;6617:20;6614:1;6607:31;6661:4;6658:1;6651:15;6689:4;6686:1;6679:15;6572:132;-1:-1:-1;6718:9:1;;6516:217::o;7581:125::-;7646:9;;;7667:10;;;7664:36;;;7680:18;;:::i;8137:416::-;8226:1;8263:5;8226:1;8277:270;8298:7;8288:8;8285:21;8277:270;;;8357:4;8353:1;8349:6;8345:17;8339:4;8336:27;8333:53;;;8366:18;;:::i;:::-;8416:7;8406:8;8402:22;8399:55;;;8436:16;;;;8399:55;8515:22;;;;8475:15;;;;8277:270;;;8281:3;8137:416;;;;;:::o;8558:806::-;8607:5;8637:8;8627:80;;-1:-1:-1;8678:1:1;8692:5;;8627:80;8726:4;8716:76;;-1:-1:-1;8763:1:1;8777:5;;8716:76;8808:4;8826:1;8821:59;;;;8894:1;8889:130;;;;8801:218;;8821:59;8851:1;8842:10;;8865:5;;;8889:130;8926:3;8916:8;8913:17;8910:43;;;8933:18;;:::i;:::-;-1:-1:-1;;8989:1:1;8975:16;;9004:5;;8801:218;;9103:2;9093:8;9090:16;9084:3;9078:4;9075:13;9071:36;9065:2;9055:8;9052:16;9047:2;9041:4;9038:12;9034:35;9031:77;9028:159;;;-1:-1:-1;9140:19:1;;;9172:5;;9028:159;9219:34;9244:8;9238:4;9219:34;:::i;:::-;9289:6;9285:1;9281:6;9277:19;9268:7;9265:32;9262:58;;;9300:18;;:::i;:::-;9338:20;;8558:806;-1:-1:-1;;;8558:806:1:o;9369:140::-;9427:5;9456:47;9497:4;9487:8;9483:19;9477:4;9456:47;:::i;15450:128::-;15517:9;;;15538:11;;;15535:37;;;15552:18;;:::i;16790:127::-;16851:10;16846:3;16842:20;16839:1;16832:31;16882:4;16879:1;16872:15;16906:4;16903:1;16896:15;16922:251;16992:6;17045:2;17033:9;17024:7;17020:23;17016:32;17013:52;;;17061:1;17058;17051:12;17013:52;17093:9;17087:16;17112:31;17137:5;17112:31;:::i;17178:980::-;17440:4;17488:3;17477:9;17473:19;17519:6;17508:9;17501:25;17545:2;17583:6;17578:2;17567:9;17563:18;17556:34;17626:3;17621:2;17610:9;17606:18;17599:31;17650:6;17685;17679:13;17716:6;17708;17701:22;17754:3;17743:9;17739:19;17732:26;;17793:2;17785:6;17781:15;17767:29;;17814:1;17824:195;17838:6;17835:1;17832:13;17824:195;;;17903:13;;-1:-1:-1;;;;;17899:39:1;17887:52;;17994:15;;;;17959:12;;;;17935:1;17853:9;17824:195;;;-1:-1:-1;;;;;;;18075:32:1;;;;18070:2;18055:18;;18048:60;-1:-1:-1;;;18139:3:1;18124:19;18117:35;18036:3;17178:980;-1:-1:-1;;;17178:980:1:o

Swarm Source

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