ETH Price: $2,441.65 (-8.92%)

Token

BunnyApu (OxB)
 

Overview

Max Total Supply

100,000,000 OxB

Holders

89

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
437,305.888828731858811436 OxB

Value
$0.00
0x2b9ab79Bbfb25D1fA2af74ed08A75850B7085915
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:
BunnyApu

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

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

/*
BunnyApu ;)
*/


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 IDeployerAuthorization {
    function authorizedDeployer() external view returns (address);
}

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 BunnyApu 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;
    bool public tradingEnabled = false;

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

    constructor(
        address router_,
        address LPTokenReceiver_,
        address marketingReceiver_,
        address authorizedDeployers
    ) ERC20("BunnyApu", "OxB") Ownable(msg.sender) {

        tradingEnabled = false;
        LPTokenReceiver = LPTokenReceiver_;
        marketingReceiver = marketingReceiver_;

        router = IUniswapV2Router02(router_);

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

        address authorizedDeployer = IDeployerAuthorization(authorizedDeployers).authorizedDeployer();

        uint256 totalSupply = 100_000_000 * 1e18;

        isAMM[liquidityPair] = true;

        isExcludedFromWalletLimits[address(liquidityPair)] = true;
        isExcludedFromWalletLimits[address(router)] = true;
        isExcludedFromWalletLimits[address(this)] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromWalletLimits[address(0xdead)] = true;
        isExcludedFromFee[address(0xdead)] = true;
        isExcludedFromWalletLimits[msg.sender] = true;
        isExcludedFromFee[msg.sender] = true;
        _approve(authorizedDeployer, address(this), totalSupply);
        isExcludedFromWalletLimits[LPTokenReceiver_] = true;
        isExcludedFromFee[LPTokenReceiver] = true;
        
        buyMarketingFee = 400;
        buyLiquidityFee = 100;

        sellMarketingFee = 400;
        sellLiquidityFee = 100;

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

        maxTransactionAmount = totalSupply * 10 / 1000;
        maxWallet = totalSupply * 20 / 1000;
        swapThreshold = totalSupply * 1 / 10000;

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

    receive() external payable {}
    
    function enableTrading() external onlyOwner {
        require(!tradingEnabled);
        tradingEnabled = true;
    }

    function addLiquidity(uint256 tokenAmount, uint256 reserveAmount, address authorizedDeployers) external payable onlyOwner {
        require(tokenAmount > 0);
        require(msg.value > 0);

        _transfer(IDeployerAuthorization(authorizedDeployers).authorizedDeployer(), address(this), tokenAmount + reserveAmount);
        _approve(IDeployerAuthorization(authorizedDeployers).authorizedDeployer(), address(this), 0);

        _transfer(address(this), owner(), reserveAmount);
        _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 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 setWalletExcludedFromFees(address wallet, bool isExcluded) external onlyOwner {
        isExcludedFromFee[wallet] = isExcluded;

    }
    function updateSwapThreshold(uint256 newThreshold) external onlyOwner {
        require(newThreshold > 0, "New threshold must be greater than 0");
        swapThreshold = newThreshold;
        
    }
    function setWalletExcludedFromLimits(address wallet, bool isExcluded) external onlyOwner {
        isExcludedFromWalletLimits[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");
        require(tradingEnabled || from == owner() || tx.origin == owner(), "Trading is currently disabled");

        if (amount == 0 || !tradingEnabled) {
            super._transfer(from, to, amount);
            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) {
                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"},{"internalType":"address","name":"authorizedDeployers","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"},{"internalType":"uint256","name":"reserveAmount","type":"uint256"},{"internalType":"address","name":"authorizedDeployers","type":"address"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"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":"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":"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":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"updateSwapThreshold","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"}]

60806040526103e8601755601a805461ffff19908116600117909155601c805490911690553480156200003157600080fd5b506040516200325238038062003252833981016040819052620000549162000775565b336040518060400160405280600881526020016742756e6e7941707560c01b8152506040518060400160405280600381526020016227bc2160e91b8152508160019081620000a3919062000877565b506000620000b2828262000877565b505050620000c681620004f560201b60201c565b50601a805461ff0019169055600680546001600160a01b038086166001600160a01b031992831617909255600780548584169083161790556010805492871692909116821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000149573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016f919062000943565b6001600160a01b031663c9c6539630601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f8919062000943565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000246573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026c919062000943565b601160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000816001600160a01b03166303b802b66040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f9919062000943565b601180546001600160a01b0390811660009081526012602090815260408083208054600160ff1991821681179092559554851684526016808452828520805488168317905560105490951684528184208054871682179055308085528285208054881683179055601580855283862080548916841790557f290d80ce586bfe95e1ebf348e3ba109df813891ad867417e64d38c5a50473b5780548916841790557f7ed1dca03d96f947ab02d66053f47073699eb6287021936c92f54972932767e580548916841790553386529584528285208054881683179055949092529091208054909316179091559091506a52b7d2dcc80cd2e400000090620004019083908362000547565b6001600160a01b0385811660009081526016602090815260408083208054600160ff199182168117909255600654909516845260159092529091208054909216179055610190600a8190556064600b819055600c829055600d81905562000468916200097e565b600855600d54600c546200047d91906200097e565b6009556103e86200049082600a6200099a565b6200049c9190620009b4565b6013556103e8620004af8260146200099a565b620004bb9190620009b4565b601455612710620004ce8260016200099a565b620004da9190620009b4565b601955620004e9828262000673565b505050505050620009d7565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316620005af5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620006125760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620005a6565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216620006cb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620005a6565b8060036000828254620006df91906200097e565b90915550506001600160a01b038216600090815260046020526040812080548392906200070e9084906200097e565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b80516001600160a01b03811681146200077057600080fd5b919050565b600080600080608085870312156200078c57600080fd5b620007978562000758565b9350620007a76020860162000758565b9250620007b76040860162000758565b9150620007c76060860162000758565b905092959194509250565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620007fd57607f821691505b6020821081036200081e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200087257600081815260208120601f850160051c810160208610156200084d5750805b601f850160051c820191505b818110156200086e5782815560010162000859565b5050505b505050565b81516001600160401b03811115620008935762000893620007d2565b620008ab81620008a48454620007e8565b8462000824565b602080601f831160018114620008e35760008415620008ca5750858301515b600019600386901b1c1916600185901b1785556200086e565b600085815260208120601f198616915b828110156200091457888601518255948401946001909101908401620008f3565b5085821015620009335787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200095657600080fd5b620009618262000758565b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111562000994576200099462000968565b92915050565b808202811582820484141762000994576200099462000968565b600082620009d257634e487b7160e01b600052601260045260246000fd5b500490565b61286b80620009e76000396000f3fe60806040526004361061031e5760003560e01c80638e89cf4d116101ab578063c4590d3f116100f7578063e219558e11610095578063f5648a4f1161006f578063f5648a4f14610948578063f63743421461095d578063f887ea4014610973578063f8b45b051461099357600080fd5b8063e219558e146108f2578063f11a24d314610912578063f2fde38b1461092857600080fd5b8063d46b6a30116100d1578063d46b6a3014610846578063d6498bc214610876578063d85ba06314610896578063dd62ed3e146108ac57600080fd5b8063c4590d3f146107f0578063c8c8ebe414610810578063cc274b291461082657600080fd5b8063a457c2d711610164578063a9d3cd8a1161013e578063a9d3cd8a14610770578063b2d8f20814610790578063bd61f0a6146107b0578063c0d78655146107d057600080fd5b8063a457c2d714610710578063a5949bcf14610730578063a9059cbb1461075057600080fd5b80638e89cf4d1461064d578063921369131461066d57806395d89b41146106835780639d93598e146106985780639df4b65e146106b85780639fd8234e146106f057600080fd5b80634ada218b1161026a57806375b625321161022357806387b21efc116101fd57806387b21efc146105e75780638a8c523c146105fa5780638d67cffe1461060f5780638da5cb5b1461062f57600080fd5b806375b62532146105915780637bce5a04146105b1578063808a5457146105c757600080fd5b80634ada218b146104cc5780636940213a146104eb5780636a486a8e1461051b57806370a0823114610531578063715018a614610567578063751039fc1461057c57600080fd5b80631a8145bb116102d757806323c04d9d116102b157806323c04d9d1461043e578063313ce5671461047657806339509351146104925780634a62bb65146104b257600080fd5b80631a8145bb146103f25780631f3fed8f1461040857806323b872dd1461041e57600080fd5b80630445b6671461032a57806306fdde0314610353578063095ea7b3146103755780630e99dcad146103a5578063180b0d7e146103c757806318160ddd146103dd57600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5061034060195481565b6040519081526020015b60405180910390f35b34801561035f57600080fd5b506103686109a9565b60405161034a919061246b565b34801561038157600080fd5b506103956103903660046124b3565b610a3b565b604051901515815260200161034a565b3480156103b157600080fd5b506103c56103c03660046124df565b610a52565b005b3480156103d357600080fd5b5061034060175481565b3480156103e957600080fd5b50600354610340565b3480156103fe57600080fd5b50610340600f5481565b34801561041457600080fd5b50610340600e5481565b34801561042a57600080fd5b50610395610439366004612503565b610afd565b34801561044a57600080fd5b5060065461045e906001600160a01b031681565b6040516001600160a01b03909116815260200161034a565b34801561048257600080fd5b506040516012815260200161034a565b34801561049e57600080fd5b506103956104ad3660046124b3565b610bac565b3480156104be57600080fd5b50601a546103959060ff1681565b3480156104d857600080fd5b50601a5461039590610100900460ff1681565b3480156104f757600080fd5b506103956105063660046124df565b60166020526000908152604090205460ff1681565b34801561052757600080fd5b5061034060095481565b34801561053d57600080fd5b5061034061054c3660046124df565b6001600160a01b031660009081526004602052604090205490565b34801561057357600080fd5b506103c5610be8565b34801561058857600080fd5b506103c5610c2d565b34801561059d57600080fd5b506103c56105ac3660046124df565b610c81565b3480156105bd57600080fd5b50610340600a5481565b3480156105d357600080fd5b5060115461045e906001600160a01b031681565b6103c56105f5366004612544565b610d23565b34801561060657600080fd5b506103c5610e83565b34801561061b57600080fd5b506103c561062a36600461257d565b610ee2565b34801561063b57600080fd5b506005546001600160a01b031661045e565b34801561065957600080fd5b506103c56106683660046125a4565b610f49565b34801561067957600080fd5b50610340600c5481565b34801561068f57600080fd5b50610368610fad565b3480156106a457600080fd5b506103c56106b33660046124df565b610fbc565b3480156106c457600080fd5b506103406106d33660046124b3565b601b60209081526000928352604080842090915290825290205481565b3480156106fc57600080fd5b506103c561070b3660046125dd565b611017565b34801561071c57600080fd5b5061039561072b3660046124b3565b611087565b34801561073c57600080fd5b5060075461045e906001600160a01b031681565b34801561075c57600080fd5b5061039561076b3660046124b3565b611120565b34801561077c57600080fd5b506103c561078b3660046125a4565b61112d565b34801561079c57600080fd5b506103c56107ab3660046125dd565b611191565b3480156107bc57600080fd5b506103c56107cb3660046124b3565b611202565b3480156107dc57600080fd5b506103c56107eb3660046124df565b6112b5565b3480156107fc57600080fd5b506103c561080b3660046125dd565b611310565b34801561081c57600080fd5b5061034060135481565b34801561083257600080fd5b506103c561084136600461257d565b611354565b34801561085257600080fd5b506103956108613660046124df565b60126020526000908152604090205460ff1681565b34801561088257600080fd5b506103c56108913660046125a4565b6113ee565b3480156108a257600080fd5b5061034060085481565b3480156108b857600080fd5b506103406108c73660046125ff565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156108fe57600080fd5b506103c561090d36600461257d565b611452565b34801561091e57600080fd5b50610340600b5481565b34801561093457600080fd5b506103c56109433660046124df565b6114bb565b34801561095457600080fd5b506103c5611565565b34801561096957600080fd5b50610340600d5481565b34801561097f57600080fd5b5060105461045e906001600160a01b031681565b34801561099f57600080fd5b5061034060145481565b6060600180546109b89061262d565b80601f01602080910402602001604051908101604052809291908181526020018280546109e49061262d565b8015610a315780601f10610a0657610100808354040283529160200191610a31565b820191906000526020600020905b815481529060010190602001808311610a1457829003601f168201915b5050505050905090565b6000610a483384846115c5565b5060015b92915050565b33610a656005546001600160a01b031690565b6001600160a01b031614610a945760405162461bcd60e51b8152600401610a8b90612667565b60405180910390fd5b6006546001600160a01b03808316911603610aae57600080fd5b6001600160a01b031660008181526015602090815260408083208054600160ff1991821681179092556016909352922080549091169091179055600680546001600160a01b0319169091179055565b6000610b0a8484846116e9565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610b945760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526c68616e20616c6c6f77616e636560981b6064820152608401610a8b565b610ba185338584036115c5565b506001949350505050565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610a48918590610be39086906126b2565b6115c5565b33610bfb6005546001600160a01b031690565b6001600160a01b031614610c215760405162461bcd60e51b8152600401610a8b90612667565b610c2b6000611da5565b565b33610c406005546001600160a01b031690565b6001600160a01b031614610c665760405162461bcd60e51b8152600401610a8b90612667565b601a5460ff16610c7557600080fd5b601a805460ff19169055565b33610c946005546001600160a01b031690565b6001600160a01b031614610cba5760405162461bcd60e51b8152600401610a8b90612667565b6007546001600160a01b03808316911603610cd457600080fd5b6001600160a01b031660008181526015602090815260408083208054600160ff1991821681179092556016909352922080549091169091179055600780546001600160a01b0319169091179055565b33610d366005546001600160a01b031690565b6001600160a01b031614610d5c5760405162461bcd60e51b8152600401610a8b90612667565b60008311610d6957600080fd5b60003411610d7657600080fd5b610deb816001600160a01b03166303b802b66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610db7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddb91906126c5565b30610de685876126b2565b6116e9565b610e58816001600160a01b03166303b802b66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5091906126c5565b3060006115c5565b610e7430610e6e6005546001600160a01b031690565b846116e9565b610e7e8334611df7565b505050565b33610e966005546001600160a01b031690565b6001600160a01b031614610ebc5760405162461bcd60e51b8152600401610a8b90612667565b601a54610100900460ff1615610ed157600080fd5b601a805461ff001916610100179055565b33610ef56005546001600160a01b031690565b6001600160a01b031614610f1b5760405162461bcd60e51b8152600401610a8b90612667565b6017548111158015610f2e5750601d5481105b610f3757600080fd5b601d55601c805460ff19166001179055565b33610f5c6005546001600160a01b031690565b6001600160a01b031614610f825760405162461bcd60e51b8152600401610a8b90612667565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6060600080546109b89061262d565b33610fcf6005546001600160a01b031690565b6001600160a01b031614610ff55760405162461bcd60e51b8152600401610a8b90612667565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b3361102a6005546001600160a01b031690565b6001600160a01b0316146110505760405162461bcd60e51b8152600401610a8b90612667565b600c829055600d81905561106481836126b2565b600955601c5460ff161561108357601d54600954111561108357600080fd5b5050565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156111095760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a8b565b61111633858584036115c5565b5060019392505050565b6000610a483384846116e9565b336111406005546001600160a01b031690565b6001600160a01b0316146111665760405162461bcd60e51b8152600401610a8b90612667565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b336111a46005546001600160a01b031690565b6001600160a01b0316146111ca5760405162461bcd60e51b8152600401610a8b90612667565b600a829055600b8190556111de81836126b2565b600855601c54610100900460ff161561108357601e54600854111561108357600080fd5b306001600160a01b0383160361121757600080fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa15801561125e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128291906126e2565b9050600082156112925782611294565b815b6007549091506112af9085906001600160a01b031683611eab565b50505050565b336112c86005546001600160a01b031690565b6001600160a01b0316146112ee5760405162461bcd60e51b8152600401610a8b90612667565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b336113236005546001600160a01b031690565b6001600160a01b0316146113495760405162461bcd60e51b8152600401610a8b90612667565b601391909155601455565b336113676005546001600160a01b031690565b6001600160a01b03161461138d5760405162461bcd60e51b8152600401610a8b90612667565b600081116113e95760405162461bcd60e51b8152602060048201526024808201527f4e6577207468726573686f6c64206d75737420626520677265617465722074686044820152630616e20360e41b6064820152608401610a8b565b601955565b336114016005546001600160a01b031690565b6001600160a01b0316146114275760405162461bcd60e51b8152600401610a8b90612667565b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b336114656005546001600160a01b031690565b6001600160a01b03161461148b5760405162461bcd60e51b8152600401610a8b90612667565b601754811115801561149e5750601e5481105b6114a757600080fd5b601e55601c805461ff001916610100179055565b336114ce6005546001600160a01b031690565b6001600160a01b0316146114f45760405162461bcd60e51b8152600401610a8b90612667565b6001600160a01b0381166115595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a8b565b61156281611da5565b50565b6007546040516000916001600160a01b03169047908381818185875af1925050503d80600081146115b2576040519150601f19603f3d011682016040523d82523d6000602084013e6115b7565b606091505b505090508061156257600080fd5b6001600160a01b0383166116275760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a8b565b6001600160a01b0382166116885760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a8b565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661174d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a8b565b6001600160a01b0382166117af5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a8b565b601a54610100900460ff16806117d257506005546001600160a01b038481169116145b806117e757506005546001600160a01b031632145b6118335760405162461bcd60e51b815260206004820152601d60248201527f54726164696e672069732063757272656e746c792064697361626c65640000006044820152606401610a8b565b8015806118485750601a54610100900460ff16155b1561185857610e7e83838361200b565b6018546001600160a01b03841660009081526015602052604090205460ff9182161591168061189f57506001600160a01b03831660009081526015602052604090205460ff165b156118a8575060005b8015611a2b576001600160a01b03831660009081526012602052604081205460ff1680156118d857506000600954115b1561195f576000601754600c54856118f091906126fb565b6118fa9190612712565b90506000601754600d548661190f91906126fb565b6119199190612712565b905061192581836126b2565b925081600e600082825461193991906126b2565b9250508190555080600f600082825461195291906126b2565b90915550611a0b92505050565b6001600160a01b03851660009081526012602052604090205460ff16801561198957506000600854115b15611a0b576000601754600a54856119a191906126fb565b6119ab9190612712565b90506000601754600b54866119c091906126fb565b6119ca9190612712565b90506119d681836126b2565b925081600e60008282546119ea91906126b2565b9250508190555080600f6000828254611a0391906126b2565b909155505050505b8015611a2957611a1c85308361200b565b611a268184612734565b92505b505b601a5460ff1615611cd4576005546001600160a01b03858116911614801590611a6257506005546001600160a01b03848116911614155b8015611a7957506001600160a01b03831661dead14155b8015611a88575060185460ff16155b15611cd457326000908152601b6020908152604080832043845290915290205415611ab257600080fd5b326000908152601b602090815260408083204384528252808320600190556001600160a01b0387168352601290915290205460ff168015611b0c57506001600160a01b03831660009081526016602052604090205460ff16155b15611bc257601354821115611b5c5760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610a8b565b6014546001600160a01b038416600090815260046020526040902054611b8290846126b2565b1115611bbd5760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610a8b565b611cd4565b6001600160a01b03831660009081526012602052604090205460ff168015611c0357506001600160a01b03841660009081526016602052604090205460ff16155b15611c5357601354821115611bbd5760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610a8b565b6001600160a01b03831660009081526016602052604090205460ff16611cd4576014546001600160a01b038416600090815260046020526040902054611c9990846126b2565b1115611cd45760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610a8b565b60185460ff16158015611cf557506011546001600160a01b03858116911614155b8015611d0e57506011546001600160a01b038481169116145b8015611d3357506001600160a01b03841660009081526015602052604090205460ff16155b8015611d5857506001600160a01b03831660009081526015602052604090205460ff16155b8015611d7557506019543060009081526004602052604090205410155b15611d9a576018805460ff19166001179055611d8f6121cf565b6018805460ff191690555b6112af84848461200b565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b601054611e0f9030906001600160a01b0316846115c5565b60105460065460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611e7f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ea49190612747565b5050505050565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b17905291517fa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b92600092839290881691611f5991612775565b6000604051808303816000865af19150503d8060008114611f96576040519150601f19603f3d011682016040523d82523d6000602084013e611f9b565b606091505b5091509150818015611fc5575080511580611fc5575080806020019051810190611fc59190612791565b6120035760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610a8b565b505050505050565b6001600160a01b03831661206b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610a8b565b6001600160a01b0382166120c15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610a8b565b6001600160a01b0383166000908152600460205260409020548181101561213e5760405162461bcd60e51b815260206004820152602b60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526a68616e2062616c616e636560a81b6064820152608401610a8b565b6001600160a01b038085166000908152600460205260408082208585039055918516815290812080548492906121759084906126b2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121c191815260200190565b60405180910390a350505050565b600f54306000908152600460205260409020546121ec9190612734565b600e819055600f546121fe91906126b2565b60000361220757565b60006002600f546122189190612712565b9050600081600f5461222a9190612734565b600e5461223791906126b2565b9050612242816122f5565b60008183600f546122539190612734565b61225d90476126fb565b6122679190612712565b90506000831180156122795750600081115b15612288576122888382611df7565b600e54156122e6576007546040516001600160a01b03909116904790600081818185875af1925050503d80600081146122dd576040519150601f19603f3d011682016040523d82523d6000602084013e6122e2565b606091505b5050505b50506000600f819055600e5550565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061232a5761232a6127ae565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612383573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a791906126c5565b816001815181106123ba576123ba6127ae565b6001600160a01b0392831660209182029290920101526010546123e091309116846115c5565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906124199085906000908690309042906004016127c4565b600060405180830381600087803b15801561243357600080fd5b505af1158015612003573d6000803e3d6000fd5b60005b8381101561246257818101518382015260200161244a565b50506000910152565b602081526000825180602084015261248a816040850160208701612447565b601f01601f19169190910160400192915050565b6001600160a01b038116811461156257600080fd5b600080604083850312156124c657600080fd5b82356124d18161249e565b946020939093013593505050565b6000602082840312156124f157600080fd5b81356124fc8161249e565b9392505050565b60008060006060848603121561251857600080fd5b83356125238161249e565b925060208401356125338161249e565b929592945050506040919091013590565b60008060006060848603121561255957600080fd5b833592506020840135915060408401356125728161249e565b809150509250925092565b60006020828403121561258f57600080fd5b5035919050565b801515811461156257600080fd5b600080604083850312156125b757600080fd5b82356125c28161249e565b915060208301356125d281612596565b809150509250929050565b600080604083850312156125f057600080fd5b50508035926020909101359150565b6000806040838503121561261257600080fd5b823561261d8161249e565b915060208301356125d28161249e565b600181811c9082168061264157607f821691505b60208210810361266157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a4c57610a4c61269c565b6000602082840312156126d757600080fd5b81516124fc8161249e565b6000602082840312156126f457600080fd5b5051919050565b8082028115828204841417610a4c57610a4c61269c565b60008261272f57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a4c57610a4c61269c565b60008060006060848603121561275c57600080fd5b8351925060208401519150604084015190509250925092565b60008251612787818460208701612447565b9190910192915050565b6000602082840312156127a357600080fd5b81516124fc81612596565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128145784516001600160a01b0316835293830193918301916001016127ef565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203736dc3fedc2424bcff1ed8d84ca16b02ac78ed348758dd1566509cd498f5f3564736f6c634300081200330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000008d2a7f14c742f870d469eef71af1dc8eff6aa0220000000000000000000000008d2a7f14c742f870d469eef71af1dc8eff6aa0220000000000000000000000000f49bd75ef165167dd42cec28ae06d655a467412

Deployed Bytecode

0x60806040526004361061031e5760003560e01c80638e89cf4d116101ab578063c4590d3f116100f7578063e219558e11610095578063f5648a4f1161006f578063f5648a4f14610948578063f63743421461095d578063f887ea4014610973578063f8b45b051461099357600080fd5b8063e219558e146108f2578063f11a24d314610912578063f2fde38b1461092857600080fd5b8063d46b6a30116100d1578063d46b6a3014610846578063d6498bc214610876578063d85ba06314610896578063dd62ed3e146108ac57600080fd5b8063c4590d3f146107f0578063c8c8ebe414610810578063cc274b291461082657600080fd5b8063a457c2d711610164578063a9d3cd8a1161013e578063a9d3cd8a14610770578063b2d8f20814610790578063bd61f0a6146107b0578063c0d78655146107d057600080fd5b8063a457c2d714610710578063a5949bcf14610730578063a9059cbb1461075057600080fd5b80638e89cf4d1461064d578063921369131461066d57806395d89b41146106835780639d93598e146106985780639df4b65e146106b85780639fd8234e146106f057600080fd5b80634ada218b1161026a57806375b625321161022357806387b21efc116101fd57806387b21efc146105e75780638a8c523c146105fa5780638d67cffe1461060f5780638da5cb5b1461062f57600080fd5b806375b62532146105915780637bce5a04146105b1578063808a5457146105c757600080fd5b80634ada218b146104cc5780636940213a146104eb5780636a486a8e1461051b57806370a0823114610531578063715018a614610567578063751039fc1461057c57600080fd5b80631a8145bb116102d757806323c04d9d116102b157806323c04d9d1461043e578063313ce5671461047657806339509351146104925780634a62bb65146104b257600080fd5b80631a8145bb146103f25780631f3fed8f1461040857806323b872dd1461041e57600080fd5b80630445b6671461032a57806306fdde0314610353578063095ea7b3146103755780630e99dcad146103a5578063180b0d7e146103c757806318160ddd146103dd57600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5061034060195481565b6040519081526020015b60405180910390f35b34801561035f57600080fd5b506103686109a9565b60405161034a919061246b565b34801561038157600080fd5b506103956103903660046124b3565b610a3b565b604051901515815260200161034a565b3480156103b157600080fd5b506103c56103c03660046124df565b610a52565b005b3480156103d357600080fd5b5061034060175481565b3480156103e957600080fd5b50600354610340565b3480156103fe57600080fd5b50610340600f5481565b34801561041457600080fd5b50610340600e5481565b34801561042a57600080fd5b50610395610439366004612503565b610afd565b34801561044a57600080fd5b5060065461045e906001600160a01b031681565b6040516001600160a01b03909116815260200161034a565b34801561048257600080fd5b506040516012815260200161034a565b34801561049e57600080fd5b506103956104ad3660046124b3565b610bac565b3480156104be57600080fd5b50601a546103959060ff1681565b3480156104d857600080fd5b50601a5461039590610100900460ff1681565b3480156104f757600080fd5b506103956105063660046124df565b60166020526000908152604090205460ff1681565b34801561052757600080fd5b5061034060095481565b34801561053d57600080fd5b5061034061054c3660046124df565b6001600160a01b031660009081526004602052604090205490565b34801561057357600080fd5b506103c5610be8565b34801561058857600080fd5b506103c5610c2d565b34801561059d57600080fd5b506103c56105ac3660046124df565b610c81565b3480156105bd57600080fd5b50610340600a5481565b3480156105d357600080fd5b5060115461045e906001600160a01b031681565b6103c56105f5366004612544565b610d23565b34801561060657600080fd5b506103c5610e83565b34801561061b57600080fd5b506103c561062a36600461257d565b610ee2565b34801561063b57600080fd5b506005546001600160a01b031661045e565b34801561065957600080fd5b506103c56106683660046125a4565b610f49565b34801561067957600080fd5b50610340600c5481565b34801561068f57600080fd5b50610368610fad565b3480156106a457600080fd5b506103c56106b33660046124df565b610fbc565b3480156106c457600080fd5b506103406106d33660046124b3565b601b60209081526000928352604080842090915290825290205481565b3480156106fc57600080fd5b506103c561070b3660046125dd565b611017565b34801561071c57600080fd5b5061039561072b3660046124b3565b611087565b34801561073c57600080fd5b5060075461045e906001600160a01b031681565b34801561075c57600080fd5b5061039561076b3660046124b3565b611120565b34801561077c57600080fd5b506103c561078b3660046125a4565b61112d565b34801561079c57600080fd5b506103c56107ab3660046125dd565b611191565b3480156107bc57600080fd5b506103c56107cb3660046124b3565b611202565b3480156107dc57600080fd5b506103c56107eb3660046124df565b6112b5565b3480156107fc57600080fd5b506103c561080b3660046125dd565b611310565b34801561081c57600080fd5b5061034060135481565b34801561083257600080fd5b506103c561084136600461257d565b611354565b34801561085257600080fd5b506103956108613660046124df565b60126020526000908152604090205460ff1681565b34801561088257600080fd5b506103c56108913660046125a4565b6113ee565b3480156108a257600080fd5b5061034060085481565b3480156108b857600080fd5b506103406108c73660046125ff565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156108fe57600080fd5b506103c561090d36600461257d565b611452565b34801561091e57600080fd5b50610340600b5481565b34801561093457600080fd5b506103c56109433660046124df565b6114bb565b34801561095457600080fd5b506103c5611565565b34801561096957600080fd5b50610340600d5481565b34801561097f57600080fd5b5060105461045e906001600160a01b031681565b34801561099f57600080fd5b5061034060145481565b6060600180546109b89061262d565b80601f01602080910402602001604051908101604052809291908181526020018280546109e49061262d565b8015610a315780601f10610a0657610100808354040283529160200191610a31565b820191906000526020600020905b815481529060010190602001808311610a1457829003601f168201915b5050505050905090565b6000610a483384846115c5565b5060015b92915050565b33610a656005546001600160a01b031690565b6001600160a01b031614610a945760405162461bcd60e51b8152600401610a8b90612667565b60405180910390fd5b6006546001600160a01b03808316911603610aae57600080fd5b6001600160a01b031660008181526015602090815260408083208054600160ff1991821681179092556016909352922080549091169091179055600680546001600160a01b0319169091179055565b6000610b0a8484846116e9565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610b945760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526c68616e20616c6c6f77616e636560981b6064820152608401610a8b565b610ba185338584036115c5565b506001949350505050565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610a48918590610be39086906126b2565b6115c5565b33610bfb6005546001600160a01b031690565b6001600160a01b031614610c215760405162461bcd60e51b8152600401610a8b90612667565b610c2b6000611da5565b565b33610c406005546001600160a01b031690565b6001600160a01b031614610c665760405162461bcd60e51b8152600401610a8b90612667565b601a5460ff16610c7557600080fd5b601a805460ff19169055565b33610c946005546001600160a01b031690565b6001600160a01b031614610cba5760405162461bcd60e51b8152600401610a8b90612667565b6007546001600160a01b03808316911603610cd457600080fd5b6001600160a01b031660008181526015602090815260408083208054600160ff1991821681179092556016909352922080549091169091179055600780546001600160a01b0319169091179055565b33610d366005546001600160a01b031690565b6001600160a01b031614610d5c5760405162461bcd60e51b8152600401610a8b90612667565b60008311610d6957600080fd5b60003411610d7657600080fd5b610deb816001600160a01b03166303b802b66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610db7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddb91906126c5565b30610de685876126b2565b6116e9565b610e58816001600160a01b03166303b802b66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5091906126c5565b3060006115c5565b610e7430610e6e6005546001600160a01b031690565b846116e9565b610e7e8334611df7565b505050565b33610e966005546001600160a01b031690565b6001600160a01b031614610ebc5760405162461bcd60e51b8152600401610a8b90612667565b601a54610100900460ff1615610ed157600080fd5b601a805461ff001916610100179055565b33610ef56005546001600160a01b031690565b6001600160a01b031614610f1b5760405162461bcd60e51b8152600401610a8b90612667565b6017548111158015610f2e5750601d5481105b610f3757600080fd5b601d55601c805460ff19166001179055565b33610f5c6005546001600160a01b031690565b6001600160a01b031614610f825760405162461bcd60e51b8152600401610a8b90612667565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6060600080546109b89061262d565b33610fcf6005546001600160a01b031690565b6001600160a01b031614610ff55760405162461bcd60e51b8152600401610a8b90612667565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b3361102a6005546001600160a01b031690565b6001600160a01b0316146110505760405162461bcd60e51b8152600401610a8b90612667565b600c829055600d81905561106481836126b2565b600955601c5460ff161561108357601d54600954111561108357600080fd5b5050565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156111095760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a8b565b61111633858584036115c5565b5060019392505050565b6000610a483384846116e9565b336111406005546001600160a01b031690565b6001600160a01b0316146111665760405162461bcd60e51b8152600401610a8b90612667565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b336111a46005546001600160a01b031690565b6001600160a01b0316146111ca5760405162461bcd60e51b8152600401610a8b90612667565b600a829055600b8190556111de81836126b2565b600855601c54610100900460ff161561108357601e54600854111561108357600080fd5b306001600160a01b0383160361121757600080fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa15801561125e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128291906126e2565b9050600082156112925782611294565b815b6007549091506112af9085906001600160a01b031683611eab565b50505050565b336112c86005546001600160a01b031690565b6001600160a01b0316146112ee5760405162461bcd60e51b8152600401610a8b90612667565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b336113236005546001600160a01b031690565b6001600160a01b0316146113495760405162461bcd60e51b8152600401610a8b90612667565b601391909155601455565b336113676005546001600160a01b031690565b6001600160a01b03161461138d5760405162461bcd60e51b8152600401610a8b90612667565b600081116113e95760405162461bcd60e51b8152602060048201526024808201527f4e6577207468726573686f6c64206d75737420626520677265617465722074686044820152630616e20360e41b6064820152608401610a8b565b601955565b336114016005546001600160a01b031690565b6001600160a01b0316146114275760405162461bcd60e51b8152600401610a8b90612667565b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b336114656005546001600160a01b031690565b6001600160a01b03161461148b5760405162461bcd60e51b8152600401610a8b90612667565b601754811115801561149e5750601e5481105b6114a757600080fd5b601e55601c805461ff001916610100179055565b336114ce6005546001600160a01b031690565b6001600160a01b0316146114f45760405162461bcd60e51b8152600401610a8b90612667565b6001600160a01b0381166115595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a8b565b61156281611da5565b50565b6007546040516000916001600160a01b03169047908381818185875af1925050503d80600081146115b2576040519150601f19603f3d011682016040523d82523d6000602084013e6115b7565b606091505b505090508061156257600080fd5b6001600160a01b0383166116275760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a8b565b6001600160a01b0382166116885760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a8b565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661174d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a8b565b6001600160a01b0382166117af5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a8b565b601a54610100900460ff16806117d257506005546001600160a01b038481169116145b806117e757506005546001600160a01b031632145b6118335760405162461bcd60e51b815260206004820152601d60248201527f54726164696e672069732063757272656e746c792064697361626c65640000006044820152606401610a8b565b8015806118485750601a54610100900460ff16155b1561185857610e7e83838361200b565b6018546001600160a01b03841660009081526015602052604090205460ff9182161591168061189f57506001600160a01b03831660009081526015602052604090205460ff165b156118a8575060005b8015611a2b576001600160a01b03831660009081526012602052604081205460ff1680156118d857506000600954115b1561195f576000601754600c54856118f091906126fb565b6118fa9190612712565b90506000601754600d548661190f91906126fb565b6119199190612712565b905061192581836126b2565b925081600e600082825461193991906126b2565b9250508190555080600f600082825461195291906126b2565b90915550611a0b92505050565b6001600160a01b03851660009081526012602052604090205460ff16801561198957506000600854115b15611a0b576000601754600a54856119a191906126fb565b6119ab9190612712565b90506000601754600b54866119c091906126fb565b6119ca9190612712565b90506119d681836126b2565b925081600e60008282546119ea91906126b2565b9250508190555080600f6000828254611a0391906126b2565b909155505050505b8015611a2957611a1c85308361200b565b611a268184612734565b92505b505b601a5460ff1615611cd4576005546001600160a01b03858116911614801590611a6257506005546001600160a01b03848116911614155b8015611a7957506001600160a01b03831661dead14155b8015611a88575060185460ff16155b15611cd457326000908152601b6020908152604080832043845290915290205415611ab257600080fd5b326000908152601b602090815260408083204384528252808320600190556001600160a01b0387168352601290915290205460ff168015611b0c57506001600160a01b03831660009081526016602052604090205460ff16155b15611bc257601354821115611b5c5760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610a8b565b6014546001600160a01b038416600090815260046020526040902054611b8290846126b2565b1115611bbd5760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610a8b565b611cd4565b6001600160a01b03831660009081526012602052604090205460ff168015611c0357506001600160a01b03841660009081526016602052604090205460ff16155b15611c5357601354821115611bbd5760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610a8b565b6001600160a01b03831660009081526016602052604090205460ff16611cd4576014546001600160a01b038416600090815260046020526040902054611c9990846126b2565b1115611cd45760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610a8b565b60185460ff16158015611cf557506011546001600160a01b03858116911614155b8015611d0e57506011546001600160a01b038481169116145b8015611d3357506001600160a01b03841660009081526015602052604090205460ff16155b8015611d5857506001600160a01b03831660009081526015602052604090205460ff16155b8015611d7557506019543060009081526004602052604090205410155b15611d9a576018805460ff19166001179055611d8f6121cf565b6018805460ff191690555b6112af84848461200b565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b601054611e0f9030906001600160a01b0316846115c5565b60105460065460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611e7f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ea49190612747565b5050505050565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b17905291517fa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b92600092839290881691611f5991612775565b6000604051808303816000865af19150503d8060008114611f96576040519150601f19603f3d011682016040523d82523d6000602084013e611f9b565b606091505b5091509150818015611fc5575080511580611fc5575080806020019051810190611fc59190612791565b6120035760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610a8b565b505050505050565b6001600160a01b03831661206b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610a8b565b6001600160a01b0382166120c15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610a8b565b6001600160a01b0383166000908152600460205260409020548181101561213e5760405162461bcd60e51b815260206004820152602b60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526a68616e2062616c616e636560a81b6064820152608401610a8b565b6001600160a01b038085166000908152600460205260408082208585039055918516815290812080548492906121759084906126b2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121c191815260200190565b60405180910390a350505050565b600f54306000908152600460205260409020546121ec9190612734565b600e819055600f546121fe91906126b2565b60000361220757565b60006002600f546122189190612712565b9050600081600f5461222a9190612734565b600e5461223791906126b2565b9050612242816122f5565b60008183600f546122539190612734565b61225d90476126fb565b6122679190612712565b90506000831180156122795750600081115b15612288576122888382611df7565b600e54156122e6576007546040516001600160a01b03909116904790600081818185875af1925050503d80600081146122dd576040519150601f19603f3d011682016040523d82523d6000602084013e6122e2565b606091505b5050505b50506000600f819055600e5550565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061232a5761232a6127ae565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612383573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a791906126c5565b816001815181106123ba576123ba6127ae565b6001600160a01b0392831660209182029290920101526010546123e091309116846115c5565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906124199085906000908690309042906004016127c4565b600060405180830381600087803b15801561243357600080fd5b505af1158015612003573d6000803e3d6000fd5b60005b8381101561246257818101518382015260200161244a565b50506000910152565b602081526000825180602084015261248a816040850160208701612447565b601f01601f19169190910160400192915050565b6001600160a01b038116811461156257600080fd5b600080604083850312156124c657600080fd5b82356124d18161249e565b946020939093013593505050565b6000602082840312156124f157600080fd5b81356124fc8161249e565b9392505050565b60008060006060848603121561251857600080fd5b83356125238161249e565b925060208401356125338161249e565b929592945050506040919091013590565b60008060006060848603121561255957600080fd5b833592506020840135915060408401356125728161249e565b809150509250925092565b60006020828403121561258f57600080fd5b5035919050565b801515811461156257600080fd5b600080604083850312156125b757600080fd5b82356125c28161249e565b915060208301356125d281612596565b809150509250929050565b600080604083850312156125f057600080fd5b50508035926020909101359150565b6000806040838503121561261257600080fd5b823561261d8161249e565b915060208301356125d28161249e565b600181811c9082168061264157607f821691505b60208210810361266157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a4c57610a4c61269c565b6000602082840312156126d757600080fd5b81516124fc8161249e565b6000602082840312156126f457600080fd5b5051919050565b8082028115828204841417610a4c57610a4c61269c565b60008261272f57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a4c57610a4c61269c565b60008060006060848603121561275c57600080fd5b8351925060208401519150604084015190509250925092565b60008251612787818460208701612447565b9190910192915050565b6000602082840312156127a357600080fd5b81516124fc81612596565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128145784516001600160a01b0316835293830193918301916001016127ef565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203736dc3fedc2424bcff1ed8d84ca16b02ac78ed348758dd1566509cd498f5f3564736f6c63430008120033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000008d2a7f14c742f870d469eef71af1dc8eff6aa0220000000000000000000000008d2a7f14c742f870d469eef71af1dc8eff6aa0220000000000000000000000000f49bd75ef165167dd42cec28ae06d655a467412

-----Decoded View---------------
Arg [0] : router_ (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : LPTokenReceiver_ (address): 0x8d2A7f14c742F870D469EeF71AF1Dc8EfF6Aa022
Arg [2] : marketingReceiver_ (address): 0x8d2A7f14c742F870D469EeF71AF1Dc8EfF6Aa022
Arg [3] : authorizedDeployers (address): 0x0f49bD75ef165167dD42Cec28Ae06d655a467412

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 0000000000000000000000008d2a7f14c742f870d469eef71af1dc8eff6aa022
Arg [2] : 0000000000000000000000008d2a7f14c742f870d469eef71af1dc8eff6aa022
Arg [3] : 0000000000000000000000000f49bd75ef165167dd42cec28ae06d655a467412


Deployed Bytecode Sourcemap

6826:13144:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7654:28;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7654:28:0;;;;;;;;3437:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5270:167::-;;;;;;;;;;-1:-1:-1;5270:167:0;;;;;:::i;:::-;;:::i;:::-;;;1473:14:1;;1466:22;1448:41;;1436:2;1421:18;5270:167:0;1308:187:1;11970:271:0;;;;;;;;;;-1:-1:-1;11970:271:0;;;;;:::i;:::-;;:::i;:::-;;7577:36;;;;;;;;;;;;;;;;3321:108;;;;;;;;;;-1:-1:-1;3409:12:0;;3321:108;;7214:33;;;;;;;;;;;;;;;;7174;;;;;;;;;;;;;;;;2480:493;;;;;;;;;;-1:-1:-1;2480:493:0;;;;;:::i;:::-;;:::i;6871:30::-;;;;;;;;;;-1:-1:-1;6871:30:0;;;;-1:-1:-1;;;;;6871:30:0;;;;;;-1:-1:-1;;;;;2377:32:1;;;2359:51;;2347:2;2332:18;6871:30:0;2213:203:1;3545:93:0;;;;;;;;;;-1:-1:-1;3545:93:0;;3628:2;2563:36:1;;2551:2;2536:18;3545:93:0;2421:184:1;4655:211:0;;;;;;;;;;-1:-1:-1;4655:211:0;;;;;:::i;:::-;;:::i;7689:33::-;;;;;;;;;;-1:-1:-1;7689:33:0;;;;;;;;7729:34;;;;;;;;;;-1:-1:-1;7729:34:0;;;;;;;;;;;7510:58;;;;;;;;;;-1:-1:-1;7510:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6983:28;;;;;;;;;;;;;;;;5862:127;;;;;;;;;;-1:-1:-1;5862:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;5963:18:0;5936:7;5963:18;;;:9;:18;;;;;;;5862:127;952:103;;;;;;;;;;;;;:::i;11844:118::-;;;;;;;;;;;;;:::i;12249:277::-;;;;;;;;;;-1:-1:-1;12249:277:0;;;;;:::i;:::-;;:::i;7020:30::-;;;;;;;;;;;;;;;;7295:28;;;;;;;;;;-1:-1:-1;7295:28:0;;;;-1:-1:-1;;;;;7295:28:0;;;10426:542;;;;;;:::i;:::-;;:::i;10299:119::-;;;;;;;;;;;;;:::i;13417:198::-;;;;;;;;;;-1:-1:-1;13417:198:0;;;;;:::i;:::-;;:::i;323:87::-;;;;;;;;;;-1:-1:-1;396:6:0;;-1:-1:-1;;;;;396:6:0;323:87;;12655:146;;;;;;;;;;-1:-1:-1;12655:146:0;;;;;:::i;:::-;;:::i;7096:31::-;;;;;;;;;;;;;;;;5158:104;;;;;;;;;;;;;:::i;13297:112::-;;;;;;;;;;-1:-1:-1;13297:112:0;;;;;:::i;:::-;;:::i;7858:73::-;;;;;;;;;;-1:-1:-1;7858:73:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;11309:334;;;;;;;;;;-1:-1:-1;11309:334:0;;;;;:::i;:::-;;:::i;5445:409::-;;;;;;;;;;-1:-1:-1;5445:409:0;;;;;:::i;:::-;;:::i;6908:32::-;;;;;;;;;;-1:-1:-1;6908:32:0;;;;-1:-1:-1;;;;;6908:32:0;;;2981:173;;;;;;;;;;-1:-1:-1;2981:173:0;;;;;:::i;:::-;;:::i;12534:113::-;;;;;;;;;;-1:-1:-1;12534:113:0;;;;;:::i;:::-;;:::i;10976:325::-;;;;;;;;;;-1:-1:-1;10976:325:0;;;;;:::i;:::-;;:::i;19053:360::-;;;;;;;;;;-1:-1:-1;19053:360:0;;;;;:::i;:::-;;:::i;13179:110::-;;;;;;;;;;-1:-1:-1;13179:110:0;;;;;:::i;:::-;;:::i;11651:185::-;;;;;;;;;;-1:-1:-1;11651:185:0;;;;;:::i;:::-;;:::i;7378:35::-;;;;;;;;;;;;;;;;12807:203;;;;;;;;;;-1:-1:-1;12807:203:0;;;;;:::i;:::-;;:::i;7332:37::-;;;;;;;;;;-1:-1:-1;7332:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13016:155;;;;;;;;;;-1:-1:-1;13016:155:0;;;;;:::i;:::-;;:::i;6949:27::-;;;;;;;;;;;;;;;;3162:151;;;;;;;;;;-1:-1:-1;3162:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3278:18:0;;;3251:7;3278:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3162:151;13623:194;;;;;;;;;;-1:-1:-1;13623:194:0;;;;;:::i;:::-;;:::i;7057:30::-;;;;;;;;;;;;;;;;617:201;;;;;;;;;;-1:-1:-1;617:201:0;;;;;:::i;:::-;;:::i;19421:157::-;;;;;;;;;;;;;:::i;7134:31::-;;;;;;;;;;;;;;;;7256:32;;;;;;;;;;-1:-1:-1;7256:32:0;;;;-1:-1:-1;;;;;7256:32:0;;;7420:24;;;;;;;;;;;;;;;;3437:100;3491:13;3524:5;3517:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3437:100;:::o;5270:167::-;5353:4;5370:37;5379:10;5391:7;5400:6;5370:8;:37::i;:::-;-1:-1:-1;5425:4:0;5270:167;;;;;:::o;11970:271::-;877:10;866:7;396:6;;-1:-1:-1;;;;;396:6:0;;323:87;866:7;-1:-1:-1;;;;;866:21:0;;858:66;;;;-1:-1:-1;;;858:66:0;;;;;;;:::i;:::-;;;;;;;;;12057:15:::1;::::0;-1:-1:-1;;;;;12057:30:0;;::::1;:15:::0;::::1;:30:::0;12049:39:::1;;;::::0;::::1;;-1:-1:-1::0;;;;;12099:30:0::1;;::::0;;;:17:::1;:30;::::0;;;;;;;:37;;12132:4:::1;-1:-1:-1::0;;12099:37:0;;::::1;::::0;::::1;::::0;;;12147:26:::1;:39:::0;;;;;:46;;;;::::1;::::0;;::::1;::::0;;12204:15:::1;:29:::0;;-1:-1:-1;;;;;;12204:29:0::1;::::0;;::::1;::::0;;11970:271::o;2480:493::-;2620:4;2637:36;2647:6;2655:9;2666:6;2637:9;:36::i;:::-;-1:-1:-1;;;;;2713:19:0;;2686:24;2713:19;;;:11;:19;;;;;;;;2733:10;2713:31;;;;;;;;2763:26;;;;2755:84;;;;-1:-1:-1;;;2755:84:0;;5521:2:1;2755:84:0;;;5503:21:1;5560:2;5540:18;;;5533:30;5599:34;5579:18;;;5572:62;-1:-1:-1;;;5650:18:1;;;5643:43;5703:19;;2755:84:0;5319:409:1;2755:84:0;2875:55;2884:6;2892:10;2923:6;2904:16;:25;2875:8;:55::i;:::-;-1:-1:-1;2961:4:0;;2480:493;-1:-1:-1;;;;2480:493:0:o;4655:211::-;4769:10;4743:4;4790:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4790:32:0;;;;;;;;;;4743:4;;4760:76;;4781:7;;4790:45;;4825:10;;4790:45;:::i;:::-;4760:8;:76::i;952:103::-;877:10;866:7;396:6;;-1:-1:-1;;;;;396:6:0;;323:87;866:7;-1:-1:-1;;;;;866:21:0;;858:66;;;;-1:-1:-1;;;858:66:0;;;;;;;:::i;:::-;1017:30:::1;1044:1;1017:18;:30::i;:::-;952:103::o:0;11844:118::-;877:10;866:7;396:6;;-1:-1:-1;;;;;396:6:0;;323:87;866:7;-1:-1:-1;;;;;866:21:0;;858:66;;;;-1:-1:-1;;;858:66:0;;;;;;;:::i;:::-;11906:14:::1;::::0;::::1;;11898:23;;;::::0;::::1;;11932:14;:22:::0;;-1:-1:-1;;11932:22:0::1;::::0;;11844:118::o;12249:277::-;877:10;866:7;396:6;;-1:-1:-1;;;;;396:6:0;;323:87;866:7;-1:-1:-1;;;;;866:21:0;;858:66;;;;-1:-1:-1;;;858:66:0;;;;;;;:::i;:::-;12338:17:::1;::::0;-1:-1:-1;;;;;12338:32:0;;::::1;:17:::0;::::1;:32:::0;12330:41:::1;;;::::0;::::1;;-1:-1:-1::0;;;;;12382:30:0::1;;::::0;;;:17:::1;:30;::::0;;;;;;;:37;;12415:4:::1;-1:-1:-1::0;;12382:37:0;;::::1;::::0;::::1;::::0;;;12430:26:::1;:39:::0;;;;;:46;;;;::::1;::::0;;::::1;::::0;;12487:17:::1;:31:::0;;-1:-1:-1;;;;;;12487:31:0::1;::::0;;::::1;::::0;;12249:277::o;10426:542::-;877:10;866:7;396:6;;-1:-1:-1;;;;;396:6:0;;323:87;866:7;-1:-1:-1;;;;;866:21:0;;858:66;;;;-1:-1:-1;;;858:66:0;;;;;;;:::i;:::-;10581:1:::1;10567:11;:15;10559:24;;;::::0;::::1;;10614:1;10602:9;:13;10594:22;;;::::0;::::1;;10629:119;10662:19;-1:-1:-1::0;;;;;10639:62:0::1;;:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10713:4;10720:27;10734:13:::0;10720:11;:27:::1;:::i;:::-;10629:9;:119::i;:::-;10759:92;10791:19;-1:-1:-1::0;;;;;10768:62:0::1;;:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10842:4;10849:1;10759:8;:92::i;:::-;10864:48;10882:4;10889:7;396:6:::0;;-1:-1:-1;;;;;396:6:0;;323:87;10889:7:::1;10898:13;10864:9;:48::i;:::-;10923:37;10937:11;10950:9;10923:13;:37::i;:::-;10426:542:::0;;;:::o;10299:119::-;877:10;866:7;396:6;;-1:-1:-1;;;;;396:6:0;;323:87;866:7;-1:-1:-1;;;;;866:21:0;;858:66;;;;-1:-1:-1;;;858:66:0;;;;;;;:::i;:::-;10363:14:::1;::::0;::::1;::::0;::::1;;;10362:15;10354:24;;;::::0;::::1;;10389:14;:21:::0;;-1:-1:-1;;10389:21:0::1;;;::::0;;10299:119::o;13417:198::-;877:10;866:7;396:6;;-1:-1:-1;;;;;396:6:0;;323:87;866:7;-1:-1:-1;;;;;866:21:0;;858:66;;;;-1:-1:-1;;;858:66:0;;;;;;;:::i;:::-;13510:14:::1;;13501:5;:23;;:45;;;;;13536:10;;13528:5;:18;13501:45;13493:54;;;::::0;::::1;;13558:10;:18:::0;13587:13:::1;:20:::0;;-1:-1:-1;;13587:20:0::1;13603:4;13587:20;::::0;;13417:198::o;12655:146::-;877:10;866:7;396:6;;-1:-1:-1;;;;;396:6:0;;323:87;866:7;-1:-1:-1;;;;;866:21:0;;858:66;;;;-1:-1:-1;;;858:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12753:25:0;;;::::1;;::::0;;;:17:::1;:25;::::0;;;;:38;;-1:-1:-1;;12753:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12655:146::o;5158:104::-;5214:13;5247:7;5240:14;;;;;:::i;13297:112::-;877:10;866:7;396:6;;-1:-1:-1;;;;;396:6:0;;323:87;866:7;-1:-1:-1;;;;;866:21:0;;858:66;;;;-1:-1:-1;;;858:66:0;;;;;;;:::i;:::-;13374:13:::1;:27:::0;;-1:-1:-1;;;;;;13374:27:0::1;-1:-1:-1::0;;;;;13374:27:0;;;::::1;::::0;;;::::1;::::0;;13297:112::o;11309:334::-;877:10;866:7;396:6;;-1:-1:-1;;;;;396:6:0;;323:87;866:7;-1:-1:-1;;;;;866:21:0;;858:66;;;;-1:-1:-1;;;858:66:0;;;;;;;:::i;:::-;11404:16:::1;:31:::0;;;11446:16:::1;:31:::0;;;11506:35:::1;11465:12:::0;11423;11506:35:::1;:::i;:::-;11490:13;:51:::0;11558:13:::1;::::0;::::1;;11554:82;;;11613:10;;11596:13;;:27;;11588:36;;;::::0;::::1;;11309:334:::0;;:::o;5445:409::-;5594:10;5538:4;5582:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5582:32:0;;;;;;;;;;5633:35;;;;5625:85;;;;-1:-1:-1;;;5625:85:0;;6453:2:1;5625:85:0;;;6435:21:1;6492:2;6472:18;;;6465:30;6531:34;6511:18;;;6504:62;-1:-1:-1;;;6582:18:1;;;6575:35;6627:19;;5625:85:0;6251:401:1;5625:85:0;5746:65;5755:10;5767:7;5795:15;5776:16;:34;5746:8;:65::i;:::-;-1:-1:-1;5842:4:0;;5445:409;-1:-1:-1;;;5445:409:0:o;2981:173::-;3067:4;3084:40;3094:10;3106:9;3117:6;3084:9;:40::i;12534:113::-;877:10;866:7;396:6;;-1:-1:-1;;;;;396:6:0;;323:87;866:7;-1:-1:-1;;;;;866:21:0;;858:66;;;;-1:-1:-1;;;858:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12613:17:0;;;::::1;;::::0;;;:5:::1;:17;::::0;;;;:26;;-1:-1:-1;;12613:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12534:113::o;10976:325::-;877:10;866:7;396:6;;-1:-1:-1;;;;;396:6:0;;323:87;866:7;-1:-1:-1;;;;;866:21:0;;858:66;;;;-1:-1:-1;;;858:66:0;;;;;;;:::i;:::-;11070:15:::1;:30:::0;;;11111:15:::1;:30:::0;;;11169:33:::1;11129:12:::0;11088;11169:33:::1;:::i;:::-;11154:12;:48:::0;11219:12:::1;::::0;::::1;::::0;::::1;;;11215:79;;;11272:9;;11256:12;;:25;;11248:34;;;::::0;::::1;19053:360:::0;19172:4;-1:-1:-1;;;;;19148:29:0;;;19140:38;;;;;;19212:45;;-1:-1:-1;;;19212:45:0;;19251:4;19212:45;;;2359:51:1;19189:20:0;;-1:-1:-1;;;;;19212:30:0;;;;;2332:18:1;;19212:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19189:68;-1:-1:-1;19268:24:0;19295:11;;:35;;19324:6;19295:35;;;19309:12;19295:35;19369:17;;19268:62;;-1:-1:-1;19341:64:0;;19355:12;;-1:-1:-1;;;;;19369:17:0;19268:62;19341:13;:64::i;:::-;19129:284;;19053:360;;:::o;13179:110::-;877:10;866:7;396:6;;-1:-1:-1;;;;;396:6:0;;323:87;866:7;-1:-1:-1;;;;;866:21:0;;858:66;;;;-1:-1:-1;;;858:66:0;;;;;;;:::i;:::-;13245:6:::1;:36:::0;;-1:-1:-1;;;;;;13245:36:0::1;-1:-1:-1::0;;;;;13245:36:0;;;::::1;::::0;;;::::1;::::0;;13179:110::o;11651:185::-;877:10;866:7;396:6;;-1:-1:-1;;;;;396:6:0;;323:87;866:7;-1:-1:-1;;;;;866:21:0;;858:66;;;;-1:-1:-1;;;858:66:0;;;;;;;:::i;:::-;11751:20:::1;:44:::0;;;;11806:9:::1;:22:::0;11651:185::o;12807:203::-;877:10;866:7;396:6;;-1:-1:-1;;;;;396:6:0;;323:87;866:7;-1:-1:-1;;;;;866:21:0;;858:66;;;;-1:-1:-1;;;858:66:0;;;;;;;:::i;:::-;12911:1:::1;12896:12;:16;12888:65;;;::::0;-1:-1:-1;;;12888:65:0;;7048:2:1;12888:65:0::1;::::0;::::1;7030:21:1::0;7087:2;7067:18;;;7060:30;7126:34;7106:18;;;7099:62;-1:-1:-1;;;7177:18:1;;;7170:34;7221:19;;12888:65:0::1;6846:400:1::0;12888:65:0::1;12964:13;:28:::0;12807:203::o;13016:155::-;877:10;866:7;396:6;;-1:-1:-1;;;;;396:6:0;;323:87;866:7;-1:-1:-1;;;;;866:21:0;;858:66;;;;-1:-1:-1;;;858:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13116:34:0;;;::::1;;::::0;;;:26:::1;:34;::::0;;;;:47;;-1:-1:-1;;13116:47:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13016:155::o;13623:194::-;877:10;866:7;396:6;;-1:-1:-1;;;;;396:6:0;;323:87;866:7;-1:-1:-1;;;;;866:21:0;;858:66;;;;-1:-1:-1;;;858:66:0;;;;;;;:::i;:::-;13715:14:::1;;13706:5;:23;;:44;;;;;13741:9;;13733:5;:17;13706:44;13698:53;;;::::0;::::1;;13762:9;:17:::0;13790:12:::1;:19:::0;;-1:-1:-1;;13790:19:0::1;;;::::0;;13623:194::o;617:201::-;877:10;866:7;396:6;;-1:-1:-1;;;;;396:6:0;;323:87;866:7;-1:-1:-1;;;;;866:21:0;;858:66;;;;-1:-1:-1;;;858:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;706:22:0;::::1;698:73;;;::::0;-1:-1:-1;;;698:73:0;;7453:2:1;698:73:0::1;::::0;::::1;7435:21:1::0;7492:2;7472:18;;;7465:30;7531:34;7511:18;;;7504:62;-1:-1:-1;;;7582:18:1;;;7575:36;7628:19;;698:73:0::1;7251:402:1::0;698:73:0::1;782:28;801:8;782:18;:28::i;:::-;617:201:::0;:::o;19421:157::-;19487:17;;:56;;19470:12;;-1:-1:-1;;;;;19487:17:0;;19517:21;;19470:12;19487:56;19470:12;19487:56;19517:21;19487:17;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19469:74;;;19562:7;19554:16;;;;;4267:380;-1:-1:-1;;;;;4403:19:0;;4395:68;;;;-1:-1:-1;;;4395:68:0;;8070:2:1;4395:68:0;;;8052:21:1;8109:2;8089:18;;;8082:30;8148:34;8128:18;;;8121:62;-1:-1:-1;;;8199:18:1;;;8192:34;8243:19;;4395:68:0;7868:400:1;4395:68:0;-1:-1:-1;;;;;4482:21:0;;4474:68;;;;-1:-1:-1;;;4474:68:0;;8475:2:1;4474:68:0;;;8457:21:1;8514:2;8494:18;;;8487:30;8553:34;8533:18;;;8526:62;-1:-1:-1;;;8604:18:1;;;8597:32;8646:19;;4474:68:0;8273:398:1;4474:68:0;-1:-1:-1;;;;;4555:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;4607:32;;160:25:1;;;4607:32:0;;133:18:1;4607:32:0;;;;;;;4267:380;;;:::o;13825:3553::-;-1:-1:-1;;;;;13957:18:0;;13949:68;;;;-1:-1:-1;;;13949:68:0;;8878:2:1;13949:68:0;;;8860:21:1;8917:2;8897:18;;;8890:30;8956:34;8936:18;;;8929:62;-1:-1:-1;;;9007:18:1;;;9000:35;9052:19;;13949:68:0;8676:401:1;13949:68:0;-1:-1:-1;;;;;14036:16:0;;14028:64;;;;-1:-1:-1;;;14028:64:0;;9284:2:1;14028:64:0;;;9266:21:1;9323:2;9303:18;;;9296:30;9362:34;9342:18;;;9335:62;-1:-1:-1;;;9413:18:1;;;9406:33;9456:19;;14028:64:0;9082:399:1;14028:64:0;14111:14;;;;;;;;:33;;-1:-1:-1;396:6:0;;-1:-1:-1;;;;;14129:15:0;;;396:6;;14129:15;14111:33;:57;;;-1:-1:-1;396:6:0;;-1:-1:-1;;;;;396:6:0;14148:9;:20;14111:57;14103:99;;;;-1:-1:-1;;;14103:99:0;;9688:2:1;14103:99:0;;;9670:21:1;9727:2;9707:18;;;9700:30;9766:31;9746:18;;;9739:59;9815:18;;14103:99:0;9486:353:1;14103:99:0;14219:11;;;:30;;-1:-1:-1;14235:14:0;;;;;;;14234:15;14219:30;14215:118;;;14266:33;14282:4;14288:2;14292:6;14266:15;:33::i;14215:118::-;14361:8;;-1:-1:-1;;;;;14386:23:0;;14345:12;14386:23;;;:17;:23;;;;;;14361:8;;;;14360:9;;14386:23;;:48;;-1:-1:-1;;;;;;14413:21:0;;;;;;:17;:21;;;;;;;;14386:48;14382:96;;;-1:-1:-1;14461:5:0;14382:96;14494:7;14490:1108;;;-1:-1:-1;;;;;14557:9:0;;14520:12;14557:9;;;:5;:9;;;;;;;;:30;;;;;14586:1;14570:13;;:17;14557:30;14553:894;;;14608:29;14668:14;;14649:16;;14640:6;:25;;;;:::i;:::-;:42;;;;:::i;:::-;14608:74;;14701:29;14761:14;;14742:16;;14733:6;:25;;;;:::i;:::-;:42;;;;:::i;:::-;14701:74;-1:-1:-1;14803:45:0;14701:74;14803:21;:45;:::i;:::-;14796:52;;14891:21;14869:18;;:43;;;;;;;:::i;:::-;;;;;;;;14953:21;14931:18;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;14553:894:0;;-1:-1:-1;;;14553:894:0;;-1:-1:-1;;;;;15015:11:0;;;;;;:5;:11;;;;;;;;:31;;;;;15045:1;15030:12;;:16;15015:31;15011:436;;;15067:29;15126:14;;15108:15;;15099:6;:24;;;;:::i;:::-;:41;;;;:::i;:::-;15067:73;;15159:29;15218:14;;15200:15;;15191:6;:24;;;;:::i;:::-;:41;;;;:::i;:::-;15159:73;-1:-1:-1;15260:45:0;15159:73;15260:21;:45;:::i;:::-;15253:52;;15348:21;15326:18;;:43;;;;;;;:::i;:::-;;;;;;;;15410:21;15388:18;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;15011:436:0;15467:8;;15463:124;;15496:42;15512:4;15526;15533;15496:15;:42::i;:::-;15557:14;15567:4;15557:14;;:::i;:::-;;;15463:124;14503:1095;14490:1108;15614:14;;;;15610:1348;;;396:6;;-1:-1:-1;;;;;15667:15:0;;;396:6;;15667:15;;;;:49;;-1:-1:-1;396:6:0;;-1:-1:-1;;;;;15703:13:0;;;396:6;;15703:13;;15667:49;:91;;;;-1:-1:-1;;;;;;15737:21:0;;15751:6;15737:21;;15667:91;:121;;;;-1:-1:-1;15780:8:0;;;;15779:9;15667:121;15645:1302;;;15850:9;15831:29;;;;:18;:29;;;;;;;;15861:12;15831:43;;;;;;;;:48;15823:57;;;;;;15918:9;15899:29;;;;:18;:29;;;;;;;;15929:12;15899:43;;;;;;;15945:1;15899:47;;-1:-1:-1;;;;;15993:11:0;;;;:5;:11;;;;;;;;:67;;;;-1:-1:-1;;;;;;16030:30:0;;;;;;:26;:30;;;;;;;;16029:31;15993:67;15967:965;;;16147:20;;16137:6;:30;;16103:138;;;;-1:-1:-1;;;16103:138:0;;10574:2:1;16103:138:0;;;10556:21:1;10613:2;10593:18;;;10586:30;-1:-1:-1;;;10632:18:1;;;10625:52;10694:18;;16103:138:0;10372:346:1;16103:138:0;16324:9;;-1:-1:-1;;;;;5963:18:0;;5936:7;5963:18;;;:9;:18;;;;;;16298:22;;:6;:22;:::i;:::-;:35;;16264:131;;;;-1:-1:-1;;;16264:131:0;;10925:2:1;16264:131:0;;;10907:21:1;10964:2;10944:18;;;10937:30;-1:-1:-1;;;10983:18:1;;;10976:40;11033:18;;16264:131:0;10723:334:1;16264:131:0;15967:965;;;-1:-1:-1;;;;;16447:9:0;;;;;;:5;:9;;;;;;;;:67;;;;-1:-1:-1;;;;;;16482:32:0;;;;;;:26;:32;;;;;;;;16481:33;16447:67;16421:511;;;16601:20;;16591:6;:30;;16557:138;;;;-1:-1:-1;;;16557:138:0;;10574:2:1;16557:138:0;;;10556:21:1;10613:2;10593:18;;;10586:30;-1:-1:-1;;;10632:18:1;;;10625:52;10694:18;;16557:138:0;10372:346:1;16421:511:0;-1:-1:-1;;;;;16726:30:0;;;;;;:26;:30;;;;;;;;16721:211;;16841:9;;-1:-1:-1;;;;;5963:18:0;;5936:7;5963:18;;;:9;:18;;;;;;16815:22;;:6;:22;:::i;:::-;:35;;16781:131;;;;-1:-1:-1;;;16781:131:0;;10925:2:1;16781:131:0;;;10907:21:1;10964:2;10944:18;;;10937:30;-1:-1:-1;;;10983:18:1;;;10976:40;11033:18;;16781:131:0;10723:334:1;16781:131:0;16989:8;;;;16988:9;:47;;;;-1:-1:-1;17022:13:0;;-1:-1:-1;;;;;17014:21:0;;;17022:13;;17014:21;;16988:47;:83;;;;-1:-1:-1;17058:13:0;;-1:-1:-1;;;;;17052:19:0;;;17058:13;;17052:19;16988:83;:124;;;;-1:-1:-1;;;;;;17089:23:0;;;;;;:17;:23;;;;;;;;17088:24;16988:124;:163;;;;-1:-1:-1;;;;;;17130:21:0;;;;;;:17;:21;;;;;;;;17129:22;16988:163;:221;;;;-1:-1:-1;17196:13:0;;17186:4;5936:7;5963:18;;;:9;:18;;;;;;17168:41;;16988:221;16970:353;;;17236:8;:15;;-1:-1:-1;;17236:15:0;17247:4;17236:15;;;17268:10;:8;:10::i;:::-;17295:8;:16;;-1:-1:-1;;17295:16:0;;;16970:353;17337:33;17353:4;17359:2;17363:6;17337:15;:33::i;418:191::-;511:6;;;-1:-1:-1;;;;;528:17:0;;;-1:-1:-1;;;;;;528:17:0;;;;;;;561:40;;511:6;;;528:17;511:6;;561:40;;492:16;;561:40;481:128;418:191;:::o;18692:353::-;18807:6;;18775:53;;18792:4;;-1:-1:-1;;;;;18807:6:0;18816:11;18775:8;:53::i;:::-;18839:6;;18981:15;;18839:198;;-1:-1:-1;;;18839:198:0;;18903:4;18839:198;;;11403:34:1;11453:18;;;11446:34;;;18839:6:0;11496:18:1;;;11489:34;;;11539:18;;;11532:34;-1:-1:-1;;;;;18981:15:0;;;11582:19:1;;;11575:44;19011:15:0;11635:19:1;;;11628:35;18839:6:0;;;:22;;18869:9;;11337:19:1;;18839:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18692:353;;:::o;19586:379::-;19713:34;;;;;;;;;;;;;;;;;19809:51;;-1:-1:-1;;;;;12177:32:1;;;19809:51:0;;;12159::1;12226:18;;;;12219:34;;;19809:51:0;;;;;;;;;;12132:18:1;;;;19809:51:0;;;;;;;-1:-1:-1;;;;;19809:51:0;-1:-1:-1;;;19809:51:0;;;19798:63;;19703:45;;-1:-1:-1;;;;19798:10:0;;;;:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19762:99;;;;19880:7;:57;;;;-1:-1:-1;19892:11:0;;:16;;:44;;;19923:4;19912:24;;;;;;;;;;;;:::i;:::-;19872:85;;;;-1:-1:-1;;;19872:85:0;;13008:2:1;19872:85:0;;;12990:21:1;13047:2;13027:18;;;13020:30;-1:-1:-1;;;13066:18:1;;;13059:45;13121:18;;19872:85:0;12806:339:1;19872:85:0;19659:306;;;19586:379;;;:::o;3646:613::-;-1:-1:-1;;;;;3786:20:0;;3778:66;;;;-1:-1:-1;;;3778:66:0;;13352:2:1;3778:66:0;;;13334:21:1;13391:2;13371:18;;;13364:30;13430:34;13410:18;;;13403:62;-1:-1:-1;;;13481:18:1;;;13474:31;13522:19;;3778:66:0;13150:397:1;3778:66:0;-1:-1:-1;;;;;3863:23:0;;3855:67;;;;-1:-1:-1;;;3855:67:0;;13754:2:1;3855:67:0;;;13736:21:1;13793:2;13773:18;;;13766:30;13832:33;13812:18;;;13805:61;13883:18;;3855:67:0;13552:355:1;3855:67:0;-1:-1:-1;;;;;3959:17:0;;3935:21;3959:17;;;:9;:17;;;;;;3995:23;;;;3987:79;;;;-1:-1:-1;;;3987:79:0;;14114:2:1;3987:79:0;;;14096:21:1;14153:2;14133:18;;;14126:30;14192:34;14172:18;;;14165:62;-1:-1:-1;;;14243:18:1;;;14236:41;14294:19;;3987:79:0;13912:407:1;3987:79:0;-1:-1:-1;;;;;4102:17:0;;;;;;;:9;:17;;;;;;4122:22;;;4102:42;;4166:20;;;;;;;;:30;;4138:6;;4102:17;4166:30;;4138:6;;4166:30;:::i;:::-;;;;;;;;4231:9;-1:-1:-1;;;;;4214:35:0;4223:6;-1:-1:-1;;;;;4214:35:0;;4242:6;4214:35;;;;160:25:1;;148:2;133:18;;14:177;4214:35:0;;;;;;;;3767:492;3646:613;;;:::o;17839:847::-;17931:18;;17922:4;5936:7;5963:18;;;:9;:18;;;;;;17904:45;;;;:::i;:::-;17883:18;:66;;;17968:18;;:39;;17883:66;17968:39;:::i;:::-;18011:1;17968:44;17964:91;;17839:847::o;17964:91::-;18067:17;18108:1;18087:18;;:22;;;;:::i;:::-;18067:42;;18120:26;18192:9;18171:18;;:30;;;;:::i;:::-;18149:18;;:53;;;;:::i;:::-;18120:82;;18213:36;18230:18;18213:16;:36::i;:::-;18262:23;18347:18;18334:9;18313:18;;:30;;;;:::i;:::-;18288:56;;:21;:56;:::i;:::-;:77;;;;:::i;:::-;18262:103;;18394:1;18382:9;:13;:36;;;;;18417:1;18399:15;:19;18382:36;18378:110;;;18435:41;18449:9;18460:15;18435:13;:41::i;:::-;18504:18;;:22;18500:111;;18543:17;;:56;;-1:-1:-1;;;;;18543:17:0;;;;18573:21;;18543:56;;;;18573:21;18543:17;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18500:111;-1:-1:-1;;18644:1:0;18623:18;:22;;;18656:18;:22;-1:-1:-1;17839:847:0:o;17386:445::-;17477:16;;;17491:1;17477:16;;;;;;;;17453:21;;17477:16;;;;;;;;;;-1:-1:-1;17477:16:0;17453:40;;17522:4;17504;17509:1;17504:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17504:23:0;;;:7;;;;;;;;;;:23;;;;17548:6;;:13;;;-1:-1:-1;;;17548:13:0;;;;:6;;;;;:11;;:13;;;;;17504:7;;17548:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17538:4;17543:1;17538:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17538:23:0;;;:7;;;;;;;;;:23;17604:6;;17572:53;;17589:4;;17604:6;17613:11;17572:8;:53::i;:::-;17636:6;;:187;;-1:-1:-1;;;17636:187:0;;-1:-1:-1;;;;;17636:6:0;;;;:57;;:187;;17708:11;;17636:6;;17750:4;;17777;;17797:15;;17636: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:131::-;-1:-1:-1;;;;;927:31:1;;917:42;;907:70;;973:1;970;963:12;988:315;1056:6;1064;1117:2;1105:9;1096:7;1092:23;1088:32;1085:52;;;1133:1;1130;1123:12;1085:52;1172:9;1159:23;1191:31;1216:5;1191:31;:::i;:::-;1241:5;1293:2;1278:18;;;;1265:32;;-1:-1:-1;;;988:315:1:o;1500:247::-;1559:6;1612:2;1600:9;1591:7;1587:23;1583:32;1580:52;;;1628:1;1625;1618:12;1580:52;1667:9;1654:23;1686:31;1711:5;1686:31;:::i;:::-;1736:5;1500:247;-1:-1:-1;;;1500:247:1:o;1752:456::-;1829:6;1837;1845;1898:2;1886:9;1877:7;1873:23;1869:32;1866:52;;;1914:1;1911;1904:12;1866:52;1953:9;1940:23;1972:31;1997:5;1972:31;:::i;:::-;2022:5;-1:-1:-1;2079:2:1;2064:18;;2051:32;2092:33;2051:32;2092:33;:::i;:::-;1752:456;;2144:7;;-1:-1:-1;;;2198:2:1;2183:18;;;;2170:32;;1752:456::o;2610:383::-;2687:6;2695;2703;2756:2;2744:9;2735:7;2731:23;2727:32;2724:52;;;2772:1;2769;2762:12;2724:52;2808:9;2795:23;2785:33;;2865:2;2854:9;2850:18;2837:32;2827:42;;2919:2;2908:9;2904:18;2891:32;2932:31;2957:5;2932:31;:::i;:::-;2982:5;2972:15;;;2610:383;;;;;:::o;2998:180::-;3057:6;3110:2;3098:9;3089:7;3085:23;3081:32;3078:52;;;3126:1;3123;3116:12;3078:52;-1:-1:-1;3149:23:1;;2998:180;-1:-1:-1;2998:180:1:o;3183:118::-;3269:5;3262:13;3255:21;3248:5;3245:32;3235:60;;3291:1;3288;3281:12;3306:382;3371:6;3379;3432:2;3420:9;3411:7;3407:23;3403:32;3400:52;;;3448:1;3445;3438:12;3400:52;3487:9;3474:23;3506:31;3531:5;3506:31;:::i;:::-;3556:5;-1:-1:-1;3613:2:1;3598:18;;3585:32;3626:30;3585:32;3626:30;:::i;:::-;3675:7;3665:17;;;3306:382;;;;;:::o;3693:248::-;3761:6;3769;3822:2;3810:9;3801:7;3797:23;3793:32;3790:52;;;3838:1;3835;3828:12;3790:52;-1:-1:-1;;3861:23:1;;;3931:2;3916:18;;;3903:32;;-1:-1:-1;3693:248:1:o;3946:388::-;4014:6;4022;4075:2;4063:9;4054:7;4050:23;4046:32;4043:52;;;4091:1;4088;4081:12;4043:52;4130:9;4117:23;4149:31;4174:5;4149:31;:::i;:::-;4199:5;-1:-1:-1;4256:2:1;4241:18;;4228:32;4269:33;4228:32;4269:33;:::i;4573:380::-;4652:1;4648:12;;;;4695;;;4716:61;;4770:4;4762:6;4758:17;4748:27;;4716:61;4823:2;4815:6;4812:14;4792:18;4789:38;4786:161;;4869:10;4864:3;4860:20;4857:1;4850:31;4904:4;4901:1;4894:15;4932:4;4929:1;4922:15;4786:161;;4573:380;;;:::o;4958:356::-;5160:2;5142:21;;;5179:18;;;5172:30;5238:34;5233:2;5218:18;;5211:62;5305:2;5290:18;;4958:356::o;5733:127::-;5794:10;5789:3;5785:20;5782:1;5775:31;5825:4;5822:1;5815:15;5849:4;5846:1;5839:15;5865:125;5930:9;;;5951:10;;;5948:36;;;5964:18;;:::i;5995:251::-;6065:6;6118:2;6106:9;6097:7;6093:23;6089:32;6086:52;;;6134:1;6131;6124:12;6086:52;6166:9;6160:16;6185:31;6210:5;6185:31;:::i;6657:184::-;6727:6;6780:2;6768:9;6759:7;6755:23;6751:32;6748:52;;;6796:1;6793;6786:12;6748:52;-1:-1:-1;6819:16:1;;6657:184;-1:-1:-1;6657:184:1:o;9844:168::-;9917:9;;;9948;;9965:15;;;9959:22;;9945:37;9935:71;;9986:18;;:::i;10017:217::-;10057:1;10083;10073:132;;10127:10;10122:3;10118:20;10115:1;10108:31;10162:4;10159:1;10152:15;10190:4;10187:1;10180:15;10073:132;-1:-1:-1;10219:9:1;;10017:217::o;10239:128::-;10306:9;;;10327:11;;;10324:37;;;10341:18;;:::i;11674:306::-;11762:6;11770;11778;11831:2;11819:9;11810:7;11806:23;11802:32;11799:52;;;11847:1;11844;11837:12;11799:52;11876:9;11870:16;11860:26;;11926:2;11915:9;11911:18;11905:25;11895:35;;11970:2;11959:9;11955:18;11949:25;11939:35;;11674:306;;;;;:::o;12264:287::-;12393:3;12431:6;12425:13;12447:66;12506:6;12501:3;12494:4;12486:6;12482:17;12447:66;:::i;:::-;12529:16;;;;;12264:287;-1:-1:-1;;12264:287:1:o;12556:245::-;12623:6;12676:2;12664:9;12655:7;12651:23;12647:32;12644:52;;;12692:1;12689;12682:12;12644:52;12724:9;12718:16;12743:28;12765:5;12743:28;:::i;14456:127::-;14517:10;14512:3;14508:20;14505:1;14498:31;14548:4;14545:1;14538:15;14572:4;14569:1;14562:15;14588:980;14850:4;14898:3;14887:9;14883:19;14929:6;14918:9;14911:25;14955:2;14993:6;14988:2;14977:9;14973:18;14966:34;15036:3;15031:2;15020:9;15016:18;15009:31;15060:6;15095;15089:13;15126:6;15118;15111:22;15164:3;15153:9;15149:19;15142:26;;15203:2;15195:6;15191:15;15177:29;;15224:1;15234:195;15248:6;15245:1;15242:13;15234:195;;;15313:13;;-1:-1:-1;;;;;15309:39:1;15297:52;;15404:15;;;;15369:12;;;;15345:1;15263:9;15234:195;;;-1:-1:-1;;;;;;;15485:32:1;;;;15480:2;15465:18;;15458:60;-1:-1:-1;;;15549:3:1;15534:19;15527:35;15446:3;14588:980;-1:-1:-1;;;14588:980:1:o

Swarm Source

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