ETH Price: $2,946.36 (-6.68%)
Gas: 6 Gwei

Token

QUEST (QUEST)
 

Overview

Max Total Supply

1,000,000,000,000 QUEST

Holders

226

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
QuestCoin

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

/*

QUEST (QUEST)

Twitter: https://x.com/questcoinerc
Tg: https://t.me/QuestCoinETH
Website: https://www.questcoineth.com

*/


abstract contract Ownable {
    address private _owner;

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

    constructor(address owner_) {
        _transferOwnership(owner_);
    }

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

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

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

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

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

}

interface IERC20 {

    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
    function totalSupply() external view returns (uint256);
    event Transfer(address indexed from, address indexed to, uint256 value);

}

interface IERC20Metadata is IERC20 {

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

}

contract ERC20 is IERC20, IERC20Metadata {

    string private _symbol;
    string private _name;


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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "ERC20: transfer amount greater than allowance");
        unchecked {
            _approve(sender, msg.sender, currentAllowance - amount);
        }

        return true;
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

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

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

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

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

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

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount greater than balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

    }

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }

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

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

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

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(msg.sender, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (
        uint256 amountToken,
        uint256 amountETH,
        uint256 liquidity
    );
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract QuestCoin is ERC20, Ownable {

    address public LPTokenReceiver;
    address public marketingReceiver;

    uint256 public buyTotalFees;
    uint256 public sellTotalFees;

    uint256 public buyMarketingFee;
    uint256 public buyLiquidityFee;

    uint256 public sellMarketingFee;
    uint256 public sellLiquidityFee;

    uint256 public tokensForMarketing;
    uint256 public tokensForLiquidity;

    IUniswapV2Router02 public router;
    address public liquidityPair;

    mapping(address => bool) public isAMM;

    uint256 public maxTransactionAmount;
    uint256 public maxWallet;

    mapping(address => bool) private isExcludedFromFee;
    mapping(address => bool) public isExcludedFromWalletLimits;

    uint256 public feeDenominator = 1000;
    
    bool private swapping;
    uint256 public swapThreshold;
    bool public limitsInEffect = true;

    // While limits are in effect, an EOA can have exactly one transaction per block
    mapping(address => mapping(uint256 => uint256)) public blockTransferCount;

    // This feature can only be enabled and not disabled.
    // Enabling these will cap the buy or sell fee to some value
    // a value of 50 => 5% max. A value of 150 => 15% max
    bool maxSellFeeSet = false;
    bool maxBuyFeeSet = false;
    uint256 maxSellFee;
    uint256 maxBuyFee;

    mapping(address => bool) public isFeeWhitelisted;
    bool public feeWhitelistInEffect = true;

    constructor(
        address router_,
        address LPTokenReceiver_,
        address marketingReceiver_
    ) ERC20("QUEST", "QUEST") Ownable(msg.sender) {

        LPTokenReceiver = LPTokenReceiver_;
        marketingReceiver = marketingReceiver_;

        router = IUniswapV2Router02(router_);

        liquidityPair = IUniswapV2Factory(
            router.factory()
        ).createPair(
            address(this),
            router.WETH()
        );

        isAMM[liquidityPair] = true;

        isExcludedFromWalletLimits[address(liquidityPair)] = true;
        isExcludedFromWalletLimits[address(router)] = true;
        isExcludedFromWalletLimits[address(this)] = true;
        isExcludedFromWalletLimits[address(0xdead)] = true;
        isExcludedFromWalletLimits[msg.sender] = true;
        isExcludedFromWalletLimits[LPTokenReceiver] = true;

        uint256 totalSupply = 1_000_000_000_000 * 1e18;
        
        buyMarketingFee = 0;
        buyLiquidityFee = 0;

        sellMarketingFee = 280;
        sellLiquidityFee = 20;

        buyTotalFees = buyMarketingFee + buyLiquidityFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee;

        isExcludedFromFee[address(0xdead)] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[LPTokenReceiver] = true;

        maxTransactionAmount = totalSupply * 5 / 1000;
        maxWallet = totalSupply * 10 / 1000;
        swapThreshold = totalSupply / 1000;

        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function airdropTokens(address[] calldata holders, uint256[] calldata amounts) external {

        for (uint i=0; i<holders.length; i++) {
            super._transfer(msg.sender, holders[i], amounts[i]);
        }
    }

    function setFeeWhitelist(address[] calldata accounts, bool[] calldata isWhitelisted) external onlyOwner {
        for (uint i=0; i<accounts.length; i++) {
            isFeeWhitelisted[accounts[i]] = isWhitelisted[i];
        }        
    }

    function addLiquidity(uint256 tokenAmount) external payable onlyOwner {
        _addLiquidity(tokenAmount, msg.value);
    }

    function setBuyFees(uint256 marketingFee, uint256 liquidityFee) external onlyOwner {
        buyMarketingFee = marketingFee;
        buyLiquidityFee = liquidityFee;

        buyTotalFees = buyMarketingFee + buyLiquidityFee;

        if (maxBuyFeeSet) {
            require(buyTotalFees <= maxBuyFee);
        }
    }

    function setSellFees(uint256 marketingFee, uint256 liquidityFee) external onlyOwner {
        sellMarketingFee = marketingFee;
        sellLiquidityFee = liquidityFee;

        sellTotalFees = sellMarketingFee + sellLiquidityFee;

        if (maxSellFeeSet) {
            require(sellTotalFees <= maxSellFee);
        }
    }

    function setLimits(uint256 maxTransactionAmount_, uint256 maxWallet_) external onlyOwner {
        maxTransactionAmount = maxTransactionAmount_;
        maxWallet = maxWallet_;
    }

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

    function setFeeWhitelistInEffect(bool inEffect) external onlyOwner {
        feeWhitelistInEffect = inEffect;
    }

    function setSwapThreshold(uint256 swapThreshold_) external onlyOwner {
        swapThreshold = swapThreshold_;
    }

    function setLPTokenReceiver(address newReceiver) external onlyOwner {
        require(LPTokenReceiver != newReceiver);
        isExcludedFromFee[newReceiver] = true;
        isExcludedFromWalletLimits[newReceiver] = true;
        LPTokenReceiver = newReceiver;
    }

    function setMarketingReceiver(address newReceiver) external onlyOwner {
        require(marketingReceiver != newReceiver);
        isExcludedFromFee[newReceiver] = true;
        isExcludedFromWalletLimits[newReceiver] = true;
        marketingReceiver = newReceiver;
    }

    function setAMM(address ammAddress, bool isAMM_) external onlyOwner {
        isAMM[ammAddress] = isAMM_;
    }

    function setWalletExcludedFromLimits(address wallet, bool isExcluded) external onlyOwner {
        isExcludedFromWalletLimits[wallet] = isExcluded;
    }

    function setWalletExcludedFromFees(address wallet, bool isExcluded) external onlyOwner {
        isExcludedFromFee[wallet] = isExcluded;
    }

    function setRouter(address router_) external onlyOwner {
        router = IUniswapV2Router02(router_);
    }

    function setLiquidityPair(address pairAddress) external onlyOwner {
        liquidityPair = pairAddress;
    }

    function enableMaxSellFeeLimit(uint256 limit) external onlyOwner {
        require(limit <= feeDenominator && limit < maxSellFee);
        maxSellFee = limit;
        maxSellFeeSet = true;
    }

    function enableMaxBuyFeeLimit(uint256 limit) external onlyOwner {
        require(limit <= feeDenominator && limit < maxBuyFee);
        maxBuyFee = limit;
        maxBuyFeeSet = true;
    }

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

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

        bool takeFee = !swapping;

        if (isExcludedFromFee[from] || isExcludedFromFee[to]) {
            takeFee = false;
        }

        if (takeFee) {

            uint256 fees = 0;

            if (isAMM[to] && sellTotalFees > 0) {
                uint256 newTokensForMarketing = amount * sellMarketingFee / feeDenominator;
                uint256 newTokensForLiquidity = amount * sellLiquidityFee / feeDenominator;

                fees = newTokensForMarketing + newTokensForLiquidity;

                tokensForMarketing += newTokensForMarketing;
                tokensForLiquidity += newTokensForLiquidity;
            }

            else if (isAMM[from] && buyTotalFees > 0) {
                if (!feeWhitelistInEffect || !isFeeWhitelisted[to]) {
                    uint256 newTokensForMarketing = amount * buyMarketingFee / feeDenominator;
                    uint256 newTokensForLiquidity = amount * buyLiquidityFee / feeDenominator;

                    fees = newTokensForMarketing + newTokensForLiquidity;

                    tokensForMarketing += newTokensForMarketing;
                    tokensForLiquidity += newTokensForLiquidity;
                }
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
                amount -= fees;
            }
        }

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0xdead) &&
                !swapping
            ) {
                require(blockTransferCount[tx.origin][block.number] == 0);
                blockTransferCount[tx.origin][block.number] = 1;

                if (
                    isAMM[from] &&
                    !isExcludedFromWalletLimits[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "!maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "!maxWallet"
                    );
                } else if (
                    isAMM[to] &&
                    !isExcludedFromWalletLimits[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "!maxTransactionAmount."
                    );
                } else if (!isExcludedFromWalletLimits[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "!maxWallet"
                    );
                }
            }
        }

        if (
            !swapping &&
            from != liquidityPair &&
            to == liquidityPair &&
            !isExcludedFromFee[from] &&
            !isExcludedFromFee[to] &&
            balanceOf(address(this)) >= swapThreshold
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }


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

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

    function swapBack() internal {
        tokensForMarketing = balanceOf(address(this)) - tokensForLiquidity;
        if (tokensForLiquidity + tokensForMarketing == 0) {
            return;
        }

        uint256 liquidity = tokensForLiquidity / 2;
        uint256 amountToSwapForETH = tokensForMarketing + (tokensForLiquidity - liquidity);
        swapTokensForEth(amountToSwapForETH);

        uint256 ethForLiquidity = address(this).balance * (tokensForLiquidity - liquidity) / amountToSwapForETH;

        if (liquidity > 0 && ethForLiquidity > 0) {
            _addLiquidity(liquidity, ethForLiquidity);
        }

        if (tokensForMarketing > 0) {
            marketingReceiver.call{value: address(this).balance}("");
        }

        tokensForLiquidity = 0;
        tokensForMarketing = 0;
    }

    function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) internal {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            LPTokenReceiver,
            block.timestamp
        );
    }

    function withdrawStuckTokens(address tokenAddress, uint256 amount) external {
        require(tokenAddress != address(this));
        uint256 tokenBalance = IERC20(tokenAddress).balanceOf(address(this));
        uint256 amountToTransfer = amount == 0 ? tokenBalance : amount;
        _safeTransfer(tokenAddress, marketingReceiver, amountToTransfer);
    }

    function withdrawStuckETH() external {
        (bool success,) = marketingReceiver.call{value: address(this).balance}("");
        require(success);
    }

    function _safeTransfer(address token, address to, uint256 value) private {
        bytes4 TRANSFERSELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)')));

        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(TRANSFERSELECTOR, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TRANSFER_FAILED');
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"router_","type":"address"},{"internalType":"address","name":"LPTokenReceiver_","type":"address"},{"internalType":"address","name":"marketingReceiver_","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":"LPTokenReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"holders","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"blockTransferCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"enableMaxBuyFeeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"enableMaxSellFeeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeWhitelistInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAMM","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromWalletLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ammAddress","type":"address"},{"internalType":"bool","name":"isAMM_","type":"bool"}],"name":"setAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool[]","name":"isWhitelisted","type":"bool[]"}],"name":"setFeeWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"inEffect","type":"bool"}],"name":"setFeeWhitelistInEffect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReceiver","type":"address"}],"name":"setLPTokenReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTransactionAmount_","type":"uint256"},{"internalType":"uint256","name":"maxWallet_","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pairAddress","type":"address"}],"name":"setLiquidityPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReceiver","type":"address"}],"name":"setMarketingReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router_","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapThreshold_","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setWalletExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setWalletExcludedFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526103e8601755601a8054600160ff199182168117909255601c805461ffff191690556020805490911690911790553480156200003e575f80fd5b506040516200301738038062003017833981016040819052620000619162000582565b60408051808201825260058082526414555154d560da1b6020808401829052845180860190955291845290830152339160016200009f838262000669565b505f620000ad828262000669565b505050620000c1816200043060201b60201c565b50600680546001600160a01b038085166001600160a01b031992831617909255600780548484169083161790556010805492861692909116821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000137573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015d919062000731565b6001600160a01b031663c9c653963060105f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001bd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e3919062000731565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200022e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000254919062000731565b601180546001600160a01b0319166001600160a01b0392831690811782555f908152601260209081526040808320805460ff1990811660019081179092559454861684526016909252808320805485168317905560105485168352808320805485168317905530835280832080548516831790557f290d80ce586bfe95e1ebf348e3ba109df813891ad867417e64d38c5a50473b5780548516831790553383528083208054851683179055600654909416825292812080549092169092179055600a819055600b819055610118600c556014600d556c0c9f2c9cd04674edea400000009062000344908062000768565b600855600d54600c5462000359919062000768565b60095560156020527f7ed1dca03d96f947ab02d66053f47073699eb6287021936c92f54972932767e58054600160ff199182168117909255305f9081526040808220805484168517905533825280822080548416851790556006546001600160a01b031682529020805490911690911790556103e8620003db82600562000784565b620003e791906200079e565b6013556103e8620003fa82600a62000784565b6200040691906200079e565b601455620004176103e8826200079e565b60195562000426338262000481565b50505050620007be565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620004dc5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060035f828254620004ef919062000768565b90915550506001600160a01b0382165f90815260046020526040812080548392906200051d90849062000768565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b80516001600160a01b03811681146200057d575f80fd5b919050565b5f805f6060848603121562000595575f80fd5b620005a08462000566565b9250620005b06020850162000566565b9150620005c06040850162000566565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005f257607f821691505b6020821081036200061157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000664575f81815260208120601f850160051c810160208610156200063f5750805b601f850160051c820191505b8181101562000660578281556001016200064b565b5050505b505050565b81516001600160401b03811115620006855762000685620005c9565b6200069d81620006968454620005dd565b8462000617565b602080601f831160018114620006d3575f8415620006bb5750858301515b5f19600386901b1c1916600185901b17855562000660565b5f85815260208120601f198616915b828110156200070357888601518255948401946001909101908401620006e2565b50858210156200072157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121562000742575f80fd5b6200074d8262000566565b9392505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156200077e576200077e62000754565b92915050565b80820281158282048414176200077e576200077e62000754565b5f82620007b957634e487b7160e01b5f52601260045260245ffd5b500490565b61284b80620007cc5f395ff3fe60806040526004361061035e575f3560e01c806392136913116101bd578063c8c8ebe4116100f2578063e24a880211610092578063f5648a4f1161006d578063f5648a4f146109c4578063f6374342146109d8578063f887ea40146109ed578063f8b45b0514610a0c575f80fd5b8063e24a880214610977578063f11a24d314610990578063f2fde38b146109a5575f80fd5b8063d85ba063116100cd578063d85ba063146108d1578063daea8623146108e6578063dd62ed3e14610914578063e219558e14610958575f80fd5b8063c8c8ebe41461086f578063d46b6a3014610884578063d6498bc2146108b2575f80fd5b8063a5949bcf1161015d578063b2d8f20811610138578063b2d8f208146107f3578063bd61f0a614610812578063c0d7865514610831578063c4590d3f14610850575f80fd5b8063a5949bcf14610796578063a9059cbb146107b5578063a9d3cd8a146107d4575f80fd5b80639d93598e116101985780639d93598e146107035780639df4b65e146107225780639fd8234e14610758578063a457c2d714610777575f80fd5b806392136913146106bb57806395d89b41146106d05780639d0014b1146106e4575f80fd5b80634a62bb6511610293578063751039fc11610233578063808a54571161020e578063808a5457146106415780638d67cffe146106605780638da5cb5b1461067f5780638e89cf4d1461069c575f80fd5b8063751039fc146105f957806375b625321461060d5780637bce5a041461062c575f80fd5b80636a486a8e1161026e5780636a486a8e1461057d578063706f69371461059257806370a08231146105b1578063715018a6146105e5575f80fd5b80634a62bb651461052357806351c6590a1461053c5780636940213a1461054f575f80fd5b806318160ddd116102fe57806323b872dd116102d957806323b872dd1461049357806323c04d9d146104b2578063313ce567146104e95780633950935114610504575f80fd5b806318160ddd146104555780631a8145bb146104695780631f3fed8f1461047e575f80fd5b8063095ea7b311610339578063095ea7b3146103d35780630b784062146104025780630e99dcad14610421578063180b0d7e14610440575f80fd5b80630445b6671461036957806306fdde031461039157806307c0f6c7146103b2575f80fd5b3661036557005b5f80fd5b348015610374575f80fd5b5061037e60195481565b6040519081526020015b60405180910390f35b34801561039c575f80fd5b506103a5610a21565b60405161038891906123c9565b3480156103bd575f80fd5b506103d16103cc366004612443565b610ab1565b005b3480156103de575f80fd5b506103f26103ed3660046124be565b610b8e565b6040519015158152602001610388565b34801561040d575f80fd5b506103d161041c3660046124f5565b610ba4565b34801561042c575f80fd5b506103d161043b366004612517565b610bf0565b34801561044b575f80fd5b5061037e60175481565b348015610460575f80fd5b5060035461037e565b348015610474575f80fd5b5061037e600f5481565b348015610489575f80fd5b5061037e600e5481565b34801561049e575f80fd5b506103f26104ad366004612532565b610c90565b3480156104bd575f80fd5b506006546104d1906001600160a01b031681565b6040516001600160a01b039091168152602001610388565b3480156104f4575f80fd5b5060405160128152602001610388565b34801561050f575f80fd5b506103f261051e3660046124be565b610d3d565b34801561052e575f80fd5b50601a546103f29060ff1681565b6103d161054a366004612570565b610d78565b34801561055a575f80fd5b506103f2610569366004612517565b60166020525f908152604090205460ff1681565b348015610588575f80fd5b5061037e60095481565b34801561059d575f80fd5b506103d16105ac366004612443565b610dbe565b3480156105bc575f80fd5b5061037e6105cb366004612517565b6001600160a01b03165f9081526004602052604090205490565b3480156105f0575f80fd5b506103d1610e23565b348015610604575f80fd5b506103d1610e67565b348015610618575f80fd5b506103d1610627366004612517565b610eba565b348015610637575f80fd5b5061037e600a5481565b34801561064c575f80fd5b506011546104d1906001600160a01b031681565b34801561066b575f80fd5b506103d161067a366004612570565b610f5a565b34801561068a575f80fd5b506005546001600160a01b03166104d1565b3480156106a7575f80fd5b506103d16106b6366004612587565b610fc0565b3480156106c6575f80fd5b5061037e600c5481565b3480156106db575f80fd5b506103a5611023565b3480156106ef575f80fd5b506103d16106fe366004612570565b611031565b34801561070e575f80fd5b506103d161071d366004612517565b61106f565b34801561072d575f80fd5b5061037e61073c3660046124be565b601b60209081525f928352604080842090915290825290205481565b348015610763575f80fd5b506103d16107723660046125be565b6110ca565b348015610782575f80fd5b506103f26107913660046124be565b611139565b3480156107a1575f80fd5b506007546104d1906001600160a01b031681565b3480156107c0575f80fd5b506103f26107cf3660046124be565b6111d1565b3480156107df575f80fd5b506103d16107ee366004612587565b6111dd565b3480156107fe575f80fd5b506103d161080d3660046125be565b611240565b34801561081d575f80fd5b506103d161082c3660046124be565b6112b0565b34801561083c575f80fd5b506103d161084b366004612517565b61135e565b34801561085b575f80fd5b506103d161086a3660046125be565b6113b9565b34801561087a575f80fd5b5061037e60135481565b34801561088f575f80fd5b506103f261089e366004612517565b60126020525f908152604090205460ff1681565b3480156108bd575f80fd5b506103d16108cc366004612587565b6113fd565b3480156108dc575f80fd5b5061037e60085481565b3480156108f1575f80fd5b506103f2610900366004612517565b601f6020525f908152604090205460ff1681565b34801561091f575f80fd5b5061037e61092e3660046125de565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610963575f80fd5b506103d1610972366004612570565b611460565b348015610982575f80fd5b506020546103f29060ff1681565b34801561099b575f80fd5b5061037e600b5481565b3480156109b0575f80fd5b506103d16109bf366004612517565b6114c8565b3480156109cf575f80fd5b506103d161156f565b3480156109e3575f80fd5b5061037e600d5481565b3480156109f8575f80fd5b506010546104d1906001600160a01b031681565b348015610a17575f80fd5b5061037e60145481565b606060018054610a309061260a565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5c9061260a565b8015610aa75780601f10610a7e57610100808354040283529160200191610aa7565b820191905f5260205f20905b815481529060010190602001808311610a8a57829003601f168201915b5050505050905090565b33610ac46005546001600160a01b031690565b6001600160a01b031614610af35760405162461bcd60e51b8152600401610aea90612642565b60405180910390fd5b5f5b83811015610b8757828282818110610b0f57610b0f612677565b9050602002016020810190610b2491906124f5565b601f5f878785818110610b3957610b39612677565b9050602002016020810190610b4e9190612517565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905580610b7f8161269f565b915050610af5565b5050505050565b5f610b9a3384846115cb565b5060015b92915050565b33610bb76005546001600160a01b031690565b6001600160a01b031614610bdd5760405162461bcd60e51b8152600401610aea90612642565b6020805460ff1916911515919091179055565b33610c036005546001600160a01b031690565b6001600160a01b031614610c295760405162461bcd60e51b8152600401610aea90612642565b6006546001600160a01b03808316911603610c42575f80fd5b6001600160a01b03165f8181526015602090815260408083208054600160ff1991821681179092556016909352922080549091169091179055600680546001600160a01b0319169091179055565b5f610c9c8484846116ee565b6001600160a01b0384165f90815260026020908152604080832033845290915290205482811015610d255760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526c68616e20616c6c6f77616e636560981b6064820152608401610aea565b610d3285338584036115cb565b506001949350505050565b335f8181526002602090815260408083206001600160a01b03871684529091528120549091610b9a918590610d739086906126b7565b6115cb565b33610d8b6005546001600160a01b031690565b6001600160a01b031614610db15760405162461bcd60e51b8152600401610aea90612642565b610dbb8134611d2c565b50565b5f5b83811015610b8757610e1133868684818110610dde57610dde612677565b9050602002016020810190610df39190612517565b858585818110610e0557610e05612677565b90506020020135611dd6565b80610e1b8161269f565b915050610dc0565b33610e366005546001600160a01b031690565b6001600160a01b031614610e5c5760405162461bcd60e51b8152600401610aea90612642565b610e655f611f98565b565b33610e7a6005546001600160a01b031690565b6001600160a01b031614610ea05760405162461bcd60e51b8152600401610aea90612642565b601a5460ff16610eae575f80fd5b601a805460ff19169055565b33610ecd6005546001600160a01b031690565b6001600160a01b031614610ef35760405162461bcd60e51b8152600401610aea90612642565b6007546001600160a01b03808316911603610f0c575f80fd5b6001600160a01b03165f8181526015602090815260408083208054600160ff1991821681179092556016909352922080549091169091179055600780546001600160a01b0319169091179055565b33610f6d6005546001600160a01b031690565b6001600160a01b031614610f935760405162461bcd60e51b8152600401610aea90612642565b6017548111158015610fa65750601d5481105b610fae575f80fd5b601d55601c805460ff19166001179055565b33610fd36005546001600160a01b031690565b6001600160a01b031614610ff95760405162461bcd60e51b8152600401610aea90612642565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b60605f8054610a309061260a565b336110446005546001600160a01b031690565b6001600160a01b03161461106a5760405162461bcd60e51b8152600401610aea90612642565b601955565b336110826005546001600160a01b031690565b6001600160a01b0316146110a85760405162461bcd60e51b8152600401610aea90612642565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b336110dd6005546001600160a01b031690565b6001600160a01b0316146111035760405162461bcd60e51b8152600401610aea90612642565b600c829055600d81905561111781836126b7565b600955601c5460ff161561113557601d546009541115611135575f80fd5b5050565b335f9081526002602090815260408083206001600160a01b0386168452909152812054828110156111ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610aea565b6111c733858584036115cb565b5060019392505050565b5f610b9a3384846116ee565b336111f06005546001600160a01b031690565b6001600160a01b0316146112165760405162461bcd60e51b8152600401610aea90612642565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b336112536005546001600160a01b031690565b6001600160a01b0316146112795760405162461bcd60e51b8152600401610aea90612642565b600a829055600b81905561128d81836126b7565b600855601c54610100900460ff161561113557601e546008541115611135575f80fd5b306001600160a01b038316036112c4575f80fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611308573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132c91906126ca565b90505f821561133b578261133d565b815b6007549091506113589085906001600160a01b031683611fe9565b50505050565b336113716005546001600160a01b031690565b6001600160a01b0316146113975760405162461bcd60e51b8152600401610aea90612642565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b336113cc6005546001600160a01b031690565b6001600160a01b0316146113f25760405162461bcd60e51b8152600401610aea90612642565b601391909155601455565b336114106005546001600160a01b031690565b6001600160a01b0316146114365760405162461bcd60e51b8152600401610aea90612642565b6001600160a01b03919091165f908152601660205260409020805460ff1916911515919091179055565b336114736005546001600160a01b031690565b6001600160a01b0316146114995760405162461bcd60e51b8152600401610aea90612642565b60175481111580156114ac5750601e5481105b6114b4575f80fd5b601e55601c805461ff001916610100179055565b336114db6005546001600160a01b031690565b6001600160a01b0316146115015760405162461bcd60e51b8152600401610aea90612642565b6001600160a01b0381166115665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610aea565b610dbb81611f98565b6007546040515f916001600160a01b03169047908381818185875af1925050503d805f81146115b9576040519150601f19603f3d011682016040523d82523d5f602084013e6115be565b606091505b5050905080610dbb575f80fd5b6001600160a01b03831661162d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610aea565b6001600160a01b03821661168e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610aea565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117525760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610aea565b6001600160a01b0382166117b45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610aea565b805f036117cb576117c683835f611dd6565b505050565b6018546001600160a01b0384165f9081526015602052604090205460ff9182161591168061181057506001600160a01b0383165f9081526015602052604090205460ff165b1561181857505f5b80156119be576001600160a01b0383165f9081526012602052604081205460ff16801561184657505f600954115b156118c9575f601754600c548561185d91906126e1565b61186791906126f8565b90505f601754600d548661187b91906126e1565b61188591906126f8565b905061189181836126b7565b925081600e5f8282546118a491906126b7565b9250508190555080600f5f8282546118bc91906126b7565b9091555061199e92505050565b6001600160a01b0385165f9081526012602052604090205460ff1680156118f157505f600854115b1561199e5760205460ff16158061192057506001600160a01b0384165f908152601f602052604090205460ff16155b1561199e575f601754600a548561193791906126e1565b61194191906126f8565b90505f601754600b548661195591906126e1565b61195f91906126f8565b905061196b81836126b7565b925081600e5f82825461197e91906126b7565b9250508190555080600f5f82825461199691906126b7565b909155505050505b80156119bc576119af853083611dd6565b6119b98184612717565b92505b505b601a5460ff1615611c5e576005546001600160a01b038581169116148015906119f557506005546001600160a01b03848116911614155b8015611a0c57506001600160a01b03831661dead14155b8015611a1b575060185460ff16155b15611c5e57325f908152601b6020908152604080832043845290915290205415611a43575f80fd5b325f908152601b602090815260408083204384528252808320600190556001600160a01b0387168352601290915290205460ff168015611a9b57506001600160a01b0383165f9081526016602052604090205460ff16155b15611b5057601354821115611aeb5760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610aea565b6014546001600160a01b0384165f90815260046020526040902054611b1090846126b7565b1115611b4b5760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610aea565b611c5e565b6001600160a01b0383165f9081526012602052604090205460ff168015611b8f57506001600160a01b0384165f9081526016602052604090205460ff16155b15611bdf57601354821115611b4b5760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610aea565b6001600160a01b0383165f9081526016602052604090205460ff16611c5e576014546001600160a01b0384165f90815260046020526040902054611c2390846126b7565b1115611c5e5760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610aea565b60185460ff16158015611c7f57506011546001600160a01b03858116911614155b8015611c9857506011546001600160a01b038481169116145b8015611cbc57506001600160a01b0384165f9081526015602052604090205460ff16155b8015611ce057506001600160a01b0383165f9081526015602052604090205460ff16155b8015611cfc5750601954305f9081526004602052604090205410155b15611d21576018805460ff19166001179055611d16612144565b6018805460ff191690555b611358848484611dd6565b601054611d449030906001600160a01b0316846115cb565b60105460065460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611db1573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b87919061272a565b6001600160a01b038316611e365760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610aea565b6001600160a01b038216611e8c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610aea565b6001600160a01b0383165f9081526004602052604090205481811015611f085760405162461bcd60e51b815260206004820152602b60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526a68616e2062616c616e636560a81b6064820152608401610aea565b6001600160a01b038085165f90815260046020526040808220858503905591851681529081208054849290611f3e9084906126b7565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f8a91815260200190565b60405180910390a350505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b17905291517fa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b925f9283929088169161209691612755565b5f604051808303815f865af19150503d805f81146120cf576040519150601f19603f3d011682016040523d82523d5f602084013e6120d4565b606091505b50915091508180156120fe5750805115806120fe5750808060200190518101906120fe9190612770565b61213c5760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610aea565b505050505050565b600f54305f908152600460205260409020546121609190612717565b600e819055600f5461217291906126b7565b5f0361217a57565b5f6002600f5461218a91906126f8565b90505f81600f5461219b9190612717565b600e546121a891906126b7565b90506121b38161225f565b5f8183600f546121c39190612717565b6121cd90476126e1565b6121d791906126f8565b90505f831180156121e757505f81115b156121f6576121f68382611d2c565b600e5415612251576007546040516001600160a01b039091169047905f81818185875af1925050503d805f8114612248576040519150601f19603f3d011682016040523d82523d5f602084013e61224d565b606091505b5050505b50505f600f819055600e5550565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061229257612292612677565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156122e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061230d919061278b565b8160018151811061232057612320612677565b6001600160a01b03928316602091820292909201015260105461234691309116846115cb565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061237e9085905f908690309042906004016127a6565b5f604051808303815f87803b158015612395575f80fd5b505af115801561213c573d5f803e3d5ffd5b5f5b838110156123c15781810151838201526020016123a9565b50505f910152565b602081525f82518060208401526123e78160408501602087016123a7565b601f01601f19169190910160400192915050565b5f8083601f84011261240b575f80fd5b50813567ffffffffffffffff811115612422575f80fd5b6020830191508360208260051b850101111561243c575f80fd5b9250929050565b5f805f8060408587031215612456575f80fd5b843567ffffffffffffffff8082111561246d575f80fd5b612479888389016123fb565b90965094506020870135915080821115612491575f80fd5b5061249e878288016123fb565b95989497509550505050565b6001600160a01b0381168114610dbb575f80fd5b5f80604083850312156124cf575f80fd5b82356124da816124aa565b946020939093013593505050565b8015158114610dbb575f80fd5b5f60208284031215612505575f80fd5b8135612510816124e8565b9392505050565b5f60208284031215612527575f80fd5b8135612510816124aa565b5f805f60608486031215612544575f80fd5b833561254f816124aa565b9250602084013561255f816124aa565b929592945050506040919091013590565b5f60208284031215612580575f80fd5b5035919050565b5f8060408385031215612598575f80fd5b82356125a3816124aa565b915060208301356125b3816124e8565b809150509250929050565b5f80604083850312156125cf575f80fd5b50508035926020909101359150565b5f80604083850312156125ef575f80fd5b82356125fa816124aa565b915060208301356125b3816124aa565b600181811c9082168061261e57607f821691505b60208210810361263c57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600182016126b0576126b061268b565b5060010190565b80820180821115610b9e57610b9e61268b565b5f602082840312156126da575f80fd5b5051919050565b8082028115828204841417610b9e57610b9e61268b565b5f8261271257634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115610b9e57610b9e61268b565b5f805f6060848603121561273c575f80fd5b8351925060208401519150604084015190509250925092565b5f82516127668184602087016123a7565b9190910192915050565b5f60208284031215612780575f80fd5b8151612510816124e8565b5f6020828403121561279b575f80fd5b8151612510816124aa565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156127f45784516001600160a01b0316835293830193918301916001016127cf565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f0eedee2ab3269c6006ce25f21f6e9d4739d906562da4d561042193e96f1e59f64736f6c634300081500330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000003fd8086d40bfa97d944b3d5621f8b4d31ca4fc0d0000000000000000000000003fd8086d40bfa97d944b3d5621f8b4d31ca4fc0d

