ETH Price: $3,379.12 (-1.89%)
Gas: 2 Gwei

Token

Shila Inu (SHIL)
 

Overview

Max Total Supply

1,000,000,000,000 SHIL

Holders

1,461 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$122,420.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.295211852545862726 SHIL

Value
$0.00 ( ~0 Eth) [0.0000%]
0x2cea8e08b9b5f86bef483ff8294ff3c9716e98f2
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Once upon a time there lived a young couple, Shiba and Shina. They had a vision of bringing cryptocurrency to the world. So they decided to have a baby, whom they named Shila.

Market

Volume (24H):$74.31
Market Capitalization:$0.00
Circulating Supply:0.00 SHIL
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
1
Uniswap V2 (Ethereum)
0X20C3FA331A385B63EE39137E99D0CF2DB142FCE1-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$0.00
0.0000000 Eth
$74.80
607,012,998.989 0X20C3FA331A385B63EE39137E99D0CF2DB142FCE1
100.0000%

Contract Source Code Verified (Exact Match)

Contract Name:
SHILAINU

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-20
*/

/*
\x53\x68\x69\x62\x61\x20\x74\x68\x65\x6e\x20\x53\x68\x69\x6e\x61\x20\x6e\x6f\x77\x20\x53\x68\x69\x6c\x61\x20\x2d\x20\x74\x68\x65\x20\x6f\x66\x66\x73\x70\x72\x69\x6e\x67\x20\x6f\x66\x20\x62\x6f\x74\x68



*/

// SPDX-License-Identifier: Unlicensed


pragma solidity ^0.8.11;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    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);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