Deployed Bytecode

0x60806040526004361061035e575f3560e01c806392136913116101bd578063c8c8ebe4116100f2578063e24a880211610092578063f5648a4f1161006d578063f5648a4f146109c4578063f6374342146109d8578063f887ea40146109ed578063f8b45b0514610a0c575f80fd5b8063e24a880214610977578063f11a24d314610990578063f2fde38b146109a5575f80fd5b8063d85ba063116100cd578063d85ba063146108d1578063daea8623146108e6578063dd62ed3e14610914578063e219558e14610958575f80fd5b8063c8c8ebe41461086f578063d46b6a3014610884578063d6498bc2146108b2575f80fd5b8063a5949bcf1161015d578063b2d8f20811610138578063b2d8f208146107f3578063bd61f0a614610812578063c0d7865514610831578063c4590d3f14610850575f80fd5b8063a5949bcf14610796578063a9059cbb146107b5578063a9d3cd8a146107d4575f80fd5b80639d93598e116101985780639d93598e146107035780639df4b65e146107225780639fd8234e14610758578063a457c2d714610777575f80fd5b806392136913146106bb57806395d89b41146106d05780639d0014b1146106e4575f80fd5b80634a62bb6511610293578063751039fc11610233578063808a54571161020e578063808a5457146106415780638d67cffe146106605780638da5cb5b1461067f5780638e89cf4d1461069c575f80fd5b8063751039fc146105f957806375b625321461060d5780637bce5a041461062c575f80fd5b80636a486a8e1161026e5780636a486a8e1461057d578063706f69371461059257806370a08231146105b1578063715018a6146105e5575f80fd5b80634a62bb651461052357806351c6590a1461053c5780636940213a1461054f575f80fd5b806318160ddd116102fe57806323b872dd116102d957806323b872dd1461049357806323c04d9d146104b2578063313ce567146104e95780633950935114610504575f80fd5b806318160ddd146104555780631a8145bb146104695780631f3fed8f1461047e575f80fd5b8063095ea7b311610339578063095ea7b3146103d35780630b784062146104025780630e99dcad14610421578063180b0d7e14610440575f80fd5b80630445b6671461036957806306fdde031461039157806307c0f6c7146103b2575f80fd5b3661036557005b5f80fd5b348015610374575f80fd5b5061037e60195481565b6040519081526020015b60405180910390f35b34801561039c575f80fd5b506103a5610a21565b60405161038891906123c9565b3480156103bd575f80fd5b506103d16103cc366004612443565b610ab1565b005b3480156103de575f80fd5b506103f26103ed3660046124be565b610b8e565b6040519015158152602001610388565b34801561040d575f80fd5b506103d161041c3660046124f5565b610ba4565b34801561042c575f80fd5b506103d161043b366004612517565b610bf0565b34801561044b575f80fd5b5061037e60175481565b348015610460575f80fd5b5060035461037e565b348015610474575f80fd5b5061037e600f5481565b348015610489575f80fd5b5061037e600e5481565b34801561049e575f80fd5b506103f26104ad366004612532565b610c90565b3480156104bd575f80fd5b506006546104d1906001600160a01b031681565b6040516001600160a01b039091168152602001610388565b3480156104f4575f80fd5b5060405160128152602001610388565b34801561050f575f80fd5b506103f261051e3660046124be565b610d3d565b34801561052e575f80fd5b50601a546103f29060ff1681565b6103d161054a366004612570565b610d78565b34801561055a575f80fd5b506103f2610569366004612517565b60166020525f908152604090205460ff1681565b348015610588575f80fd5b5061037e60095481565b34801561059d575f80fd5b506103d16105ac366004612443565b610dbe565b3480156105bc575f80fd5b5061037e6105cb366004612517565b6001600160a01b03165f9081526004602052604090205490565b3480156105f0575f80fd5b506103d1610e23565b348015610604575f80fd5b506103d1610e67565b348015610618575f80fd5b506103d1610627366004612517565b610eba565b348015610637575f80fd5b5061037e600a5481565b34801561064c575f80fd5b506011546104d1906001600160a01b031681565b34801561066b575f80fd5b506103d161067a366004612570565b610f5a565b34801561068a575f80fd5b506005546001600160a01b03166104d1565b3480156106a7575f80fd5b506103d16106b6366004612587565b610fc0565b3480156106c6575f80fd5b5061037e600c5481565b3480156106db575f80fd5b506103a5611023565b3480156106ef575f80fd5b506103d16106fe366004612570565b611031565b34801561070e575f80fd5b506103d161071d366004612517565b61106f565b34801561072d575f80fd5b5061037e61073c3660046124be565b601b60209081525f928352604080842090915290825290205481565b348015610763575f80fd5b506103d16107723660046125be565b6110ca565b348015610782575f80fd5b506103f26107913660046124be565b611139565b3480156107a1575f80fd5b506007546104d1906001600160a01b031681565b3480156107c0575f80fd5b506103f26107cf3660046124be565b6111d1565b3480156107df575f80fd5b506103d16107ee366004612587565b6111dd565b3480156107fe575f80fd5b506103d161080d3660046125be565b611240565b34801561081d575f80fd5b506103d161082c3660046124be565b6112b0565b34801561083c575f80fd5b506103d161084b366004612517565b61135e565b34801561085b575f80fd5b506103d161086a3660046125be565b6113b9565b34801561087a575f80fd5b5061037e60135481565b34801561088f575f80fd5b506103f261089e366004612517565b60126020525f908152604090205460ff1681565b3480156108bd575f80fd5b506103d16108cc366004612587565b6113fd565b3480156108dc575f80fd5b5061037e60085481565b3480156108f1575f80fd5b506103f2610900366004612517565b601f6020525f908152604090205460ff1681565b34801561091f575f80fd5b5061037e61092e3660046125de565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610963575f80fd5b506103d1610972366004612570565b611460565b348015610982575f80fd5b506020546103f29060ff1681565b34801561099b575f80fd5b5061037e600b5481565b3480156109b0575f80fd5b506103d16109bf366004612517565b6114c8565b3480156109cf575f80fd5b506103d161156f565b3480156109e3575f80fd5b5061037e600d5481565b3480156109f8575f80fd5b506010546104d1906001600160a01b031681565b348015610a17575f80fd5b5061037e60145481565b606060018054610a309061260a565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5c9061260a565b8015610aa75780601f10610a7e57610100808354040283529160200191610aa7565b820191905f5260205f20905b815481529060010190602001808311610a8a57829003601f168201915b5050505050905090565b33610ac46005546001600160a01b031690565b6001600160a01b031614610af35760405162461bcd60e51b8152600401610aea90612642565b60405180910390fd5b5f5b83811015610b8757828282818110610b0f57610b0f612677565b9050602002016020810190610b2491906124f5565b601f5f878785818110610b3957610b39612677565b9050602002016020810190610b4e9190612517565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905580610b7f8161269f565b915050610af5565b5050505050565b5f610b9a3384846115cb565b5060015b92915050565b33610bb76005546001600160a01b031690565b6001600160a01b031614610bdd5760405162461bcd60e51b8152600401610aea90612642565b6020805460ff1916911515919091179055565b33610c036005546001600160a01b031690565b6001600160a01b031614610c295760405162461bcd60e51b8152600401610aea90612642565b6006546001600160a01b03808316911603610c42575f80fd5b6001600160a01b03165f8181526015602090815260408083208054600160ff1991821681179092556016909352922080549091169091179055600680546001600160a01b0319169091179055565b5f610c9c8484846116ee565b6001600160a01b0384165f90815260026020908152604080832033845290915290205482811015610d255760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526c68616e20616c6c6f77616e636560981b6064820152608401610aea565b610d3285338584036115cb565b506001949350505050565b335f8181526002602090815260408083206001600160a01b03871684529091528120549091610b9a918590610d739086906126b7565b6115cb565b33610d8b6005546001600160a01b031690565b6001600160a01b031614610db15760405162461bcd60e51b8152600401610aea90612642565b610dbb8134611d2c565b50565b5f5b83811015610b8757610e1133868684818110610dde57610dde612677565b9050602002016020810190610df39190612517565b858585818110610e0557610e05612677565b90506020020135611dd6565b80610e1b8161269f565b915050610dc0565b33610e366005546001600160a01b031690565b6001600160a01b031614610e5c5760405162461bcd60e51b8152600401610aea90612642565b610e655f611f98565b565b33610e7a6005546001600160a01b031690565b6001600160a01b031614610ea05760405162461bcd60e51b8152600401610aea90612642565b601a5460ff16610eae575f80fd5b601a805460ff19169055565b33610ecd6005546001600160a01b031690565b6001600160a01b031614610ef35760405162461bcd60e51b8152600401610aea90612642565b6007546001600160a01b03808316911603610f0c575f80fd5b6001600160a01b03165f8181526015602090815260408083208054600160ff1991821681179092556016909352922080549091169091179055600780546001600160a01b0319169091179055565b33610f6d6005546001600160a01b031690565b6001600160a01b031614610f935760405162461bcd60e51b8152600401610aea90612642565b6017548111158015610fa65750601d5481105b610fae575f80fd5b601d55601c805460ff19166001179055565b33610fd36005546001600160a01b031690565b6001600160a01b031614610ff95760405162461bcd60e51b8152600401610aea90612642565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b60605f8054610a309061260a565b336110446005546001600160a01b031690565b6001600160a01b03161461106a5760405162461bcd60e51b8152600401610aea90612642565b601955565b336110826005546001600160a01b031690565b6001600160a01b0316146110a85760405162461bcd60e51b8152600401610aea90612642565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b336110dd6005546001600160a01b031690565b6001600160a01b0316146111035760405162461bcd60e51b8152600401610aea90612642565b600c829055600d81905561111781836126b7565b600955601c5460ff161561113557601d546009541115611135575f80fd5b5050565b335f9081526002602090815260408083206001600160a01b0386168452909152812054828110156111ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610aea565b6111c733858584036115cb565b5060019392505050565b5f610b9a3384846116ee565b336111f06005546001600160a01b031690565b6001600160a01b0316146112165760405162461bcd60e51b8152600401610aea90612642565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b336112536005546001600160a01b031690565b6001600160a01b0316146112795760405162461bcd60e51b8152600401610aea90612642565b600a829055600b81905561128d81836126b7565b600855601c54610100900460ff161561113557601e546008541115611135575f80fd5b306001600160a01b038316036112c4575f80fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611308573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132c91906126ca565b90505f821561133b578261133d565b815b6007549091506113589085906001600160a01b031683611fe9565b50505050565b336113716005546001600160a01b031690565b6001600160a01b0316146113975760405162461bcd60e51b8152600401610aea90612642565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b336113cc6005546001600160a01b031690565b6001600160a01b0316146113f25760405162461bcd60e51b8152600401610aea90612642565b601391909155601455565b336114106005546001600160a01b031690565b6001600160a01b0316146114365760405162461bcd60e51b8152600401610aea90612642565b6001600160a01b03919091165f908152601660205260409020805460ff1916911515919091179055565b336114736005546001600160a01b031690565b6001600160a01b0316146114995760405162461bcd60e51b8152600401610aea90612642565b60175481111580156114ac5750601e5481105b6114b4575f80fd5b601e55601c805461ff001916610100179055565b336114db6005546001600160a01b031690565b6001600160a01b0316146115015760405162461bcd60e51b8152600401610aea90612642565b6001600160a01b0381166115665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610aea565b610dbb81611f98565b6007546040515f916001600160a01b03169047908381818185875af1925050503d805f81146115b9576040519150601f19603f3d011682016040523d82523d5f602084013e6115be565b606091505b5050905080610dbb575f80fd5b6001600160a01b03831661162d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610aea565b6001600160a01b03821661168e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610aea565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117525760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610aea565b6001600160a01b0382166117b45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610aea565b805f036117cb576117c683835f611dd6565b505050565b6018546001600160a01b0384165f9081526015602052604090205460ff9182161591168061181057506001600160a01b0383165f9081526015602052604090205460ff165b1561181857505f5b80156119be576001600160a01b0383165f9081526012602052604081205460ff16801561184657505f600954115b156118c9575f601754600c548561185d91906126e1565b61186791906126f8565b90505f601754600d548661187b91906126e1565b61188591906126f8565b905061189181836126b7565b925081600e5f8282546118a491906126b7565b9250508190555080600f5f8282546118bc91906126b7565b9091555061199e92505050565b6001600160a01b0385165f9081526012602052604090205460ff1680156118f157505f600854115b1561199e5760205460ff16158061192057506001600160a01b0384165f908152601f602052604090205460ff16155b1561199e575f601754600a548561193791906126e1565b61194191906126f8565b90505f601754600b548661195591906126e1565b61195f91906126f8565b905061196b81836126b7565b925081600e5f82825461197e91906126b7565b9250508190555080600f5f82825461199691906126b7565b909155505050505b80156119bc576119af853083611dd6565b6119b98184612717565b92505b505b601a5460ff1615611c5e576005546001600160a01b038581169116148015906119f557506005546001600160a01b03848116911614155b8015611a0c57506001600160a01b03831661dead14155b8015611a1b575060185460ff16155b15611c5e57325f908152601b6020908152604080832043845290915290205415611a43575f80fd5b325f908152601b602090815260408083204384528252808320600190556001600160a01b0387168352601290915290205460ff168015611a9b57506001600160a01b0383165f9081526016602052604090205460ff16155b15611b5057601354821115611aeb5760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610aea565b6014546001600160a01b0384165f90815260046020526040902054611b1090846126b7565b1115611b4b5760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610aea565b611c5e565b6001600160a01b0383165f9081526012602052604090205460ff168015611b8f57506001600160a01b0384165f9081526016602052604090205460ff16155b15611bdf57601354821115611b4b5760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610aea565b6001600160a01b0383165f9081526016602052604090205460ff16611c5e576014546001600160a01b0384165f90815260046020526040902054611c2390846126b7565b1115611c5e5760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610aea565b60185460ff16158015611c7f57506011546001600160a01b03858116911614155b8015611c9857506011546001600160a01b038481169116145b8015611cbc57506001600160a01b0384165f9081526015602052604090205460ff16155b8015611ce057506001600160a01b0383165f9081526015602052604090205460ff16155b8015611cfc5750601954305f9081526004602052604090205410155b15611d21576018805460ff19166001179055611d16612144565b6018805460ff191690555b611358848484611dd6565b601054611d449030906001600160a01b0316846115cb565b60105460065460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611db1573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b87919061272a565b6001600160a01b038316611e365760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610aea565b6001600160a01b038216611e8c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610aea565b6001600160a01b0383165f9081526004602052604090205481811015611f085760405162461bcd60e51b815260206004820152602b60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526a68616e2062616c616e636560a81b6064820152608401610aea565b6001600160a01b038085165f90815260046020526040808220858503905591851681529081208054849290611f3e9084906126b7565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f8a91815260200190565b60405180910390a350505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b17905291517fa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b925f9283929088169161209691612755565b5f604051808303815f865af19150503d805f81146120cf576040519150601f19603f3d011682016040523d82523d5f602084013e6120d4565b606091505b50915091508180156120fe5750805115806120fe5750808060200190518101906120fe9190612770565b61213c5760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610aea565b505050505050565b600f54305f908152600460205260409020546121609190612717565b600e819055600f5461217291906126b7565b5f0361217a57565b5f6002600f5461218a91906126f8565b90505f81600f5461219b9190612717565b600e546121a891906126b7565b90506121b38161225f565b5f8183600f546121c39190612717565b6121cd90476126e1565b6121d791906126f8565b90505f831180156121e757505f81115b156121f6576121f68382611d2c565b600e5415612251576007546040516001600160a01b039091169047905f81818185875af1925050503d805f8114612248576040519150601f19603f3d011682016040523d82523d5f602084013e61224d565b606091505b5050505b50505f600f819055600e5550565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061229257612292612677565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156122e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061230d919061278b565b8160018151811061232057612320612677565b6001600160a01b03928316602091820292909201015260105461234691309116846115cb565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061237e9085905f908690309042906004016127a6565b5f604051808303815f87803b158015612395575f80fd5b505af115801561213c573d5f803e3d5ffd5b5f5b838110156123c15781810151838201526020016123a9565b50505f910152565b602081525f82518060208401526123e78160408501602087016123a7565b601f01601f19169190910160400192915050565b5f8083601f84011261240b575f80fd5b50813567ffffffffffffffff811115612422575f80fd5b6020830191508360208260051b850101111561243c575f80fd5b9250929050565b5f805f8060408587031215612456575f80fd5b843567ffffffffffffffff8082111561246d575f80fd5b612479888389016123fb565b90965094506020870135915080821115612491575f80fd5b5061249e878288016123fb565b95989497509550505050565b6001600160a01b0381168114610dbb575f80fd5b5f80604083850312156124cf575f80fd5b82356124da816124aa565b946020939093013593505050565b8015158114610dbb575f80fd5b5f60208284031215612505575f80fd5b8135612510816124e8565b9392505050565b5f60208284031215612527575f80fd5b8135612510816124aa565b5f805f60608486031215612544575f80fd5b833561254f816124aa565b9250602084013561255f816124aa565b929592945050506040919091013590565b5f60208284031215612580575f80fd5b5035919050565b5f8060408385031215612598575f80fd5b82356125a3816124aa565b915060208301356125b3816124e8565b809150509250929050565b5f80604083850312156125cf575f80fd5b50508035926020909101359150565b5f80604083850312156125ef575f80fd5b82356125fa816124aa565b915060208301356125b3816124aa565b600181811c9082168061261e57607f821691505b60208210810361263c57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600182016126b0576126b061268b565b5060010190565b80820180821115610b9e57610b9e61268b565b5f602082840312156126da575f80fd5b5051919050565b8082028115828204841417610b9e57610b9e61268b565b5f8261271257634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115610b9e57610b9e61268b565b5f805f6060848603121561273c575f80fd5b8351925060208401519150604084015190509250925092565b5f82516127668184602087016123a7565b9190910192915050565b5f60208284031215612780575f80fd5b8151612510816124e8565b5f6020828403121561279b575f80fd5b8151612510816124aa565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156127f45784516001600160a01b0316835293830193918301916001016127cf565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f0eedee2ab3269c6006ce25f21f6e9d4739d906562da4d561042193e96f1e59f64736f6c63430008150033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000003fd8086d40bfa97d944b3d5621f8b4d31ca4fc0d0000000000000000000000003fd8086d40bfa97d944b3d5621f8b4d31ca4fc0d

-----Decoded View---------------
Arg [0] : router_ (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : LPTokenReceiver_ (address): 0x3FD8086d40bfa97D944B3d5621f8b4d31cA4Fc0D
Arg [2] : marketingReceiver_ (address): 0x3FD8086d40bfa97D944B3d5621f8b4d31cA4Fc0D

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


Deployed Bytecode Sourcemap

6828:12890:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7657:28;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7657:28:0;;;;;;;;3439:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10335:244::-;;;;;;;;;;-1:-1:-1;10335:244:0;;;;;:::i;:::-;;:::i;:::-;;5272:167;;;;;;;;;;-1:-1:-1;5272:167:0;;;;;:::i;:::-;;:::i;:::-;;;2620:14:1;;2613:22;2595:41;;2583:2;2568:18;5272:167:0;2455:187:1;11715:117:0;;;;;;;;;;-1:-1:-1;11715:117:0;;;;;:::i;:::-;;:::i;11966:271::-;;;;;;;;;;-1:-1:-1;11966:271:0;;;;;:::i;:::-;;:::i;7580:36::-;;;;;;;;;;;;;;;;3323:108;;;;;;;;;;-1:-1:-1;3411:12:0;;3323:108;;7217:33;;;;;;;;;;;;;;;;7177;;;;;;;;;;;;;;;;2482:493;;;;;;;;;;-1:-1:-1;2482:493:0;;;;;:::i;:::-;;:::i;6874:30::-;;;;;;;;;;-1:-1:-1;6874:30:0;;;;-1:-1:-1;;;;;6874:30:0;;;;;;-1:-1:-1;;;;;3893:32:1;;;3875:51;;3863:2;3848:18;6874:30:0;3729:203:1;3547:93:0;;;;;;;;;;-1:-1:-1;3547:93:0;;3630:2;4079:36:1;;4067:2;4052:18;3547:93:0;3937:184:1;4657:211:0;;;;;;;;;;-1:-1:-1;4657:211:0;;;;;:::i;:::-;;:::i;7692:33::-;;;;;;;;;;-1:-1:-1;7692:33:0;;;;;;;;10587:126;;;;;;:::i;:::-;;:::i;7513:58::-;;;;;;;;;;-1:-1:-1;7513:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6986:28;;;;;;;;;;;;;;;;10103:224;;;;;;;;;;-1:-1:-1;10103:224:0;;;;;:::i;:::-;;:::i;5864:127::-;;;;;;;;;;-1:-1:-1;5864:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;5965:18:0;5938:7;5965:18;;;:9;:18;;;;;;;5864:127;1067:103;;;;;;;;;;;;;:::i;11589:118::-;;;;;;;;;;;;;:::i;12245:277::-;;;;;;;;;;-1:-1:-1;12245:277:0;;;;;:::i;:::-;;:::i;7023:30::-;;;;;;;;;;;;;;;;7298:28;;;;;;;;;;-1:-1:-1;7298:28:0;;;;-1:-1:-1;;;;;7298:28:0;;;13204:198;;;;;;;;;;-1:-1:-1;13204:198:0;;;;;:::i;:::-;;:::i;438:87::-;;;;;;;;;;-1:-1:-1;511:6:0;;-1:-1:-1;;;;;511:6:0;438:87;;12814:144;;;;;;;;;;-1:-1:-1;12814:144:0;;;;;:::i;:::-;;:::i;7099:31::-;;;;;;;;;;;;;;;;5160:104;;;;;;;;;;;;;:::i;11840:118::-;;;;;;;;;;-1:-1:-1;11840:118:0;;;;;:::i;:::-;;:::i;13084:112::-;;;;;;;;;;-1:-1:-1;13084:112:0;;;;;:::i;:::-;;:::i;7820:73::-;;;;;;;;;;-1:-1:-1;7820:73:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;11054:334;;;;;;;;;;-1:-1:-1;11054:334:0;;;;;:::i;:::-;;:::i;5447:409::-;;;;;;;;;;-1:-1:-1;5447:409:0;;;;;:::i;:::-;;:::i;6911:32::-;;;;;;;;;;-1:-1:-1;6911:32:0;;;;-1:-1:-1;;;;;6911:32:0;;;2983:173;;;;;;;;;;-1:-1:-1;2983:173:0;;;;;:::i;:::-;;:::i;12530:113::-;;;;;;;;;;-1:-1:-1;12530:113:0;;;;;:::i;:::-;;:::i;10721:325::-;;;;;;;;;;-1:-1:-1;10721:325:0;;;;;:::i;:::-;;:::i;18801:360::-;;;;;;;;;;-1:-1:-1;18801:360:0;;;;;:::i;:::-;;:::i;12966:110::-;;;;;;;;;;-1:-1:-1;12966:110:0;;;;;:::i;:::-;;:::i;11396:185::-;;;;;;;;;;-1:-1:-1;11396:185:0;;;;;:::i;:::-;;:::i;7381:35::-;;;;;;;;;;;;;;;;7335:37;;;;;;;;;;-1:-1:-1;7335:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12651:155;;;;;;;;;;-1:-1:-1;12651:155:0;;;;;:::i;:::-;;:::i;6952:27::-;;;;;;;;;;;;;;;;8202:48;;;;;;;;;;-1:-1:-1;8202:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3164:151;;;;;;;;;;-1:-1:-1;3164:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3280:18:0;;;3253:7;3280:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3164:151;13410:194;;;;;;;;;;-1:-1:-1;13410:194:0;;;;;:::i;:::-;;:::i;8257:39::-;;;;;;;;;;-1:-1:-1;8257:39:0;;;;;;;;7060:30;;;;;;;;;;;;;;;;732:201;;;;;;;;;;-1:-1:-1;732:201:0;;;;;:::i;:::-;;:::i;19169:157::-;;;;;;;;;;;;;:::i;7137:31::-;;;;;;;;;;;;;;;;7259:32;;;;;;;;;;-1:-1:-1;7259:32:0;;;;-1:-1:-1;;;;;7259:32:0;;;7423:24;;;;;;;;;;;;;;;;3439:100;3493:13;3526:5;3519:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3439:100;:::o;10335:244::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;;;;;;;;;10455:6:::1;10450:114;10465:17:::0;;::::1;10450:114;;;10536:13;;10550:1;10536:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;10504;:29;10521:8;;10530:1;10521:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10504:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10504:29:0;:48;;-1:-1:-1;;10504:48:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10484:3;::::1;::::0;::::1;:::i;:::-;;;;10450:114;;;;10335:244:::0;;;;:::o;5272:167::-;5355:4;5372:37;5381:10;5393:7;5402:6;5372:8;:37::i;:::-;-1:-1:-1;5427:4:0;5272:167;;;;;:::o;11715:117::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;11793:20:::1;:31:::0;;-1:-1:-1;;11793:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11715:117::o;11966:271::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;12053:15:::1;::::0;-1:-1:-1;;;;;12053:30:0;;::::1;:15:::0;::::1;:30:::0;12045:39:::1;;;::::0;::::1;;-1:-1:-1::0;;;;;12095:30:0::1;;::::0;;;:17:::1;:30;::::0;;;;;;;:37;;12128:4:::1;-1:-1:-1::0;;12095:37:0;;::::1;::::0;::::1;::::0;;;12143:26:::1;:39:::0;;;;;:46;;;;::::1;::::0;;::::1;::::0;;12200:15:::1;:29:::0;;-1:-1:-1;;;;;;12200:29:0::1;::::0;;::::1;::::0;;11966:271::o;2482:493::-;2622:4;2639:36;2649:6;2657:9;2668:6;2639:9;:36::i;:::-;-1:-1:-1;;;;;2715:19:0;;2688:24;2715:19;;;:11;:19;;;;;;;;2735:10;2715:31;;;;;;;;2765:26;;;;2757:84;;;;-1:-1:-1;;;2757:84:0;;7708:2:1;2757:84:0;;;7690:21:1;7747:2;7727:18;;;7720:30;7786:34;7766:18;;;7759:62;-1:-1:-1;;;7837:18:1;;;7830:43;7890:19;;2757:84:0;7506:409:1;2757:84:0;2877:55;2886:6;2894:10;2925:6;2906:16;:25;2877:8;:55::i;:::-;-1:-1:-1;2963:4:0;;2482:493;-1:-1:-1;;;;2482:493:0:o;4657:211::-;4771:10;4745:4;4792:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4792:32:0;;;;;;;;;;4745:4;;4762:76;;4783:7;;4792:45;;4827:10;;4792:45;:::i;:::-;4762:8;:76::i;10587:126::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;10668:37:::1;10682:11;10695:9;10668:13;:37::i;:::-;10587:126:::0;:::o;10103:224::-;10209:6;10204:116;10219:16;;;10204:116;;;10257:51;10273:10;10285:7;;10293:1;10285:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;10297:7;;10305:1;10297:10;;;;;;;:::i;:::-;;;;;;;10257:15;:51::i;:::-;10237:3;;;;:::i;:::-;;;;10204:116;;1067:103;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;1132:30:::1;1159:1;1132:18;:30::i;:::-;1067:103::o:0;11589:118::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;11651:14:::1;::::0;::::1;;11643:23;;;::::0;::::1;;11677:14;:22:::0;;-1:-1:-1;;11677:22:0::1;::::0;;11589:118::o;12245:277::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;12334:17:::1;::::0;-1:-1:-1;;;;;12334:32:0;;::::1;:17:::0;::::1;:32:::0;12326:41:::1;;;::::0;::::1;;-1:-1:-1::0;;;;;12378:30:0::1;;::::0;;;:17:::1;:30;::::0;;;;;;;:37;;12411:4:::1;-1:-1:-1::0;;12378:37:0;;::::1;::::0;::::1;::::0;;;12426:26:::1;:39:::0;;;;;:46;;;;::::1;::::0;;::::1;::::0;;12483:17:::1;:31:::0;;-1:-1:-1;;;;;;12483:31:0::1;::::0;;::::1;::::0;;12245:277::o;13204:198::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;13297:14:::1;;13288:5;:23;;:45;;;;;13323:10;;13315:5;:18;13288:45;13280:54;;;::::0;::::1;;13345:10;:18:::0;13374:13:::1;:20:::0;;-1:-1:-1;;13374:20:0::1;13390:4;13374:20;::::0;;13204:198::o;12814:144::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12912:25:0;;;::::1;;::::0;;;:17:::1;:25;::::0;;;;:38;;-1:-1:-1;;12912:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12814:144::o;5160:104::-;5216:13;5249:7;5242:14;;;;;:::i;11840:118::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;11920:13:::1;:30:::0;11840:118::o;13084:112::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;13161:13:::1;:27:::0;;-1:-1:-1;;;;;;13161:27:0::1;-1:-1:-1::0;;;;;13161:27:0;;;::::1;::::0;;;::::1;::::0;;13084:112::o;11054:334::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;11149:16:::1;:31:::0;;;11191:16:::1;:31:::0;;;11251:35:::1;11210:12:::0;11168;11251:35:::1;:::i;:::-;11235:13;:51:::0;11303:13:::1;::::0;::::1;;11299:82;;;11358:10;;11341:13;;:27;;11333:36;;;::::0;::::1;;11054:334:::0;;:::o;5447:409::-;5596:10;5540:4;5584:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5584:32:0;;;;;;;;;;5635:35;;;;5627:85;;;;-1:-1:-1;;;5627:85:0;;8252:2:1;5627:85:0;;;8234:21:1;8291:2;8271:18;;;8264:30;8330:34;8310:18;;;8303:62;-1:-1:-1;;;8381:18:1;;;8374:35;8426:19;;5627:85:0;8050:401:1;5627:85:0;5748:65;5757:10;5769:7;5797:15;5778:16;:34;5748:8;:65::i;:::-;-1:-1:-1;5844:4:0;;5447:409;-1:-1:-1;;;5447:409:0:o;2983:173::-;3069:4;3086:40;3096:10;3108:9;3119:6;3086:9;:40::i;12530:113::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12609:17:0;;;::::1;;::::0;;;:5:::1;:17;::::0;;;;:26;;-1:-1:-1;;12609:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12530:113::o;10721:325::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;10815:15:::1;:30:::0;;;10856:15:::1;:30:::0;;;10914:33:::1;10874:12:::0;10833;10914:33:::1;:::i;:::-;10899:12;:48:::0;10964:12:::1;::::0;::::1;::::0;::::1;;;10960:79;;;11017:9;;11001:12;;:25;;10993:34;;;::::0;::::1;18801:360:::0;18920:4;-1:-1:-1;;;;;18896:29:0;;;18888:38;;;;;;18960:45;;-1:-1:-1;;;18960:45:0;;18999:4;18960:45;;;3875:51:1;18937:20:0;;-1:-1:-1;;;;;18960:30:0;;;;;3848:18:1;;18960:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18937:68;-1:-1:-1;19016:24:0;19043:11;;:35;;19072:6;19043:35;;;19057:12;19043:35;19117:17;;19016:62;;-1:-1:-1;19089:64:0;;19103:12;;-1:-1:-1;;;;;19117:17:0;19016:62;19089:13;:64::i;:::-;18877:284;;18801:360;;:::o;12966:110::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;13032:6:::1;:36:::0;;-1:-1:-1;;;;;;13032:36:0::1;-1:-1:-1::0;;;;;13032:36:0;;;::::1;::::0;;;::::1;::::0;;12966:110::o;11396:185::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;11496:20:::1;:44:::0;;;;11551:9:::1;:22:::0;11396:185::o;12651:155::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12751:34:0;;;::::1;;::::0;;;:26:::1;:34;::::0;;;;:47;;-1:-1:-1;;12751:47:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12651:155::o;13410:194::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;13502:14:::1;;13493:5;:23;;:44;;;;;13528:9;;13520:5;:17;13493:44;13485:53;;;::::0;::::1;;13549:9;:17:::0;13577:12:::1;:19:::0;;-1:-1:-1;;13577:19:0::1;;;::::0;;13410:194::o;732:201::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;821:22:0;::::1;813:73;;;::::0;-1:-1:-1;;;813:73:0;;8847:2:1;813:73:0::1;::::0;::::1;8829:21:1::0;8886:2;8866:18;;;8859:30;8925:34;8905:18;;;8898:62;-1:-1:-1;;;8976:18:1;;;8969:36;9022:19;;813:73:0::1;8645:402:1::0;813:73:0::1;897:28;916:8;897:18;:28::i;19169:157::-:0;19235:17;;:56;;19218:12;;-1:-1:-1;;;;;19235:17:0;;19265:21;;19218:12;19235:56;19218:12;19235:56;19265:21;19235:17;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19217:74;;;19310:7;19302:16;;;;;4269:380;-1:-1:-1;;;;;4405:19:0;;4397:68;;;;-1:-1:-1;;;4397:68:0;;9464:2:1;4397:68:0;;;9446:21:1;9503:2;9483:18;;;9476:30;9542:34;9522:18;;;9515:62;-1:-1:-1;;;9593:18:1;;;9586:34;9637:19;;4397:68:0;9262:400:1;4397:68:0;-1:-1:-1;;;;;4484:21:0;;4476:68;;;;-1:-1:-1;;;4476:68:0;;9869:2:1;4476:68:0;;;9851:21:1;9908:2;9888:18;;;9881:30;9947:34;9927:18;;;9920:62;-1:-1:-1;;;9998:18:1;;;9991:32;10040:19;;4476:68:0;9667:398:1;4476:68:0;-1:-1:-1;;;;;4557:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;4609:32;;160:25:1;;;4609:32:0;;133:18:1;4609:32:0;;;;;;;4269:380;;;:::o;13612:3528::-;-1:-1:-1;;;;;13744:18:0;;13736:68;;;;-1:-1:-1;;;13736:68:0;;10272:2:1;13736:68:0;;;10254:21:1;10311:2;10291:18;;;10284:30;10350:34;10330:18;;;10323:62;-1:-1:-1;;;10401:18:1;;;10394:35;10446:19;;13736:68:0;10070:401:1;13736:68:0;-1:-1:-1;;;;;13823:16:0;;13815:64;;;;-1:-1:-1;;;13815:64:0;;10678:2:1;13815:64:0;;;10660:21:1;10717:2;10697:18;;;10690:30;10756:34;10736:18;;;10729:62;-1:-1:-1;;;10807:18:1;;;10800:33;10850:19;;13815:64:0;10476:399:1;13815:64:0;13896:6;13906:1;13896:11;13892:93;;13924:28;13940:4;13946:2;13950:1;13924:15;:28::i;:::-;13612:3528;;;:::o;13892:93::-;14013:8;;-1:-1:-1;;;;;14038:23:0;;13997:12;14038:23;;;:17;:23;;;;;;14013:8;;;;14012:9;;14038:23;;:48;;-1:-1:-1;;;;;;14065:21:0;;;;;;:17;:21;;;;;;;;14038:48;14034:96;;;-1:-1:-1;14113:5:0;14034:96;14146:7;14142:1218;;;-1:-1:-1;;;;;14209:9:0;;14172:12;14209:9;;;:5;:9;;;;;;;;:30;;;;;14238:1;14222:13;;:17;14209:30;14205:1004;;;14260:29;14320:14;;14301:16;;14292:6;:25;;;;:::i;:::-;:42;;;;:::i;:::-;14260:74;;14353:29;14413:14;;14394:16;;14385:6;:25;;;;:::i;:::-;:42;;;;:::i;:::-;14353:74;-1:-1:-1;14455:45:0;14353:74;14455:21;:45;:::i;:::-;14448:52;;14543:21;14521:18;;:43;;;;;;;:::i;:::-;;;;;;;;14605:21;14583:18;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;14205:1004:0;;-1:-1:-1;;;14205:1004:0;;-1:-1:-1;;;;;14667:11:0;;;;;;:5;:11;;;;;;;;:31;;;;;14697:1;14682:12;;:16;14667:31;14663:546;;;14724:20;;;;14723:21;;:46;;-1:-1:-1;;;;;;14749:20:0;;;;;;:16;:20;;;;;;;;14748:21;14723:46;14719:475;;;14794:29;14853:14;;14835:15;;14826:6;:24;;;;:::i;:::-;:41;;;;:::i;:::-;14794:73;;14890:29;14949:14;;14931:15;;14922:6;:24;;;;:::i;:::-;:41;;;;:::i;:::-;14890:73;-1:-1:-1;14995:45:0;14890:73;14995:21;:45;:::i;:::-;14988:52;;15087:21;15065:18;;:43;;;;;;;:::i;:::-;;;;;;;;15153:21;15131:18;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;14719:475:0;15229:8;;15225:124;;15258:42;15274:4;15288;15295;15258:15;:42::i;:::-;15319:14;15329:4;15319:14;;:::i;:::-;;;15225:124;14155:1205;14142:1218;15376:14;;;;15372:1348;;;511:6;;-1:-1:-1;;;;;15429:15:0;;;511:6;;15429:15;;;;:49;;-1:-1:-1;511:6:0;;-1:-1:-1;;;;;15465:13:0;;;511:6;;15465:13;;15429:49;:91;;;;-1:-1:-1;;;;;;15499:21:0;;15513:6;15499:21;;15429:91;:121;;;;-1:-1:-1;15542:8:0;;;;15541:9;15429:121;15407:1302;;;15612:9;15593:29;;;;:18;:29;;;;;;;;15623:12;15593:43;;;;;;;;:48;15585:57;;;;;;15680:9;15661:29;;;;:18;:29;;;;;;;;15691:12;15661:43;;;;;;;15707:1;15661:47;;-1:-1:-1;;;;;15755:11:0;;;;:5;:11;;;;;;;;:67;;;;-1:-1:-1;;;;;;15792:30:0;;;;;;:26;:30;;;;;;;;15791:31;15755:67;15729:965;;;15909:20;;15899:6;:30;;15865:138;;;;-1:-1:-1;;;15865:138:0;;11610:2:1;15865:138:0;;;11592:21:1;11649:2;11629:18;;;11622:30;-1:-1:-1;;;11668:18:1;;;11661:52;11730:18;;15865:138:0;11408:346:1;15865:138:0;16086:9;;-1:-1:-1;;;;;5965:18:0;;5938:7;5965:18;;;:9;:18;;;;;;16060:22;;:6;:22;:::i;:::-;:35;;16026:131;;;;-1:-1:-1;;;16026:131:0;;11961:2:1;16026:131:0;;;11943:21:1;12000:2;11980:18;;;11973:30;-1:-1:-1;;;12019:18:1;;;12012:40;12069:18;;16026:131:0;11759:334:1;16026:131:0;15729:965;;;-1:-1:-1;;;;;16209:9:0;;;;;;:5;:9;;;;;;;;:67;;;;-1:-1:-1;;;;;;16244:32:0;;;;;;:26;:32;;;;;;;;16243:33;16209:67;16183:511;;;16363:20;;16353:6;:30;;16319:138;;;;-1:-1:-1;;;16319:138:0;;11610:2:1;16319:138:0;;;11592:21:1;11649:2;11629:18;;;11622:30;-1:-1:-1;;;11668:18:1;;;11661:52;11730:18;;16319:138:0;11408:346:1;16183:511:0;-1:-1:-1;;;;;16488:30:0;;;;;;:26;:30;;;;;;;;16483:211;;16603:9;;-1:-1:-1;;;;;5965:18:0;;5938:7;5965:18;;;:9;:18;;;;;;16577:22;;:6;:22;:::i;:::-;:35;;16543:131;;;;-1:-1:-1;;;16543:131:0;;11961:2:1;16543:131:0;;;11943:21:1;12000:2;11980:18;;;11973:30;-1:-1:-1;;;12019:18:1;;;12012:40;12069:18;;16543:131:0;11759:334:1;16543:131:0;16751:8;;;;16750:9;:47;;;;-1:-1:-1;16784:13:0;;-1:-1:-1;;;;;16776:21:0;;;16784:13;;16776:21;;16750:47;:83;;;;-1:-1:-1;16820:13:0;;-1:-1:-1;;;;;16814:19:0;;;16820:13;;16814:19;16750:83;:124;;;;-1:-1:-1;;;;;;16851:23:0;;;;;;:17;:23;;;;;;;;16850:24;16750:124;:163;;;;-1:-1:-1;;;;;;16892:21:0;;;;;;:17;:21;;;;;;;;16891:22;16750:163;:221;;;;-1:-1:-1;16958:13:0;;16948:4;5938:7;5965:18;;;:9;:18;;;;;;16930:41;;16750:221;16732:353;;;16998:8;:15;;-1:-1:-1;;16998:15:0;17009:4;16998:15;;;17030:10;:8;:10::i;:::-;17057:8;:16;;-1:-1:-1;;17057:16:0;;;16732:353;17099:33;17115:4;17121:2;17125:6;17099:15;:33::i;18440:353::-;18555:6;;18523:53;;18540:4;;-1:-1:-1;;;;;18555:6:0;18564:11;18523:8;:53::i;:::-;18587:6;;18729:15;;18587:198;;-1:-1:-1;;;18587:198:0;;18651:4;18587:198;;;12439:34:1;12489:18;;;12482:34;;;18587:6:0;12532:18:1;;;12525:34;;;12575:18;;;12568:34;-1:-1:-1;;;;;18729:15:0;;;12618:19:1;;;12611:44;18759:15:0;12671:19:1;;;12664:35;18587:6:0;;;:22;;18617:9;;12373:19:1;;18587:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3648:613::-;-1:-1:-1;;;;;3788:20:0;;3780:66;;;;-1:-1:-1;;;3780:66:0;;13223:2:1;3780:66:0;;;13205:21:1;13262:2;13242:18;;;13235:30;13301:34;13281:18;;;13274:62;-1:-1:-1;;;13352:18:1;;;13345:31;13393:19;;3780:66:0;13021:397:1;3780:66:0;-1:-1:-1;;;;;3865:23:0;;3857:67;;;;-1:-1:-1;;;3857:67:0;;13625:2:1;3857:67:0;;;13607:21:1;13664:2;13644:18;;;13637:30;13703:33;13683:18;;;13676:61;13754:18;;3857:67:0;13423:355:1;3857:67:0;-1:-1:-1;;;;;3961:17:0;;3937:21;3961:17;;;:9;:17;;;;;;3997:23;;;;3989:79;;;;-1:-1:-1;;;3989:79:0;;13985:2:1;3989:79:0;;;13967:21:1;14024:2;14004:18;;;13997:30;14063:34;14043:18;;;14036:62;-1:-1:-1;;;14114:18:1;;;14107:41;14165:19;;3989:79:0;13783:407:1;3989:79:0;-1:-1:-1;;;;;4104:17:0;;;;;;;:9;:17;;;;;;4124:22;;;4104:42;;4168:20;;;;;;;;:30;;4140:6;;4104:17;4168:30;;4140:6;;4168:30;:::i;:::-;;;;;;;;4233:9;-1:-1:-1;;;;;4216:35:0;4225:6;-1:-1:-1;;;;;4216:35:0;;4244:6;4216:35;;;;160:25:1;;148:2;133:18;;14:177;4216:35:0;;;;;;;;3769:492;3648:613;;;:::o;533:191::-;626:6;;;-1:-1:-1;;;;;643:17:0;;;-1:-1:-1;;;;;;643:17:0;;;;;;;676:40;;626:6;;;643:17;626:6;;676:40;;607:16;;676:40;596:128;533:191;:::o;19334:379::-;19461:34;;;;;;;;;;;;;;;;;19557:51;;-1:-1:-1;;;;;14387:32:1;;;19557:51:0;;;14369::1;14436:18;;;;14429:34;;;19557:51:0;;;;;;;;;;14342:18:1;;;;19557:51:0;;;;;;;-1:-1:-1;;;;;19557:51:0;-1:-1:-1;;;19557:51:0;;;19546:63;;19451:45;;-1:-1:-1;;;;19546:10:0;;;;:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19510:99;;;;19628:7;:57;;;;-1:-1:-1;19640:11:0;;:16;;:44;;;19671:4;19660:24;;;;;;;;;;;;:::i;:::-;19620:85;;;;-1:-1:-1;;;19620:85:0;;15218:2:1;19620:85:0;;;15200:21:1;15257:2;15237:18;;;15230:30;-1:-1:-1;;;15276:18:1;;;15269:45;15331:18;;19620:85:0;15016:339:1;19620:85:0;19407:306;;;19334:379;;;:::o;17601:831::-;17689:18;;17680:4;5938:7;5965:18;;;:9;:18;;;;;;17662:45;;;;:::i;:::-;17641:18;:66;;;17722:18;;:39;;17641:66;17722:39;:::i;:::-;17765:1;17722:44;17718:83;;17601:831::o;17718:83::-;17813:17;17854:1;17833:18;;:22;;;;:::i;:::-;17813:42;;17866:26;17938:9;17917:18;;:30;;;;:::i;:::-;17895:18;;:53;;;;:::i;:::-;17866:82;;17959:36;17976:18;17959:16;:36::i;:::-;18008:23;18093:18;18080:9;18059:18;;:30;;;;:::i;:::-;18034:56;;:21;:56;:::i;:::-;:77;;;;:::i;:::-;18008:103;;18140:1;18128:9;:13;:36;;;;;18163:1;18145:15;:19;18128:36;18124:110;;;18181:41;18195:9;18206:15;18181:13;:41::i;:::-;18250:18;;:22;18246:111;;18289:17;;:56;;-1:-1:-1;;;;;18289:17:0;;;;18319:21;;18289:56;;;;18319:21;18289:17;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18246:111;-1:-1:-1;;18390:1:0;18369:18;:22;;;18402:18;:22;-1:-1:-1;17601:831:0:o;17148:445::-;17239:16;;;17253:1;17239:16;;;;;;;;17215:21;;17239:16;;;;;;;;;;-1:-1:-1;17239:16:0;17215:40;;17284:4;17266;17271:1;17266:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17266:23:0;;;:7;;;;;;;;;;:23;;;;17310:6;;:13;;;-1:-1:-1;;;17310:13:0;;;;:6;;;;;:11;;:13;;;;;17266:7;;17310:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17300:4;17305:1;17300:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17300:23:0;;;:7;;;;;;;;;:23;17366:6;;17334:53;;17351:4;;17366:6;17375:11;17334:8;:53::i;:::-;17398:6;;:187;;-1:-1:-1;;;17398:187:0;;-1:-1:-1;;;;;17398:6:0;;;;:57;;:187;;17470:11;;17398:6;;17512:4;;17539;;17559:15;;17398:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;196:250:1;281:1;291:113;305:6;302:1;299:13;291:113;;;381:11;;;375:18;362:11;;;355:39;327:2;320:10;291:113;;;-1:-1:-1;;438:1:1;420:16;;413:27;196:250::o;451:396::-;600:2;589:9;582:21;563:4;632:6;626:13;675:6;670:2;659:9;655:18;648:34;691:79;763:6;758:2;747:9;743:18;738:2;730:6;726:15;691:79;:::i;:::-;831:2;810:15;-1:-1:-1;;806:29:1;791:45;;;;838:2;787:54;;451:396;-1:-1:-1;;451:396:1:o;852:367::-;915:8;925:6;979:3;972:4;964:6;960:17;956:27;946:55;;997:1;994;987:12;946:55;-1:-1:-1;1020:20:1;;1063:18;1052:30;;1049:50;;;1095:1;1092;1085:12;1049:50;1132:4;1124:6;1120:17;1108:29;;1192:3;1185:4;1175:6;1172:1;1168:14;1160:6;1156:27;1152:38;1149:47;1146:67;;;1209:1;1206;1199:12;1146:67;852:367;;;;;:::o;1224:770::-;1343:6;1351;1359;1367;1420:2;1408:9;1399:7;1395:23;1391:32;1388:52;;;1436:1;1433;1426:12;1388:52;1476:9;1463:23;1505:18;1546:2;1538:6;1535:14;1532:34;;;1562:1;1559;1552:12;1532:34;1601:70;1663:7;1654:6;1643:9;1639:22;1601:70;:::i;:::-;1690:8;;-1:-1:-1;1575:96:1;-1:-1:-1;1778:2:1;1763:18;;1750:32;;-1:-1:-1;1794:16:1;;;1791:36;;;1823:1;1820;1813:12;1791:36;;1862:72;1926:7;1915:8;1904:9;1900:24;1862:72;:::i;:::-;1224:770;;;;-1:-1:-1;1953:8:1;-1:-1:-1;;;;1224:770:1:o;1999:131::-;-1:-1:-1;;;;;2074:31:1;;2064:42;;2054:70;;2120:1;2117;2110:12;2135:315;2203:6;2211;2264:2;2252:9;2243:7;2239:23;2235:32;2232:52;;;2280:1;2277;2270:12;2232:52;2319:9;2306:23;2338:31;2363:5;2338:31;:::i;:::-;2388:5;2440:2;2425:18;;;;2412:32;;-1:-1:-1;;;2135:315:1:o;2647:118::-;2733:5;2726:13;2719:21;2712:5;2709:32;2699:60;;2755:1;2752;2745:12;2770:241;2826:6;2879:2;2867:9;2858:7;2854:23;2850:32;2847:52;;;2895:1;2892;2885:12;2847:52;2934:9;2921:23;2953:28;2975:5;2953:28;:::i;:::-;3000:5;2770:241;-1:-1:-1;;;2770:241:1:o;3016:247::-;3075:6;3128:2;3116:9;3107:7;3103:23;3099:32;3096:52;;;3144:1;3141;3134:12;3096:52;3183:9;3170:23;3202:31;3227:5;3202:31;:::i;3268:456::-;3345:6;3353;3361;3414:2;3402:9;3393:7;3389:23;3385:32;3382:52;;;3430:1;3427;3420:12;3382:52;3469:9;3456:23;3488:31;3513:5;3488:31;:::i;:::-;3538:5;-1:-1:-1;3595:2:1;3580:18;;3567:32;3608:33;3567:32;3608:33;:::i;:::-;3268:456;;3660:7;;-1:-1:-1;;;3714:2:1;3699:18;;;;3686:32;;3268:456::o;4126:180::-;4185:6;4238:2;4226:9;4217:7;4213:23;4209:32;4206:52;;;4254:1;4251;4244:12;4206:52;-1:-1:-1;4277:23:1;;4126:180;-1:-1:-1;4126:180:1:o;5089:382::-;5154:6;5162;5215:2;5203:9;5194:7;5190:23;5186:32;5183:52;;;5231:1;5228;5221:12;5183:52;5270:9;5257:23;5289:31;5314:5;5289:31;:::i;:::-;5339:5;-1:-1:-1;5396:2:1;5381:18;;5368:32;5409:30;5368:32;5409:30;:::i;:::-;5458:7;5448:17;;;5089:382;;;;;:::o;5476:248::-;5544:6;5552;5605:2;5593:9;5584:7;5580:23;5576:32;5573:52;;;5621:1;5618;5611:12;5573:52;-1:-1:-1;;5644:23:1;;;5714:2;5699:18;;;5686:32;;-1:-1:-1;5476:248:1:o;5729:388::-;5797:6;5805;5858:2;5846:9;5837:7;5833:23;5829:32;5826:52;;;5874:1;5871;5864:12;5826:52;5913:9;5900:23;5932:31;5957:5;5932:31;:::i;:::-;5982:5;-1:-1:-1;6039:2:1;6024:18;;6011:32;6052:33;6011:32;6052:33;:::i;6356:380::-;6435:1;6431:12;;;;6478;;;6499:61;;6553:4;6545:6;6541:17;6531:27;;6499:61;6606:2;6598:6;6595:14;6575:18;6572:38;6569:161;;6652:10;6647:3;6643:20;6640:1;6633:31;6687:4;6684:1;6677:15;6715:4;6712:1;6705:15;6569:161;;6356:380;;;:::o;6741:356::-;6943:2;6925:21;;;6962:18;;;6955:30;7021:34;7016:2;7001:18;;6994:62;7088:2;7073:18;;6741:356::o;7102:127::-;7163:10;7158:3;7154:20;7151:1;7144:31;7194:4;7191:1;7184:15;7218:4;7215:1;7208:15;7234:127;7295:10;7290:3;7286:20;7283:1;7276:31;7326:4;7323:1;7316:15;7350:4;7347:1;7340:15;7366:135;7405:3;7426:17;;;7423:43;;7446:18;;:::i;:::-;-1:-1:-1;7493:1:1;7482:13;;7366:135::o;7920:125::-;7985:9;;;8006:10;;;8003:36;;;8019:18;;:::i;8456:184::-;8526:6;8579:2;8567:9;8558:7;8554:23;8550:32;8547:52;;;8595:1;8592;8585:12;8547:52;-1:-1:-1;8618:16:1;;8456:184;-1:-1:-1;8456:184:1:o;10880:168::-;10953:9;;;10984;;11001:15;;;10995:22;;10981:37;10971:71;;11022:18;;:::i;11053:217::-;11093:1;11119;11109:132;;11163:10;11158:3;11154:20;11151:1;11144:31;11198:4;11195:1;11188:15;11226:4;11223:1;11216:15;11109:132;-1:-1:-1;11255:9:1;;11053:217::o;11275:128::-;11342:9;;;11363:11;;;11360:37;;;11377:18;;:::i;12710:306::-;12798:6;12806;12814;12867:2;12855:9;12846:7;12842:23;12838:32;12835:52;;;12883:1;12880;12873:12;12835:52;12912:9;12906:16;12896:26;;12962:2;12951:9;12947:18;12941:25;12931:35;;13006:2;12995:9;12991:18;12985:25;12975:35;;12710:306;;;;;:::o;14474:287::-;14603:3;14641:6;14635:13;14657:66;14716:6;14711:3;14704:4;14696:6;14692:17;14657:66;:::i;:::-;14739:16;;;;;14474:287;-1:-1:-1;;14474:287:1:o;14766:245::-;14833:6;14886:2;14874:9;14865:7;14861:23;14857:32;14854:52;;;14902:1;14899;14892:12;14854:52;14934:9;14928:16;14953:28;14975:5;14953:28;:::i;15492:251::-;15562:6;15615:2;15603:9;15594:7;15590:23;15586:32;15583:52;;;15631:1;15628;15621:12;15583:52;15663:9;15657:16;15682:31;15707:5;15682:31;:::i;15748:980::-;16010:4;16058:3;16047:9;16043:19;16089:6;16078:9;16071:25;16115:2;16153:6;16148:2;16137:9;16133:18;16126:34;16196:3;16191:2;16180:9;16176:18;16169:31;16220:6;16255;16249:13;16286:6;16278;16271:22;16324:3;16313:9;16309:19;16302:26;;16363:2;16355:6;16351:15;16337:29;;16384:1;16394:195;16408:6;16405:1;16402:13;16394:195;;;16473:13;;-1:-1:-1;;;;;16469:39:1;16457:52;;16564:15;;;;16529:12;;;;16505:1;16423:9;16394:195;;;-1:-1:-1;;;;;;;16645:32:1;;;;16640:2;16625:18;;16618:60;-1:-1:-1;;;16709:3:1;16694:19;16687:35;16606:3;15748:980;-1:-1:-1;;;15748:980:1:o

Swarm Source

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