contract Ownable is Context {
    address public _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

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

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

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

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

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

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

interface InterfaceLP {
    function sync() external;
}

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

    address WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    

    string constant _name = "Shila Inu";
    string constant _symbol = "SHIL";
    uint8 constant _decimals = 18; 

    uint256 _totalSupply = 1 * 10**12 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply.mul(1).div(100);
    uint256 public _maxWalletToken = _totalSupply.mul(1).div(100);

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

    bool public blacklistMode = true;
    mapping (address => bool) public isblacklisted;


    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 2;
    uint256 private devFee          = 0;
    uint256 private ecosystemFee    = 1; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = ecosystemFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellpercent = 1600;
    uint256 buypercent = 1300;
    uint256 transferpercent = 1000; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private ecosystemFeeReceiver;
    address private burnFeeReceiver;

    uint256 targetLiquidity = 30;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    
    bool public TradingOpen = false;    

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 30 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[devFeeReceiver] = true;
            
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[devFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x6034438a74176ad140C4e9c3D7CB6f734f1B520c;
        devFeeReceiver = msg.sender;
        ecosystemFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) {return owner();}
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

        function setMaxBag(uint256 maxWallPercent) external onlyOwner {
         require(_maxWalletToken >= _totalSupply / 1000); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

    function setMaxTransaction(uint256 maxTXPercent) external onlyOwner {
         require(_maxTxAmount >= _totalSupply / 1000); 
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

  
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");
        
           }
        
                      
        if(blacklistMode){
            require(!isblacklisted[sender],"blacklisted");    
        }

        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        // Checks max transaction limit
        checkTxLimit(sender, amount); 

        if(shouldSwapBack()){ swapBack(); }
                    
         //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 percent = transferpercent;

        if(recipient == pair) {
            percent = sellpercent;
        } else if(sender == pair) {
            percent = buypercent;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        if(burnTokens > 0){
            emit Transfer(sender, burnFeeReceiver, burnTokens);    
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function clearStuckETH(uint256 amountPercentage) external {
        uint256 amountETH = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

     function manualSwapBack() external onlyOwner {
           swapBack();
    
    }

    function removelimits() external onlyOwner { 
        _maxWalletToken = _totalSupply;
        _maxTxAmount = _totalSupply;

    }

    function manualsend() external { 
        require(isTxLimitExempt[msg.sender]);
        payable(devFeeReceiver).transfer(address(this).balance);

    }

    function clearForeignToken(address tokenAddress, uint256 tokens) public returns (bool) {
        require(isTxLimitExempt[msg.sender]);
     if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function setPercentFees(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellpercent = _sell;
        buypercent = _buy;
        transferpercent = _trans;    
          
    }

    function openTrading() public onlyOwner {
        TradingOpen = true;
    }

        
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHecosystem = amountETH.mul(ecosystemFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(ecosystemFeeReceiver).call{value: amountETHecosystem}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function boolblacklist(bool _status) public onlyOwner {
        blacklistMode = _status;
    }

   
    function add_blacklist(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isblacklisted[addresses[i]] = status;
        }
    }
    
    function setTXandFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
        isTxLimitExempt[holder] = exempt;
    }

    function setTXExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setTaxAllocation(uint256 _liquidityFee, uint256 _ecosystemFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        ecosystemFee = _ecosystemFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_ecosystemFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/2, "Fees cannot be more than 50%"); 
    }

    function setReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _ecosystemFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        ecosystemFeeReceiver = _ecosystemFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetRatio(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }




event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","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":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"add_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"boolblacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearForeignToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isblacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","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 IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxBag","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setPercentFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_ecosystemFeeReceiver","type":"address"}],"name":"setReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXandFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_ecosystemFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setTaxAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326012600a620006e4565b620000439064e8d4a51000620006f5565b6005556200007d6064620000696001600554620004b760201b620012751790919060201c565b6200054b60201b620012f41790919060201c565b600655620000a36064620000696001600554620004b760201b620012751790919060201c565b600755600a805460ff19166001908117909155600e8190556002600f8190556000601081905560118390556012819055918291620000e2908262000717565b620000ee919062000717565b620000fa919062000717565b62000106919062000717565b601355606460148190556106406015556105146016556103e86017819055601e601d8190559182556021805461ffff60a01b1916600160a81b1790556005549091620001539190620006f5565b6200015f919062000732565b6022553480156200016f57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200022f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000255919062000755565b600280546001600160a01b0319166001600160a01b03928316179055601f546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620002b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002da919062000755565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200032c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000352919062000755565b602180546001600160a01b039283166001600160a01b0319918216811783556020805483169091178155306000818152600983526040808220601f54881683528452808220600019905533808352600c8552818320805460ff199081166001908117909255601a80548b1686528486208054831684179055838652600d8852848620805483168417905598548a168552838520805482168317905588548a1685528385208054821683179055601980548b1686528486208054831684179055958552838520805490911690911790556018805487168217905583548616736034438a74176ad140c4e9c3d7cb6f734f1b520c17909355855485168317909555601b8054851683179055600354601c80549095169616959095179092556005548285526008825283852081905592519283529092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007d8565b600082620004c85750600062000545565b6000620004d68385620006f5565b905082620004e5858362000732565b14620005425760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200054283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200059560201b60201c565b60008183620005b95760405162461bcd60e51b815260040162000539919062000780565b506000620005c8848662000732565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006285781600019048211156200060c576200060c620005d1565b808516156200061a57918102915b93841c9390800290620005ec565b509250929050565b600082620006415750600162000545565b81620006505750600062000545565b8160018114620006695760028114620006745762000694565b600191505062000545565b60ff841115620006885762000688620005d1565b50506001821b62000545565b5060208310610133831016604e8410600b8410161715620006b9575081810a62000545565b620006c58383620005e7565b8060001904821115620006dc57620006dc620005d1565b029392505050565b60006200054260ff84168362000630565b6000816000190483118215151615620007125762000712620005d1565b500290565b600082198211156200072d576200072d620005d1565b500190565b6000826200075057634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200076857600080fd5b81516001600160a01b03811681146200054257600080fd5b600060208083528351808285015260005b81811015620007af5785810183015185820160400152820162000791565b81811115620007c2576000604083870101525b50601f01601f1916929092016040019392505050565b61245380620007e86000396000f3fe6080604052600436106102765760003560e01c80637d1db4a51161014f578063c35e3050116100c1578063df20fd491161007a578063df20fd491461077e578063ed6a59651461079e578063ed716b2a146107ce578063f0a9e365146107ee578063f2fde38b1461080e578063f887ea401461082e57600080fd5b8063c35e3050146106a3578063c4e7e819146106c3578063c9567bf9146106e3578063d51ed1c8146106f8578063d78e139d14610718578063dd62ed3e1461073857600080fd5b80639acb773e116101135780639acb773e146105e3578063a55200d214610603578063a8aa1b3114610623578063a9059cbb14610643578063ab5a188714610663578063b2bdfa7b1461068357600080fd5b80637d1db4a514610536578063893d20e81461054c578063896648c11461057e5780638da5cb5b1461059857806395d89b41146105b657600080fd5b80633554dd3c116101e85780636ddd1713116101ac5780636ddd17131461047f5780636fc3eaec146104a057806370a08231146104b5578063715018a6146104eb57806372a2f3521461050057806378109e541461052057600080fd5b80633554dd3c146103f5578063395bf98214610415578063571ac8b0146104355780635e4ae81b1461045557806366eb37851461046a57600080fd5b806318160ddd1161023a57806318160ddd146103575780631df4ccfc1461036c57806323b872dd146103825780632782b5b7146103a25780632b112e49146103c4578063313ce567146103d957600080fd5b80630445b6671461028257806306fdde03146102ab57806308fd3d05146102e6578063095ea7b3146103175780631161ae391461033757600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b5061029860225481565b6040519081526020015b60405180910390f35b3480156102b757600080fd5b506040805180820190915260098152685368696c6120496e7560b81b60208201525b6040516102a29190611f02565b3480156102f257600080fd5b5060215461030790600160a01b900460ff1681565b60405190151581526020016102a2565b34801561032357600080fd5b50610307610332366004611f73565b61084e565b34801561034357600080fd5b50610307610352366004611f9d565b6108bb565b34801561036357600080fd5b50600554610298565b34801561037857600080fd5b5061029860135481565b34801561038e57600080fd5b5061030761039d366004611fbf565b6108cf565b3480156103ae57600080fd5b506103c26103bd366004612009565b610991565b005b3480156103d057600080fd5b506102986109d7565b3480156103e557600080fd5b50604051601281526020016102a2565b34801561040157600080fd5b506103c2610410366004612026565b610a29565b34801561042157600080fd5b506103c261043036600461208b565b610ab2565b34801561044157600080fd5b506103076104503660046120b7565b610aed565b34801561046157600080fd5b506103c2610afb565b34801561047657600080fd5b506103c2610b32565b34801561048b57600080fd5b5060215461030790600160a81b900460ff1681565b3480156104ac57600080fd5b506103c2610b66565b3480156104c157600080fd5b506102986104d03660046120b7565b6001600160a01b031660009081526008602052604090205490565b3480156104f757600080fd5b506103c2610bbe565b34801561050c57600080fd5b506103c261051b3660046120d2565b610c32565b34801561052c57600080fd5b5061029860075481565b34801561054257600080fd5b5061029860065481565b34801561055857600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102a2565b34801561058a57600080fd5b50600a546103079060ff1681565b3480156105a457600080fd5b506000546001600160a01b0316610566565b3480156105c257600080fd5b5060408051808201909152600481526314d2125360e21b60208201526102d9565b3480156105ef57600080fd5b506103c26105fe3660046120eb565b610c9b565b34801561060f57600080fd5b506103c261061e3660046120eb565b610cf0565b34801561062f57600080fd5b50602154610566906001600160a01b031681565b34801561064f57600080fd5b5061030761065e366004611f73565b610d58565b34801561066f57600080fd5b506103c261067e3660046120d2565b610d65565b34801561068f57600080fd5b50600054610566906001600160a01b031681565b3480156106af57600080fd5b506103c26106be366004612122565b610dce565b3480156106cf57600080fd5b506103c26106de366004612165565b610e94565b3480156106ef57600080fd5b506103c2610f33565b34801561070457600080fd5b506102986107133660046120d2565b610f72565b34801561072457600080fd5b506103c26107333660046120d2565b610fb9565b34801561074457600080fd5b506102986107533660046121eb565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561078a57600080fd5b506103c261079936600461221e565b61100d565b3480156107aa57600080fd5b506103076107b93660046120b7565b600b6020526000908152604090205460ff1681565b3480156107da57600080fd5b506103c26107e9366004611f9d565b611059565b3480156107fa57600080fd5b50610307610809366004611f73565b61108e565b34801561081a57600080fd5b506103c26108293660046120b7565b61118b565b34801561083a57600080fd5b50601f54610566906001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108a99086815260200190565b60405180910390a35060015b92915050565b6000826108c783610f72565b119392505050565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461097c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610957918490611336565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610987848484611370565b90505b9392505050565b6000546001600160a01b031633146109c45760405162461bcd60e51b81526004016109bb9061223c565b60405180910390fd5b600a805460ff1916911515919091179055565b6004546001600160a01b0316600090815260086020526040812054610a24906003546001600160a01b0316600090815260086020526040902054610a1e9060055490611738565b90611738565b905090565b6000546001600160a01b03163314610a535760405162461bcd60e51b81526004016109bb9061223c565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601c80548416918516919091179055601b80549092169216919091179055565b6000546001600160a01b03163314610adc5760405162461bcd60e51b81526004016109bb9061223c565b601591909155601691909155601755565b60006108b58260001961084e565b6000546001600160a01b03163314610b255760405162461bcd60e51b81526004016109bb9061223c565b6005546007819055600655565b6000546001600160a01b03163314610b5c5760405162461bcd60e51b81526004016109bb9061223c565b610b6461177a565b565b336000908152600d602052604090205460ff16610b8257600080fd5b601a546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610bbb573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610be85760405162461bcd60e51b81526004016109bb9061223c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c5c5760405162461bcd60e51b81526004016109bb9061223c565b6103e8600554610c6c9190612287565b6007541015610c7a57600080fd5b6103e881600554610c8b91906122a9565b610c959190612287565b60075550565b6000546001600160a01b03163314610cc55760405162461bcd60e51b81526004016109bb9061223c565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d1a5760405162461bcd60e51b81526004016109bb9061223c565b6001600160a01b039091166000908152600c60209081526040808320805494151560ff199586168117909155600d9092529091208054909216179055565b600061098a338484611370565b6000546001600160a01b03163314610d8f5760405162461bcd60e51b81526004016109bb9061223c565b6103e8600554610d9f9190612287565b6006541015610dad57600080fd5b6103e881600554610dbe91906122a9565b610dc89190612287565b60065550565b6000546001600160a01b03163314610df85760405162461bcd60e51b81526004016109bb9061223c565b600e8690556011859055600f84905560108390556012829055610e2982610e23858188818c8c611b61565b90611b61565b6013556014819055610e3c600282612287565b60135410610e8c5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203530250000000060448201526064016109bb565b505050505050565b6000546001600160a01b03163314610ebe5760405162461bcd60e51b81526004016109bb9061223c565b60005b82811015610f2d5781600b6000868685818110610ee057610ee06122c8565b9050602002016020810190610ef591906120b7565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610f26816122de565b9050610ec1565b50505050565b6000546001600160a01b03163314610f5d5760405162461bcd60e51b81526004016109bb9061223c565b6021805460ff60a01b1916600160a01b179055565b60006108b5610f7f6109d7565b6021546001600160a01b0316600090815260086020526040902054610fb390610fac906002905b90611275565b8590611275565b906112f4565b60195447906001600160a01b03166108fc6064610fd685856122a9565b610fe09190612287565b6040518115909202916000818181858888f19350505050158015611008573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146110375760405162461bcd60e51b81526004016109bb9061223c565b60218054921515600160a81b0260ff60a81b1990931692909217909155602255565b6000546001600160a01b031633146110835760405162461bcd60e51b81526004016109bb9061223c565b601d91909155601e55565b336000908152600d602052604081205460ff166110aa57600080fd5b8161111a576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156110f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111791906122f9565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611167573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098a9190612312565b6000546001600160a01b031633146111b55760405162461bcd60e51b81526004016109bb9061223c565b6001600160a01b03811661121a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109bb565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082611284575060006108b5565b600061129083856122a9565b90508261129d8583612287565b1461098a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109bb565b600061098a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bc0565b6000818484111561135a5760405162461bcd60e51b81526004016109bb9190611f02565b506000611367848661232f565b95945050505050565b60235460009060ff161561139057611389848484611bee565b905061098a565b6001600160a01b03841660009081526001602052604090205460ff161580156113d257506001600160a01b03831660009081526001602052604090205460ff16155b1561142757602154600160a01b900460ff166114275760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016109bb565b600a5460ff1615611489576001600160a01b0384166000908152600b602052604090205460ff16156114895760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b60448201526064016109bb565b6001600160a01b03841660009081526001602052604090205460ff161580156114bb57506001600160a01b0383163014155b80156114d557506003546001600160a01b03848116911614155b80156114ef57506021546001600160a01b03848116911614155b80156115095750601c546001600160a01b03848116911614155b801561152357506019546001600160a01b03848116911614155b801561154857506001600160a01b0383166000908152600d602052604090205460ff16155b156115e9576001600160a01b0383166000908152600860205260409020546007546115738483612346565b11156115e75760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016109bb565b505b6115f38483611cc2565b6115fb611d2f565b156116085761160861177a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461165a918490611336565b6001600160a01b038516600090815260086020908152604080832093909355600c90529081205460ff16806116a757506001600160a01b0384166000908152600c602052604090205460ff165b6116bb576116b6858486611d85565b6116bd565b825b6001600160a01b0385166000908152600860205260409020549091506116e39082611b61565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206123fe833981519152906117259085815260200190565b60405180910390a3506001949350505050565b600061098a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611336565b6023805460ff19166001179055601d54601e54600091611799916108bb565b6117a557600e546117a8565b60005b905060006117cc6002610fb3601354610fb38660225461127590919063ffffffff16565b905060006117e58260225461173890919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061181f5761181f6122c8565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611850576118506122c8565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b81524792919091169063791ac9479061189a90869060009087903090429060040161235e565b600060405180830381600087803b1580156118b457600080fd5b505af11580156118c8573d6000803e3d6000fd5b5050505060006118e1824761173890919063ffffffff16565b905060006118fc6118f38860026112f4565b60135490611738565b905060006119116002610fb38481878d611275565b9050600061192e83610fb3600f548761127590919063ffffffff16565b9050600061194b84610fb36011548861127590919063ffffffff16565b9050600061196885610fb36010548961127590919063ffffffff16565b6019546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146119ba576040519150601f19603f3d011682016040523d82523d6000602084013e6119bf565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611a0f576040519150601f19603f3d011682016040523d82523d6000602084013e611a14565b606091505b5050601b546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611a64576040519150601f19603f3d011682016040523d82523d6000602084013e611a69565b606091505b5060009250508b159050611b4957601f5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611ae7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b0c91906123cf565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b600080611b6e8385612346565b90508381101561098a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109bb565b60008183611be15760405162461bcd60e51b81526004016109bb9190611f02565b5060006113678486612287565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611c3f918490611336565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611c6e9083611b61565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206123fe83398151915290611cb09086815260200190565b60405180910390a35060019392505050565b60065481111580611ceb57506001600160a01b0382166000908152600d602052604090205460ff165b611d2b5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109bb565b5050565b6021546000906001600160a01b03163314801590611d50575060235460ff16155b8015611d655750602154600160a81b900460ff165b8015610a2457505060225430600090815260086020526040902054101590565b601754602154600091906001600160a01b0384811691161415611dab5750601554611dc6565b6021546001600160a01b0386811691161415611dc657506016545b6000611df36014546064611dda91906122a9565b610fb384610fa66013548a61127590919063ffffffff16565b90506000611e12601354610fb36012548561127590919063ffffffff16565b90506000611e208383611738565b30600090815260086020526040902054909150611e3d9082611b61565b3060009081526008602052604080822092909255601c546001600160a01b031681522054611e6b9083611b61565b601c546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206123fe833981519152910160405180910390a38115611eec57601c546040518381526001600160a01b03918216918a16906000805160206123fe8339815191529060200160405180910390a35b611ef68784611738565b98975050505050505050565b600060208083528351808285015260005b81811015611f2f57858101830151858201604001528201611f13565b81811115611f41576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114611f6e57600080fd5b919050565b60008060408385031215611f8657600080fd5b611f8f83611f57565b946020939093013593505050565b60008060408385031215611fb057600080fd5b50508035926020909101359150565b600080600060608486031215611fd457600080fd5b611fdd84611f57565b9250611feb60208501611f57565b9150604084013590509250925092565b8015158114610bbb57600080fd5b60006020828403121561201b57600080fd5b813561098a81611ffb565b600080600080600060a0868803121561203e57600080fd5b61204786611f57565b945061205560208701611f57565b935061206360408701611f57565b925061207160608701611f57565b915061207f60808701611f57565b90509295509295909350565b6000806000606084860312156120a057600080fd5b505081359360208301359350604090920135919050565b6000602082840312156120c957600080fd5b61098a82611f57565b6000602082840312156120e457600080fd5b5035919050565b600080604083850312156120fe57600080fd5b61210783611f57565b9150602083013561211781611ffb565b809150509250929050565b60008060008060008060c0878903121561213b57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060006040848603121561217a57600080fd5b833567ffffffffffffffff8082111561219257600080fd5b818601915086601f8301126121a657600080fd5b8135818111156121b557600080fd5b8760208260051b85010111156121ca57600080fd5b602092830195509350508401356121e081611ffb565b809150509250925092565b600080604083850312156121fe57600080fd5b61220783611f57565b915061221560208401611f57565b90509250929050565b6000806040838503121561223157600080fd5b8235611f8f81611ffb565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000826122a457634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156122c3576122c3612271565b500290565b634e487b7160e01b600052603260045260246000fd5b60006000198214156122f2576122f2612271565b5060010190565b60006020828403121561230b57600080fd5b5051919050565b60006020828403121561232457600080fd5b815161098a81611ffb565b60008282101561234157612341612271565b500390565b6000821982111561235957612359612271565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123ae5784516001600160a01b031683529383019391830191600101612389565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156123e457600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d44ab33409c1a39e825ee88a13a7b0886b46b5db5387f081325435555ab5c7c464736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106102765760003560e01c80637d1db4a51161014f578063c35e3050116100c1578063df20fd491161007a578063df20fd491461077e578063ed6a59651461079e578063ed716b2a146107ce578063f0a9e365146107ee578063f2fde38b1461080e578063f887ea401461082e57600080fd5b8063c35e3050146106a3578063c4e7e819146106c3578063c9567bf9146106e3578063d51ed1c8146106f8578063d78e139d14610718578063dd62ed3e1461073857600080fd5b80639acb773e116101135780639acb773e146105e3578063a55200d214610603578063a8aa1b3114610623578063a9059cbb14610643578063ab5a188714610663578063b2bdfa7b1461068357600080fd5b80637d1db4a514610536578063893d20e81461054c578063896648c11461057e5780638da5cb5b1461059857806395d89b41146105b657600080fd5b80633554dd3c116101e85780636ddd1713116101ac5780636ddd17131461047f5780636fc3eaec146104a057806370a08231146104b5578063715018a6146104eb57806372a2f3521461050057806378109e541461052057600080fd5b80633554dd3c146103f5578063395bf98214610415578063571ac8b0146104355780635e4ae81b1461045557806366eb37851461046a57600080fd5b806318160ddd1161023a57806318160ddd146103575780631df4ccfc1461036c57806323b872dd146103825780632782b5b7146103a25780632b112e49146103c4578063313ce567146103d957600080fd5b80630445b6671461028257806306fdde03146102ab57806308fd3d05146102e6578063095ea7b3146103175780631161ae391461033757600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b5061029860225481565b6040519081526020015b60405180910390f35b3480156102b757600080fd5b506040805180820190915260098152685368696c6120496e7560b81b60208201525b6040516102a29190611f02565b3480156102f257600080fd5b5060215461030790600160a01b900460ff1681565b60405190151581526020016102a2565b34801561032357600080fd5b50610307610332366004611f73565b61084e565b34801561034357600080fd5b50610307610352366004611f9d565b6108bb565b34801561036357600080fd5b50600554610298565b34801561037857600080fd5b5061029860135481565b34801561038e57600080fd5b5061030761039d366004611fbf565b6108cf565b3480156103ae57600080fd5b506103c26103bd366004612009565b610991565b005b3480156103d057600080fd5b506102986109d7565b3480156103e557600080fd5b50604051601281526020016102a2565b34801561040157600080fd5b506103c2610410366004612026565b610a29565b34801561042157600080fd5b506103c261043036600461208b565b610ab2565b34801561044157600080fd5b506103076104503660046120b7565b610aed565b34801561046157600080fd5b506103c2610afb565b34801561047657600080fd5b506103c2610b32565b34801561048b57600080fd5b5060215461030790600160a81b900460ff1681565b3480156104ac57600080fd5b506103c2610b66565b3480156104c157600080fd5b506102986104d03660046120b7565b6001600160a01b031660009081526008602052604090205490565b3480156104f757600080fd5b506103c2610bbe565b34801561050c57600080fd5b506103c261051b3660046120d2565b610c32565b34801561052c57600080fd5b5061029860075481565b34801561054257600080fd5b5061029860065481565b34801561055857600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102a2565b34801561058a57600080fd5b50600a546103079060ff1681565b3480156105a457600080fd5b506000546001600160a01b0316610566565b3480156105c257600080fd5b5060408051808201909152600481526314d2125360e21b60208201526102d9565b3480156105ef57600080fd5b506103c26105fe3660046120eb565b610c9b565b34801561060f57600080fd5b506103c261061e3660046120eb565b610cf0565b34801561062f57600080fd5b50602154610566906001600160a01b031681565b34801561064f57600080fd5b5061030761065e366004611f73565b610d58565b34801561066f57600080fd5b506103c261067e3660046120d2565b610d65565b34801561068f57600080fd5b50600054610566906001600160a01b031681565b3480156106af57600080fd5b506103c26106be366004612122565b610dce565b3480156106cf57600080fd5b506103c26106de366004612165565b610e94565b3480156106ef57600080fd5b506103c2610f33565b34801561070457600080fd5b506102986107133660046120d2565b610f72565b34801561072457600080fd5b506103c26107333660046120d2565b610fb9565b34801561074457600080fd5b506102986107533660046121eb565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561078a57600080fd5b506103c261079936600461221e565b61100d565b3480156107aa57600080fd5b506103076107b93660046120b7565b600b6020526000908152604090205460ff1681565b3480156107da57600080fd5b506103c26107e9366004611f9d565b611059565b3480156107fa57600080fd5b50610307610809366004611f73565b61108e565b34801561081a57600080fd5b506103c26108293660046120b7565b61118b565b34801561083a57600080fd5b50601f54610566906001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108a99086815260200190565b60405180910390a35060015b92915050565b6000826108c783610f72565b119392505050565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461097c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610957918490611336565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610987848484611370565b90505b9392505050565b6000546001600160a01b031633146109c45760405162461bcd60e51b81526004016109bb9061223c565b60405180910390fd5b600a805460ff1916911515919091179055565b6004546001600160a01b0316600090815260086020526040812054610a24906003546001600160a01b0316600090815260086020526040902054610a1e9060055490611738565b90611738565b905090565b6000546001600160a01b03163314610a535760405162461bcd60e51b81526004016109bb9061223c565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601c80548416918516919091179055601b80549092169216919091179055565b6000546001600160a01b03163314610adc5760405162461bcd60e51b81526004016109bb9061223c565b601591909155601691909155601755565b60006108b58260001961084e565b6000546001600160a01b03163314610b255760405162461bcd60e51b81526004016109bb9061223c565b6005546007819055600655565b6000546001600160a01b03163314610b5c5760405162461bcd60e51b81526004016109bb9061223c565b610b6461177a565b565b336000908152600d602052604090205460ff16610b8257600080fd5b601a546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610bbb573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610be85760405162461bcd60e51b81526004016109bb9061223c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c5c5760405162461bcd60e51b81526004016109bb9061223c565b6103e8600554610c6c9190612287565b6007541015610c7a57600080fd5b6103e881600554610c8b91906122a9565b610c959190612287565b60075550565b6000546001600160a01b03163314610cc55760405162461bcd60e51b81526004016109bb9061223c565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d1a5760405162461bcd60e51b81526004016109bb9061223c565b6001600160a01b039091166000908152600c60209081526040808320805494151560ff199586168117909155600d9092529091208054909216179055565b600061098a338484611370565b6000546001600160a01b03163314610d8f5760405162461bcd60e51b81526004016109bb9061223c565b6103e8600554610d9f9190612287565b6006541015610dad57600080fd5b6103e881600554610dbe91906122a9565b610dc89190612287565b60065550565b6000546001600160a01b03163314610df85760405162461bcd60e51b81526004016109bb9061223c565b600e8690556011859055600f84905560108390556012829055610e2982610e23858188818c8c611b61565b90611b61565b6013556014819055610e3c600282612287565b60135410610e8c5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203530250000000060448201526064016109bb565b505050505050565b6000546001600160a01b03163314610ebe5760405162461bcd60e51b81526004016109bb9061223c565b60005b82811015610f2d5781600b6000868685818110610ee057610ee06122c8565b9050602002016020810190610ef591906120b7565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610f26816122de565b9050610ec1565b50505050565b6000546001600160a01b03163314610f5d5760405162461bcd60e51b81526004016109bb9061223c565b6021805460ff60a01b1916600160a01b179055565b60006108b5610f7f6109d7565b6021546001600160a01b0316600090815260086020526040902054610fb390610fac906002905b90611275565b8590611275565b906112f4565b60195447906001600160a01b03166108fc6064610fd685856122a9565b610fe09190612287565b6040518115909202916000818181858888f19350505050158015611008573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146110375760405162461bcd60e51b81526004016109bb9061223c565b60218054921515600160a81b0260ff60a81b1990931692909217909155602255565b6000546001600160a01b031633146110835760405162461bcd60e51b81526004016109bb9061223c565b601d91909155601e55565b336000908152600d602052604081205460ff166110aa57600080fd5b8161111a576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156110f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111791906122f9565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611167573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098a9190612312565b6000546001600160a01b031633146111b55760405162461bcd60e51b81526004016109bb9061223c565b6001600160a01b03811661121a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109bb565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082611284575060006108b5565b600061129083856122a9565b90508261129d8583612287565b1461098a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109bb565b600061098a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bc0565b6000818484111561135a5760405162461bcd60e51b81526004016109bb9190611f02565b506000611367848661232f565b95945050505050565b60235460009060ff161561139057611389848484611bee565b905061098a565b6001600160a01b03841660009081526001602052604090205460ff161580156113d257506001600160a01b03831660009081526001602052604090205460ff16155b1561142757602154600160a01b900460ff166114275760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016109bb565b600a5460ff1615611489576001600160a01b0384166000908152600b602052604090205460ff16156114895760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b60448201526064016109bb565b6001600160a01b03841660009081526001602052604090205460ff161580156114bb57506001600160a01b0383163014155b80156114d557506003546001600160a01b03848116911614155b80156114ef57506021546001600160a01b03848116911614155b80156115095750601c546001600160a01b03848116911614155b801561152357506019546001600160a01b03848116911614155b801561154857506001600160a01b0383166000908152600d602052604090205460ff16155b156115e9576001600160a01b0383166000908152600860205260409020546007546115738483612346565b11156115e75760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016109bb565b505b6115f38483611cc2565b6115fb611d2f565b156116085761160861177a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461165a918490611336565b6001600160a01b038516600090815260086020908152604080832093909355600c90529081205460ff16806116a757506001600160a01b0384166000908152600c602052604090205460ff165b6116bb576116b6858486611d85565b6116bd565b825b6001600160a01b0385166000908152600860205260409020549091506116e39082611b61565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206123fe833981519152906117259085815260200190565b60405180910390a3506001949350505050565b600061098a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611336565b6023805460ff19166001179055601d54601e54600091611799916108bb565b6117a557600e546117a8565b60005b905060006117cc6002610fb3601354610fb38660225461127590919063ffffffff16565b905060006117e58260225461173890919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061181f5761181f6122c8565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611850576118506122c8565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b81524792919091169063791ac9479061189a90869060009087903090429060040161235e565b600060405180830381600087803b1580156118b457600080fd5b505af11580156118c8573d6000803e3d6000fd5b5050505060006118e1824761173890919063ffffffff16565b905060006118fc6118f38860026112f4565b60135490611738565b905060006119116002610fb38481878d611275565b9050600061192e83610fb3600f548761127590919063ffffffff16565b9050600061194b84610fb36011548861127590919063ffffffff16565b9050600061196885610fb36010548961127590919063ffffffff16565b6019546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146119ba576040519150601f19603f3d011682016040523d82523d6000602084013e6119bf565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611a0f576040519150601f19603f3d011682016040523d82523d6000602084013e611a14565b606091505b5050601b546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611a64576040519150601f19603f3d011682016040523d82523d6000602084013e611a69565b606091505b5060009250508b159050611b4957601f5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611ae7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b0c91906123cf565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b600080611b6e8385612346565b90508381101561098a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109bb565b60008183611be15760405162461bcd60e51b81526004016109bb9190611f02565b5060006113678486612287565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611c3f918490611336565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611c6e9083611b61565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206123fe83398151915290611cb09086815260200190565b60405180910390a35060019392505050565b60065481111580611ceb57506001600160a01b0382166000908152600d602052604090205460ff165b611d2b5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109bb565b5050565b6021546000906001600160a01b03163314801590611d50575060235460ff16155b8015611d655750602154600160a81b900460ff165b8015610a2457505060225430600090815260086020526040902054101590565b601754602154600091906001600160a01b0384811691161415611dab5750601554611dc6565b6021546001600160a01b0386811691161415611dc657506016545b6000611df36014546064611dda91906122a9565b610fb384610fa66013548a61127590919063ffffffff16565b90506000611e12601354610fb36012548561127590919063ffffffff16565b90506000611e208383611738565b30600090815260086020526040902054909150611e3d9082611b61565b3060009081526008602052604080822092909255601c546001600160a01b031681522054611e6b9083611b61565b601c546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206123fe833981519152910160405180910390a38115611eec57601c546040518381526001600160a01b03918216918a16906000805160206123fe8339815191529060200160405180910390a35b611ef68784611738565b98975050505050505050565b600060208083528351808285015260005b81811015611f2f57858101830151858201604001528201611f13565b81811115611f41576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114611f6e57600080fd5b919050565b60008060408385031215611f8657600080fd5b611f8f83611f57565b946020939093013593505050565b60008060408385031215611fb057600080fd5b50508035926020909101359150565b600080600060608486031215611fd457600080fd5b611fdd84611f57565b9250611feb60208501611f57565b9150604084013590509250925092565b8015158114610bbb57600080fd5b60006020828403121561201b57600080fd5b813561098a81611ffb565b600080600080600060a0868803121561203e57600080fd5b61204786611f57565b945061205560208701611f57565b935061206360408701611f57565b925061207160608701611f57565b915061207f60808701611f57565b90509295509295909350565b6000806000606084860312156120a057600080fd5b505081359360208301359350604090920135919050565b6000602082840312156120c957600080fd5b61098a82611f57565b6000602082840312156120e457600080fd5b5035919050565b600080604083850312156120fe57600080fd5b61210783611f57565b9150602083013561211781611ffb565b809150509250929050565b60008060008060008060c0878903121561213b57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060006040848603121561217a57600080fd5b833567ffffffffffffffff8082111561219257600080fd5b818601915086601f8301126121a657600080fd5b8135818111156121b557600080fd5b8760208260051b85010111156121ca57600080fd5b602092830195509350508401356121e081611ffb565b809150509250925092565b600080604083850312156121fe57600080fd5b61220783611f57565b915061221560208401611f57565b90509250929050565b6000806040838503121561223157600080fd5b8235611f8f81611ffb565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000826122a457634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156122c3576122c3612271565b500290565b634e487b7160e01b600052603260045260246000fd5b60006000198214156122f2576122f2612271565b5060010190565b60006020828403121561230b57600080fd5b5051919050565b60006020828403121561232457600080fd5b815161098a81611ffb565b60008282101561234157612341612271565b500390565b6000821982111561235957612359612271565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123ae5784516001600160a01b031683529383019391830191600101612389565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156123e457600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d44ab33409c1a39e825ee88a13a7b0886b46b5db5387f081325435555ab5c7c464736f6c634300080b0033

Deployed Bytecode Sourcemap

5199:13944:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6988:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6988:55:0;;;;;;;;8484:80;;;;;;;;;;-1:-1:-1;8556:5:0;;;;;;;;;;;;-1:-1:-1;;;8556:5:0;;;;8484:80;;;;;;;:::i;6907:31::-;;;;;;;;;;-1:-1:-1;6907:31:0;;;;-1:-1:-1;;;6907:31:0;;;;;;;;;963:14:1;;956:22;938:41;;926:2;911:18;6907:31:0;798:187:1;8906:216:0;;;;;;;;;;-1:-1:-1;8906:216:0;;;;;:::i;:::-;;:::i;18919:150::-;;;;;;;;;;-1:-1:-1;18919:150:0;;;;;:::i;:::-;;:::i;8214:88::-;;;;;;;;;;-1:-1:-1;8287:12:0;;8214:88;;6261:95;;;;;;;;;;;;;;;;9424:370;;;;;;;;;;-1:-1:-1;9424:370:0;;;;;:::i;:::-;;:::i;16569:96::-;;;;;;;;;;-1:-1:-1;16569:96:0;;;;;:::i;:::-;;:::i;:::-;;18594:142;;;;;;;;;;;;;:::i;8308:80::-;;;;;;;;;;-1:-1:-1;8308:80:0;;5540:2;2524:36:1;;2512:2;2497:18;8308:80:0;2382:184:1;17784:449:0;;;;;;;;;;-1:-1:-1;17784:449:0;;;;;:::i;:::-;;:::i;14372:205::-;;;;;;;;;;-1:-1:-1;14372:205:0;;;;;:::i;:::-;;:::i;9130:122::-;;;;;;;;;;-1:-1:-1;9130:122:0;;;;;:::i;:::-;;:::i;13750:133::-;;;;;;;;;;;;;:::i;13659:83::-;;;;;;;;;;;;;:::i;6951:30::-;;;;;;;;;;-1:-1:-1;6951:30:0;;;;-1:-1:-1;;;6951:30:0;;;;;;13891:155;;;;;;;;;;;;;:::i;8654:105::-;;;;;;;;;;-1:-1:-1;8654:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8738:18:0;8720:7;8738:18;;;:9;:18;;;;;;;8654:105;3256:148;;;;;;;;;;;;;:::i;9806:216::-;;;;;;;;;;-1:-1:-1;9806:216:0;;;;;:::i;:::-;;:::i;5675:61::-;;;;;;;;;;;;;;;;5610:58;;;;;;;;;;;;;;;;8570:78;;;;;;;;;;-1:-1:-1;8622:7:0;3107:6;-1:-1:-1;;;;;3107:6:0;8570:78;;;-1:-1:-1;;;;;3921:32:1;;;3903:51;;3891:2;3876:18;8570:78:0;3757:203:1;5860:32:0;;;;;;;;;;-1:-1:-1;5860:32:0;;;;;;;;3042:79;;;;;;;;;;-1:-1:-1;3080:7:0;3107:6;-1:-1:-1;;;;;3107:6:0;3042:79;;8394:84;;;;;;;;;;-1:-1:-1;8468:7:0;;;;;;;;;;;;-1:-1:-1;;;8468:7:0;;;;8394:84;;17070:120;;;;;;;;;;-1:-1:-1;17070:120:0;;;;;:::i;:::-;;:::i;16897:165::-;;;;;;;;;;-1:-1:-1;16897:165:0;;;;;:::i;:::-;;:::i;6875:19::-;;;;;;;;;;-1:-1:-1;6875:19:0;;;;-1:-1:-1;;;;;6875:19:0;;;9260:156;;;;;;;;;;-1:-1:-1;9260:156:0;;;;;:::i;:::-;;:::i;10030:196::-;;;;;;;;;;-1:-1:-1;10030:196:0;;;;;:::i;:::-;;:::i;2662:21::-;;;;;;;;;;-1:-1:-1;2662:21:0;;;;-1:-1:-1;;;;;2662:21:0;;;17198:578;;;;;;;;;;-1:-1:-1;17198:578:0;;;;;:::i;:::-;;:::i;16678:207::-;;;;;;;;;;-1:-1:-1;16678:207:0;;;;;:::i;:::-;;:::i;14585:77::-;;;;;;;;;;;;;:::i;18744:167::-;;;;;;;;;;-1:-1:-1;18744:167:0;;;;;:::i;:::-;;:::i;13447:203::-;;;;;;;;;;-1:-1:-1;13447:203:0;;;;;:::i;:::-;;:::i;8765:133::-;;;;;;;;;;-1:-1:-1;8765:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8867:19:0;;;8849:7;8867:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8765:133;18241:155;;;;;;;;;;-1:-1:-1;18241:155:0;;;;;:::i;:::-;;:::i;5899:46::-;;;;;;;;;;-1:-1:-1;5899:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18404:178;;;;;;;;;;-1:-1:-1;18404:178:0;;;;;:::i;:::-;;:::i;14054:310::-;;;;;;;;;;-1:-1:-1;14054:310:0;;;;;:::i;:::-;;:::i;3412:244::-;;;;;;;;;;-1:-1:-1;3412:244:0;;;;;:::i;:::-;;:::i;6805:24::-;;;;;;;;;;-1:-1:-1;6805:24:0;;;;-1:-1:-1;;;;;6805:24:0;;;8906:216;9010:10;8981:4;8998:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8998:32:0;;;;;;;;;;:41;;;9055:37;8981:4;;8998:32;;9055:37;;;;9033:6;160:25:1;;148:2;133:18;;14:177;9055:37:0;;;;;;;;-1:-1:-1;9110:4:0;8906:216;;;;;:::o;18919:150::-;18999:4;19055:6;19023:29;19043:8;19023:19;:29::i;:::-;:38;;18919:150;-1:-1:-1;;;18919:150:0:o;9424:370::-;-1:-1:-1;;;;;9544:19:0;;9524:4;9544:19;;;:11;:19;;;;;;;;9564:10;9544:31;;;;;;;;-1:-1:-1;;9544:52:0;9541:186;;9646:69;;;;;;;;;;;-1:-1:-1;;;9646:69:0;;;;;;;;-1:-1:-1;;;;;9646:19:0;;-1:-1:-1;9646:19:0;;;:11;:19;;;;;9666:10;9646:31;;;;;;;;;;:69;;9682:6;;9646:35;:69::i;:::-;-1:-1:-1;;;;;9612:19:0;;;;;;:11;:19;;;;;;;;9632:10;9612:31;;;;;;;:103;9541:186;9746:40;9760:6;9768:9;9779:6;9746:13;:40::i;:::-;9739:47;;9424:370;;;;;;:::o;16569:96::-;3169:6;;-1:-1:-1;;;;;3169:6:0;2479:10;3169:22;3161:67;;;;-1:-1:-1;;;3161:67:0;;;;;;;:::i;:::-;;;;;;;;;16634:13:::1;:23:::0;;-1:-1:-1;;16634:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16569:96::o;18594:142::-;18722:4;;-1:-1:-1;;;;;18722:4:0;18647:7;8738:18;;;:9;:18;;;;;;18674:54;;18701:4;;-1:-1:-1;;;;;18701:4:0;8720:7;8738:18;;;:9;:18;;;;;;18674:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18667:61;;18594:142;:::o;17784:449::-;3169:6;;-1:-1:-1;;;;;3169:6:0;2479:10;3169:22;3161:67;;;;-1:-1:-1;;;3161:67:0;;;;;;;:::i;:::-;17981:21:::1;:46:::0;;-1:-1:-1;;;;;;17981:46:0;;::::1;-1:-1:-1::0;;;;;17981:46:0;;::::1;;::::0;;;18038:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18093:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18136:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18181:20:::1;:44:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17784:449::o;14372:205::-;3169:6;;-1:-1:-1;;;;;3169:6:0;2479:10;3169:22;3161:67;;;;-1:-1:-1;;;3161:67:0;;;;;;;:::i;:::-;14471:11:::1;:19:::0;;;;14501:10:::1;:17:::0;;;;14529:15:::1;:24:::0;14372:205::o;9130:122::-;9185:4;9209:35;9217:7;-1:-1:-1;;9209:7:0;:35::i;13750:133::-;3169:6;;-1:-1:-1;;;;;3169:6:0;2479:10;3169:22;3161:67;;;;-1:-1:-1;;;3161:67:0;;;;;;;:::i;:::-;13823:12:::1;::::0;13805:15:::1;:30:::0;;;13846:12:::1;:27:::0;13750:133::o;13659:83::-;3169:6;;-1:-1:-1;;;;;3169:6:0;2479:10;3169:22;3161:67;;;;-1:-1:-1;;;3161:67:0;;;;;;;:::i;:::-;13718:10:::1;:8;:10::i;:::-;13659:83::o:0;13891:155::-;13958:10;13942:27;;;;:15;:27;;;;;;;;13934:36;;;;;;13989:14;;13981:55;;-1:-1:-1;;;;;13989:14:0;;;;14014:21;13981:55;;;;;13989:14;13981:55;13989:14;13981:55;14014:21;13989:14;13981:55;;;;;;;;;;;;;;;;;;;;;13891:155::o;3256:148::-;3169:6;;-1:-1:-1;;;;;3169:6:0;2479:10;3169:22;3161:67;;;;-1:-1:-1;;;3161:67:0;;;;;;;:::i;:::-;3363:1:::1;3347:6:::0;;3326:40:::1;::::0;-1:-1:-1;;;;;3347:6:0;;::::1;::::0;3326:40:::1;::::0;3363:1;;3326:40:::1;3394:1;3377:19:::0;;-1:-1:-1;;;;;;3377:19:0::1;::::0;;3256:148::o;9806:216::-;3169:6;;-1:-1:-1;;;;;3169:6:0;2479:10;3169:22;3161:67;;;;-1:-1:-1;;;3161:67:0;;;;;;;:::i;:::-;9922:4:::1;9907:12;;:19;;;;:::i;:::-;9888:15;;:38;;9880:47;;;::::0;::::1;;9992:4;9973:14;9958:12;;:29;;;;:::i;:::-;9957:39;;;;:::i;:::-;9939:15;:57:::0;-1:-1:-1;9806:216:0:o;17070:120::-;3169:6;;-1:-1:-1;;;;;3169:6:0;2479:10;3169:22;3161:67;;;;-1:-1:-1;;;3161:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17150:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17150:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17070:120::o;16897:165::-;3169:6;;-1:-1:-1;;;;;3169:6:0;2479:10;3169:22;3161:67;;;;-1:-1:-1;;;3161:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16983:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;16983:28:0;;::::1;::::0;::::1;::::0;;;17022:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;16897:165::o;9260:156::-;9340:4;9364:44;9378:10;9390:9;9401:6;9364:13;:44::i;10030:196::-;3169:6;;-1:-1:-1;;;;;3169:6:0;2479:10;3169:22;3161:67;;;;-1:-1:-1;;;3161:67:0;;;;;;;:::i;:::-;10149:4:::1;10134:12;;:19;;;;:::i;:::-;10118:12;;:35;;10110:44;;;::::0;::::1;;10214:4;10197:12;10182;;:27;;;;:::i;:::-;10181:37;;;;:::i;:::-;10166:12;:52:::0;-1:-1:-1;10030:196:0:o;17198:578::-;3169:6;;-1:-1:-1;;;;;3169:6:0;2479:10;3169:22;3161:67;;;;-1:-1:-1;;;3161:67:0;;;;;;;:::i;:::-;17383:12:::1;:28:::0;;;17422:12:::1;:28:::0;;;17461:12:::1;:28:::0;;;17500:6:::1;:16:::0;;;17527:7:::1;:18:::0;;;17567:78:::1;17537:8:::0;17567:64:::1;17509:7:::0;17567:64;17476:13;17567:64;17398:13;17437;17567:17:::1;:32::i;:::-;:36:::0;::::1;:51::i;:78::-;17556:8;:89:::0;17656:14:::1;:32:::0;;;17718:16:::1;17733:1;17673:15:::0;17718:16:::1;:::i;:::-;17707:8;;:27;17699:68;;;::::0;-1:-1:-1;;;17699:68:0;;7463:2:1;17699:68:0::1;::::0;::::1;7445:21:1::0;7502:2;7482:18;;;7475:30;7541;7521:18;;;7514:58;7589:18;;17699:68:0::1;7261:352:1::0;17699:68:0::1;17198:578:::0;;;;;;:::o;16678:207::-;3169:6;;-1:-1:-1;;;;;3169:6:0;2479:10;3169:22;3161:67;;;;-1:-1:-1;;;3161:67:0;;;;;;;:::i;:::-;16777:9:::1;16772:106;16788:20:::0;;::::1;16772:106;;;16860:6;16830:13;:27;16844:9;;16854:1;16844:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16830:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16830:27:0;:36;;-1:-1:-1;;16830:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16810:3:::1;::::0;::::1;:::i;:::-;;;16772:106;;;;16678:207:::0;;;:::o;14585:77::-;3169:6;;-1:-1:-1;;;;;3169:6:0;2479:10;3169:22;3161:67;;;;-1:-1:-1;;;3161:67:0;;;;;;;:::i;:::-;14636:11:::1;:18:::0;;-1:-1:-1;;;;14636:18:0::1;-1:-1:-1::0;;;14636:18:0::1;::::0;;14585:77::o;18744:167::-;18812:7;18839:64;18880:22;:20;:22::i;:::-;18862:4;;-1:-1:-1;;;;;18862:4:0;8720:7;8738:18;;;:9;:18;;;;;;18839:36;;18852:22;;18872:1;;18852:15;:19;;:22::i;:::-;18839:8;;:12;:36::i;:::-;:40;;:64::i;13447:203::-;13576:20;;13536:21;;-1:-1:-1;;;;;13576:20:0;13568:74;13638:3;13607:28;13619:16;13536:21;13607:28;:::i;:::-;:34;;;;:::i;:::-;13568:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13505:145;13447:203;:::o;18241:155::-;3169:6;;-1:-1:-1;;;;;3169:6:0;2479:10;3169:22;3161:67;;;;-1:-1:-1;;;3161:67:0;;;;;;;:::i;:::-;18332:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18332:22:0::1;-1:-1:-1::0;;;;18332:22:0;;::::1;::::0;;;::::1;::::0;;;18365:13:::1;:23:::0;18241:155::o;18404:178::-;3169:6;;-1:-1:-1;;;;;3169:6:0;2479:10;3169:22;3161:67;;;;-1:-1:-1;;;3161:67:0;;;;;;;:::i;:::-;18497:15:::1;:25:::0;;;;18533:26:::1;:41:::0;18404:178::o;14054:310::-;14176:10;14135:4;14160:27;;;:15;:27;;;;;;;;14152:36;;;;;;14199:11;14196:95;;14235:44;;-1:-1:-1;;;14235:44:0;;14273:4;14235:44;;;3903:51:1;-1:-1:-1;;;;;14235:29:0;;;;;3876:18:1;;14235:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14226:53;;14196:95;14308:48;;-1:-1:-1;;;14308:48:0;;14337:10;14308:48;;;8253:51:1;8320:18;;;8313:34;;;-1:-1:-1;;;;;14308:28:0;;;;;8226:18:1;;14308:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3412:244::-;3169:6;;-1:-1:-1;;;;;3169:6:0;2479:10;3169:22;3161:67;;;;-1:-1:-1;;;3161:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3501:22:0;::::1;3493:73;;;::::0;-1:-1:-1;;;3493:73:0;;8810:2:1;3493:73:0::1;::::0;::::1;8792:21:1::0;8849:2;8829:18;;;8822:30;8888:34;8868:18;;;8861:62;-1:-1:-1;;;8939:18:1;;;8932:36;8985:19;;3493:73:0::1;8608:402:1::0;3493:73:0::1;3603:6;::::0;;3582:38:::1;::::0;-1:-1:-1;;;;;3582:38:0;;::::1;::::0;3603:6;::::1;::::0;3582:38:::1;::::0;::::1;3631:6;:17:::0;;-1:-1:-1;;;;;;3631:17:0::1;-1:-1:-1::0;;;;;3631:17:0;;;::::1;::::0;;;::::1;::::0;;3412:244::o;841:250::-;899:7;923:6;919:47;;-1:-1:-1;953:1:0;946:8;;919:47;978:9;990:5;994:1;990;:5;:::i;:::-;978:17;-1:-1:-1;1023:1:0;1014:5;1018:1;978:17;1014:5;:::i;:::-;:10;1006:56;;;;-1:-1:-1;;;1006:56:0;;9217:2:1;1006:56:0;;;9199:21:1;9256:2;9236:18;;;9229:30;9295:34;9275:18;;;9268:62;-1:-1:-1;;;9346:18:1;;;9339:31;9387:19;;1006:56:0;9015:397:1;1097:132:0;1155:7;1182:39;1186:1;1189;1182:39;;;;;;;;;;;;;;;;;:3;:39::i;643:192::-;729:7;765:12;757:6;;;;749:29;;;;-1:-1:-1;;;749:29:0;;;;;;;;:::i;:::-;-1:-1:-1;789:9:0;801:5;805:1;801;:5;:::i;:::-;789:17;643:192;-1:-1:-1;;;;;643:192:0:o;10238:1429::-;10350:6;;10330:4;;10350:6;;10347:63;;;10366:41;10381:6;10389:9;10400:6;10366:14;:41::i;:::-;10359:48;;;;10347:63;-1:-1:-1;;;;;10426:22:0;;;;;;:14;:22;;;;;;;;10425:23;:53;;;;-1:-1:-1;;;;;;10453:25:0;;;;;;:14;:25;;;;;;;;10452:26;10425:53;10422:140;;;10502:11;;-1:-1:-1;;;10502:11:0;;;;10494:43;;;;-1:-1:-1;;;10494:43:0;;9749:2:1;10494:43:0;;;9731:21:1;9788:2;9768:18;;;9761:30;-1:-1:-1;;;9807:18:1;;;9800:50;9867:18;;10494:43:0;9547:344:1;10494:43:0;10609:13;;;;10606:93;;;-1:-1:-1;;;;;10647:21:0;;;;;;:13;:21;;;;;;;;10646:22;10638:45;;;;-1:-1:-1;;;10638:45:0;;10098:2:1;10638:45:0;;;10080:21:1;10137:2;10117:18;;;10110:30;-1:-1:-1;;;10156:18:1;;;10149:41;10207:18;;10638:45:0;9896:335:1;10638:45:0;-1:-1:-1;;;;;10716:22:0;;;;;;:14;:22;;;;;;;;10715:23;:53;;;;-1:-1:-1;;;;;;10742:26:0;;10763:4;10742:26;;10715:53;:84;;;;-1:-1:-1;10794:4:0;;-1:-1:-1;;;;;10773:26:0;;;10794:4;;10773:26;;10715:84;:105;;;;-1:-1:-1;10816:4:0;;-1:-1:-1;;;;;10803:17:0;;;10816:4;;10803:17;;10715:105;:137;;;;-1:-1:-1;10837:15:0;;-1:-1:-1;;;;;10824:28:0;;;10837:15;;10824:28;;10715:137;:174;;;;-1:-1:-1;10869:20:0;;-1:-1:-1;;;;;10856:33:0;;;10869:20;;10856:33;;10715:174;:205;;;;-1:-1:-1;;;;;;10894:26:0;;;;;;:15;:26;;;;;;;;10893:27;10715:205;10711:397;;;-1:-1:-1;;;;;8738:18:0;;10936;8738;;;:9;:18;;;;;;11025:15;;11001:19;11014:6;8738:18;11001:19;:::i;:::-;11000:40;;10992:114;;;;-1:-1:-1;;;10992:114:0;;10571:2:1;10992:114:0;;;10553:21:1;10610:2;10590:18;;;10583:30;10649:34;10629:18;;;10622:62;10720:32;10700:18;;;10693:60;10770:19;;10992:114:0;10369:426:1;10992:114:0;10921:187;10711:397;11161:28;11174:6;11182;11161:12;:28::i;:::-;11206:16;:14;:16::i;:::-;11203:35;;;11225:10;:8;:10::i;:::-;11318:53;;;;;;;;;;;-1:-1:-1;;;11318:53:0;;;;;;;;-1:-1:-1;;;;;11318:17:0;;-1:-1:-1;11318:17:0;;;:9;:17;;;;;;;;:53;;11340:6;;11318:21;:53::i;:::-;-1:-1:-1;;;;;11298:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11410:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11433:22:0;;;;;;:11;:22;;;;;;;;11410:45;11409:93;;11468:34;11476:6;11484;11492:9;11468:7;:34::i;:::-;11409:93;;;11459:6;11409:93;-1:-1:-1;;;;;11536:20:0;;;;;;:9;:20;;;;;;11384:118;;-1:-1:-1;11536:40:0;;11384:118;11536:24;:40::i;:::-;-1:-1:-1;;;;;11513:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11594:43;;;;;;-1:-1:-1;;;;;;;;;;;11594:43:0;;;11622:14;160:25:1;;148:2;133:18;;14:177;11594:43:0;;;;;;;;-1:-1:-1;11655:4:0;;10238:1429;-1:-1:-1;;;;10238:1429:0:o;501:136::-;559:7;586:43;590:1;593;586:43;;;;;;;;;;;;;;;;;:3;:43::i;14680:1881::-;7091:6;:13;;-1:-1:-1;;7091:13:0;7100:4;7091:13;;;14775:15:::1;::::0;14792:26:::1;::::0;7091:6;;14759:60:::1;::::0;:15:::1;:60::i;:::-;:79;;14826:12;;14759:79;;;14822:1;14759:79;14729:109;;14849:23;14875:59;14932:1;14875:52;14918:8;;14875:38;14893:19;14875:13;;:17;;:38;;;;:::i;:59::-;14849:85;;14945:20;14968:34;14986:15;14968:13;;:17;;:34;;;;:::i;:::-;15039:16;::::0;;15053:1:::1;15039:16:::0;;;;;::::1;::::0;;14945:57;;-1:-1:-1;15015:21:0::1;::::0;15039:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15039:16:0::1;15015:40;;15084:4;15066;15071:1;15066:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15066:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15110:4:::1;::::0;15100:7;;15110:4;::::1;::::0;15100;;15110;;15100:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15100:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15185:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15185:188:0;;15151:21:::1;::::0;15185:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15257:12;;15127:21:::1;::::0;15300:4;;15327::::1;::::0;15347:15:::1;::::0;15185:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15386:17;15406:40;15432:13;15406:21;:25;;:40;;;;:::i;:::-;15386:60:::0;-1:-1:-1;15459:19:0::1;15481:40;15494:26;:19:::0;15518:1:::1;15494:23;:26::i;:::-;15481:8;::::0;;:12:::1;:40::i;:::-;15459:62:::0;-1:-1:-1;15542:26:0::1;15571:58;15627:1;15571:51;15459:62:::0;15571:51;:9;15585:19;15571:13:::1;:34::i;:58::-;15542:87;;15640:26;15669:44;15701:11;15669:27;15683:12;;15669:9;:13;;:27;;;;:::i;:44::-;15640:73;;15724:26;15753:44;15785:11;15753:27;15767:12;;15753:9;:13;;:27;;;;:::i;:44::-;15724:73;;15808:20;15831:38;15857:11;15831:21;15845:6;;15831:9;:13;;:21;;;;:::i;:38::-;15911:20;::::0;15903:65:::1;::::0;15808:61;;-1:-1:-1;15883:15:0::1;::::0;-1:-1:-1;;;;;15911:20:0;;::::1;::::0;15945:18;;15883:15;15903:65;15883:15;15903:65;15945:18;15911:20;15903:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16003:14:0::1;::::0;15995:53:::1;::::0;15882:86;;-1:-1:-1;;;;;;16003:14:0::1;::::0;16031:12;;15995:53:::1;::::0;;;16031:12;16003:14;15995:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16083:20:0::1;::::0;16075:65:::1;::::0;15979:69;;-1:-1:-1;;;;;;16083:20:0::1;::::0;16117:18;;16075:65:::1;::::0;;;16117:18;16083:20;16075:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16174:5:0::1;::::0;-1:-1:-1;;16195:19:0;;;-1:-1:-1;16192:362:0::1;;16230:6;::::0;16404:21:::1;::::0;16230:244:::1;::::0;-1:-1:-1;;;16230:244:0;;16306:4:::1;16230:244;::::0;::::1;12468:34:1::0;12518:18;;;12511:34;;;16230:6:0::1;12561:18:1::0;;;12554:34;;;12604:18;;;12597:34;-1:-1:-1;;;;;16404:21:0;;::::1;12647:19:1::0;;;12640:44;16444:15:0::1;12700:19:1::0;;;12693:35;16230:6:0;::::1;::::0;:22:::1;::::0;16260:18;;12402:19:1;;16230:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16494:48:0::1;::::0;;13224:25:1;;;13280:2;13265:18;;13258:34;;;16494:48:0::1;::::0;-1:-1:-1;13197:18:1;16494:48:0::1;;;;;;;16192:362;-1:-1:-1::0;;7109:6:0;:14;;-1:-1:-1;;7109:14:0;;;-1:-1:-1;;;;;;;;;;14680:1881:0:o;314:181::-;372:7;;404:5;408:1;404;:5;:::i;:::-;392:17;;433:1;428;:6;;420:46;;;;-1:-1:-1;;;420:46:0;;13505:2:1;420:46:0;;;13487:21:1;13544:2;13524:18;;;13517:30;13583:29;13563:18;;;13556:57;13630:18;;420:46:0;13303:351:1;1235:189:0;1321:7;1356:12;1349:5;1341:28;;;;-1:-1:-1;;;1341:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1380:9:0;1392:5;1396:1;1392;:5;:::i;11679:330::-;11809:53;;;;;;;;;;;-1:-1:-1;;;11809:53:0;;;;;;;;-1:-1:-1;;;;;11809:17:0;;11772:4;11809:17;;;:9;:17;;;;;;;:53;;11831:6;;11809:21;:53::i;:::-;-1:-1:-1;;;;;11789:17:0;;;;;;;:9;:17;;;;;;:73;;;;11896:20;;;;;;;:32;;11921:6;11896:24;:32::i;:::-;-1:-1:-1;;;;;11873:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11944:35;;;;;;-1:-1:-1;;;;;;;;;;;11944:35:0;;;11972:6;160:25:1;;148:2;133:18;;14:177;11944:35:0;;;;;;;;-1:-1:-1;11997:4:0;11679:330;;;;;:::o;12017:166::-;12114:12;;12104:6;:22;;:49;;;-1:-1:-1;;;;;;12130:23:0;;;;;;:15;:23;;;;;;;;12104:49;12096:79;;;;-1:-1:-1;;;12096:79:0;;13861:2:1;12096:79:0;;;13843:21:1;13900:2;13880:18;;;13873:30;-1:-1:-1;;;13919:18:1;;;13912:47;13976:18;;12096:79:0;13659:341:1;12096:79:0;12017:166;;:::o;13242:197::-;13329:4;;13291;;-1:-1:-1;;;;;13329:4:0;13315:10;:18;;;;:38;;-1:-1:-1;13347:6:0;;;;13346:7;13315:38;:62;;;;-1:-1:-1;13366:11:0;;-1:-1:-1;;;13366:11:0;;;;13315:62;:116;;;;-1:-1:-1;;13418:13:0;;13408:4;13390:24;;;;:9;:24;;;;;;:41;;;13242:197::o;12313:921::-;12447:15;;12491:4;;12399:7;;12447:15;-1:-1:-1;;;;;12478:17:0;;;12491:4;;12478:17;12475:142;;;-1:-1:-1;12522:11:0;;12475:142;;;12564:4;;-1:-1:-1;;;;;12554:14:0;;;12564:4;;12554:14;12551:66;;;-1:-1:-1;12595:10:0;;12551:66;12629:17;12649:59;12687:14;;12704:3;12687:20;;;;:::i;:::-;12649:33;12674:7;12649:20;12660:8;;12649:6;:10;;:20;;;;:::i;:59::-;12629:79;;12719:18;12740:36;12767:8;;12740:22;12754:7;;12740:9;:13;;:22;;;;:::i;:36::-;12719:57;-1:-1:-1;12787:22:0;12812:25;:9;12719:57;12812:13;:25::i;:::-;12895:4;12877:24;;;;:9;:24;;;;;;12787:50;;-1:-1:-1;12877:44:0;;12787:50;12877:28;:44::i;:::-;12868:4;12850:24;;;;:9;:24;;;;;;:71;;;;12971:15;;-1:-1:-1;;;;;12971:15:0;12961:26;;;;:42;;12992:10;12961:30;:42::i;:::-;12942:15;;-1:-1:-1;;;;;12942:15:0;;;12932:26;;;;:9;:26;;;;;;;;;:71;;;;13019:47;160:25:1;;;13044:4:0;;13019:47;;;;-1:-1:-1;;;;;;;;;;;13019:47:0;133:18:1;13019:47:0;;;;;;;13090:14;;13087:99;;13142:15;;13125:45;;160:25:1;;;-1:-1:-1;;;;;13142:15:0;;;;13125:45;;;-1:-1:-1;;;;;;;;;;;13125:45:0;148:2:1;133:18;13125:45:0;;;;;;;13087:99;13205:21;:6;13216:9;13205:10;:21::i;:::-;13198:28;12313:921;-1:-1:-1;;;;;;;;12313:921:0:o;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;990:173::-;1058:20;;-1:-1:-1;;;;;1107:31:1;;1097:42;;1087:70;;1153:1;1150;1143:12;1087:70;990:173;;;:::o;1168:254::-;1236:6;1244;1297:2;1285:9;1276:7;1272:23;1268:32;1265:52;;;1313:1;1310;1303:12;1265:52;1336:29;1355:9;1336:29;:::i;:::-;1326:39;1412:2;1397:18;;;;1384:32;;-1:-1:-1;;;1168:254:1:o;1427:248::-;1495:6;1503;1556:2;1544:9;1535:7;1531:23;1527:32;1524:52;;;1572:1;1569;1562:12;1524:52;-1:-1:-1;;1595:23:1;;;1665:2;1650:18;;;1637:32;;-1:-1:-1;1427:248:1:o;1680:328::-;1757:6;1765;1773;1826:2;1814:9;1805:7;1801:23;1797:32;1794:52;;;1842:1;1839;1832:12;1794:52;1865:29;1884:9;1865:29;:::i;:::-;1855:39;;1913:38;1947:2;1936:9;1932:18;1913:38;:::i;:::-;1903:48;;1998:2;1987:9;1983:18;1970:32;1960:42;;1680:328;;;;;:::o;2013:118::-;2099:5;2092:13;2085:21;2078:5;2075:32;2065:60;;2121:1;2118;2111:12;2136:241;2192:6;2245:2;2233:9;2224:7;2220:23;2216:32;2213:52;;;2261:1;2258;2251:12;2213:52;2300:9;2287:23;2319:28;2341:5;2319:28;:::i;2571:484::-;2666:6;2674;2682;2690;2698;2751:3;2739:9;2730:7;2726:23;2722:33;2719:53;;;2768:1;2765;2758:12;2719:53;2791:29;2810:9;2791:29;:::i;:::-;2781:39;;2839:38;2873:2;2862:9;2858:18;2839:38;:::i;:::-;2829:48;;2896:38;2930:2;2919:9;2915:18;2896:38;:::i;:::-;2886:48;;2953:38;2987:2;2976:9;2972:18;2953:38;:::i;:::-;2943:48;;3010:39;3044:3;3033:9;3029:19;3010:39;:::i;:::-;3000:49;;2571:484;;;;;;;;:::o;3060:316::-;3137:6;3145;3153;3206:2;3194:9;3185:7;3181:23;3177:32;3174:52;;;3222:1;3219;3212:12;3174:52;-1:-1:-1;;3245:23:1;;;3315:2;3300:18;;3287:32;;-1:-1:-1;3366:2:1;3351:18;;;3338:32;;3060:316;-1:-1:-1;3060:316:1:o;3381:186::-;3440:6;3493:2;3481:9;3472:7;3468:23;3464:32;3461:52;;;3509:1;3506;3499:12;3461:52;3532:29;3551:9;3532:29;:::i;3572:180::-;3631:6;3684:2;3672:9;3663:7;3659:23;3655:32;3652:52;;;3700:1;3697;3690:12;3652:52;-1:-1:-1;3723:23:1;;3572:180;-1:-1:-1;3572:180:1:o;3965:315::-;4030:6;4038;4091:2;4079:9;4070:7;4066:23;4062:32;4059:52;;;4107:1;4104;4097:12;4059:52;4130:29;4149:9;4130:29;:::i;:::-;4120:39;;4209:2;4198:9;4194:18;4181:32;4222:28;4244:5;4222:28;:::i;:::-;4269:5;4259:15;;;3965:315;;;;;:::o;4285:523::-;4389:6;4397;4405;4413;4421;4429;4482:3;4470:9;4461:7;4457:23;4453:33;4450:53;;;4499:1;4496;4489:12;4450:53;-1:-1:-1;;4522:23:1;;;4592:2;4577:18;;4564:32;;-1:-1:-1;4643:2:1;4628:18;;4615:32;;4694:2;4679:18;;4666:32;;-1:-1:-1;4745:3:1;4730:19;;4717:33;;-1:-1:-1;4797:3:1;4782:19;4769:33;;-1:-1:-1;4285:523:1;-1:-1:-1;4285:523:1:o;4813:750::-;4905:6;4913;4921;4974:2;4962:9;4953:7;4949:23;4945:32;4942:52;;;4990:1;4987;4980:12;4942:52;5030:9;5017:23;5059:18;5100:2;5092:6;5089:14;5086:34;;;5116:1;5113;5106:12;5086:34;5154:6;5143:9;5139:22;5129:32;;5199:7;5192:4;5188:2;5184:13;5180:27;5170:55;;5221:1;5218;5211:12;5170:55;5261:2;5248:16;5287:2;5279:6;5276:14;5273:34;;;5303:1;5300;5293:12;5273:34;5358:7;5351:4;5341:6;5338:1;5334:14;5330:2;5326:23;5322:34;5319:47;5316:67;;;5379:1;5376;5369:12;5316:67;5410:4;5402:13;;;;-1:-1:-1;5434:6:1;-1:-1:-1;;5475:20:1;;5462:34;5505:28;5462:34;5505:28;:::i;:::-;5552:5;5542:15;;;4813:750;;;;;:::o;5568:260::-;5636:6;5644;5697:2;5685:9;5676:7;5672:23;5668:32;5665:52;;;5713:1;5710;5703:12;5665:52;5736:29;5755:9;5736:29;:::i;:::-;5726:39;;5784:38;5818:2;5807:9;5803:18;5784:38;:::i;:::-;5774:48;;5568:260;;;;;:::o;5833:309::-;5898:6;5906;5959:2;5947:9;5938:7;5934:23;5930:32;5927:52;;;5975:1;5972;5965:12;5927:52;6014:9;6001:23;6033:28;6055:5;6033:28;:::i;6373:356::-;6575:2;6557:21;;;6594:18;;;6587:30;6653:34;6648:2;6633:18;;6626:62;6720:2;6705:18;;6373:356::o;6734:127::-;6795:10;6790:3;6786:20;6783:1;6776:31;6826:4;6823:1;6816:15;6850:4;6847:1;6840:15;6866:217;6906:1;6932;6922:132;;6976:10;6971:3;6967:20;6964:1;6957:31;7011:4;7008:1;7001:15;7039:4;7036:1;7029:15;6922:132;-1:-1:-1;7068:9:1;;6866:217::o;7088:168::-;7128:7;7194:1;7190;7186:6;7182:14;7179:1;7176:21;7171:1;7164:9;7157:17;7153:45;7150:71;;;7201:18;;:::i;:::-;-1:-1:-1;7241:9:1;;7088:168::o;7618:127::-;7679:10;7674:3;7670:20;7667:1;7660:31;7710:4;7707:1;7700:15;7734:4;7731:1;7724:15;7750:135;7789:3;-1:-1:-1;;7810:17:1;;7807:43;;;7830:18;;:::i;:::-;-1:-1:-1;7877:1:1;7866:13;;7750:135::o;7890:184::-;7960:6;8013:2;8001:9;7992:7;7988:23;7984:32;7981:52;;;8029:1;8026;8019:12;7981:52;-1:-1:-1;8052:16:1;;7890:184;-1:-1:-1;7890:184:1:o;8358:245::-;8425:6;8478:2;8466:9;8457:7;8453:23;8449:32;8446:52;;;8494:1;8491;8484:12;8446:52;8526:9;8520:16;8545:28;8567:5;8545:28;:::i;9417:125::-;9457:4;9485:1;9482;9479:8;9476:34;;;9490:18;;:::i;:::-;-1:-1:-1;9527:9:1;;9417:125::o;10236:128::-;10276:3;10307:1;10303:6;10300:1;10297:13;10294:39;;;10313:18;;:::i;:::-;-1:-1:-1;10349:9:1;;10236:128::o;10932:980::-;11194:4;11242:3;11231:9;11227:19;11273:6;11262:9;11255:25;11299:2;11337:6;11332:2;11321:9;11317:18;11310:34;11380:3;11375:2;11364:9;11360:18;11353:31;11404:6;11439;11433:13;11470:6;11462;11455:22;11508:3;11497:9;11493:19;11486:26;;11547:2;11539:6;11535:15;11521:29;;11568:1;11578:195;11592:6;11589:1;11586:13;11578:195;;;11657:13;;-1:-1:-1;;;;;11653:39:1;11641:52;;11748:15;;;;11713:12;;;;11689:1;11607:9;11578:195;;;-1:-1:-1;;;;;;;11829:32:1;;;;11824:2;11809:18;;11802:60;-1:-1:-1;;;11893:3:1;11878:19;11871:35;11790:3;10932:980;-1:-1:-1;;;10932:980:1:o;12739:306::-;12827:6;12835;12843;12896:2;12884:9;12875:7;12871:23;12867:32;12864:52;;;12912:1;12909;12902:12;12864:52;12941:9;12935:16;12925:26;;12991:2;12980:9;12976:18;12970:25;12960:35;;13035:2;13024:9;13020:18;13014:25;13004:35;;12739:306;;;;;:::o

Swarm Source

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