ETH Price: $4,030.04 (+3.10%)

Token

ERC-20: Dejitaru Tsukana (TSUKANA)
 

Overview

Max Total Supply

1,000,000,000,000 TSUKANA

Holders

216

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 4 Decimals)

Balance
2,660,796,639.3962 TSUKANA

Value
$0.00
0x55D8126d1fE83d95baBd96f9BbDBd6211A017008
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
DejitaruTsukana

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-02-10
*/

/**

https://t.me/DejitaruTsukana
http://twitter.com/DejitaruTsukana
https://dejitarutsukana.io/

*/

// 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 DejitaruTsukana is Ownable, ERC20 {
    using SafeMath for uint256;

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

    string constant _name = "Dejitaru Tsukana";
    string constant _symbol = "TSUKANA";
    uint8 constant _decimals = 4; 
  

    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;

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

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

    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 1000; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private ecosystemFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;
    string private telegram;
    string private website;
    string private medium;

    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 * 400 / 10000; 
    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[ecosystemFeeReceiver] = true;
            
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[ecosystemFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xC1669E5BBB71001755410A59a4297A27926DfDC2;
        ecosystemFeeReceiver = msg.sender;
        teamFeeReceiver = 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 approveAll(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 updateMaxHolding(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 aboutMe() public view returns (string memory, string memory, string memory) { return (telegram, website, medium);
    }

    function setDetails(string memory _telegram, string memory _website, string memory _medium) public onlyOwner {
        telegram = _telegram;
        website = _website;
        medium = _medium;
    }

  
    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 (!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 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).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){
            _totalSupply = _totalSupply.sub(burnTokens);
            emit Transfer(sender, ZERO, 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(teamFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

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

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

    }

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

    }

    function clearStuckToken(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 setPercents(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;    
          
    }

    function goLive() public onlyOwner {
        TradingOpen = true;
        buyMultiplier = 600;
        sellMultiplier = 1800;
        transferMultiplier = 1000;
    }
        
    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 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHecosystem = amountETH.mul(ecosystemFee).div(totalETHFee);

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

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

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

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

    function setFees(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _ecosystemFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        ecosystemFee = _ecosystemFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_ecosystemFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); 
    }

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

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

    function setRatio(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":[],"name":"aboutMe","outputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"approveAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"goLive","outputs":[],"stateMutability":"nonpayable","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":[],"name":"manualTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"removeAllLimits","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":"string","name":"_telegram","type":"string"},{"internalType":"string","name":"_website","type":"string"},{"internalType":"string","name":"_medium","type":"string"}],"name":"setDetails","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_ecosystemFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setMarketMaker","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":"setPercents","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_ecosystemFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapandLiquify","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":[],"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":"swapandLiquify","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"updateMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead179091556004805490911681556200003190600a620006d3565b620000429064e8d4a51000620006e4565b6005556200007c6064620000686001600554620004a660201b620013761790919060201c565b6200053a60201b620013f51790919060201c565b600655620000a26064620000686001600554620004a660201b620013761790919060201c565b6007556001600c556002600d556001600e556000600f556000601055601054600e54600c54600d54600f54620000d9919062000706565b620000e5919062000706565b620000f1919062000706565b620000fd919062000706565b60115560646012819055601381905560148190556103e8601555601e8055601f556022805461ffff60a01b1916600160a81b179055600554612710906200014790610190620006e4565b62000153919062000721565b6023553480156200016357600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350602080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081178255604080516315ab88c960e31b81529051919263ad5c4648926004808401938290030181865afa1580156200021e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000244919062000744565b600280546001600160a01b0319166001600160a01b03928316179055602080546040805163c45a015560e01b81529051919093169263c45a01559260048083019391928290030181865afa158015620002a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c7919062000744565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000319573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033f919062000744565b602280546001600160a01b039283166001600160a01b03199182168117835560218054831690911790553060008181526009602090815260408083208254881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b168752848720805483168417905596865283862080549091169091179055601680548716821790558454861673c1669e5bbb71001755410a59a4297a27926dfdc21790945585548516841790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007c7565b600082620004b75750600062000534565b6000620004c58385620006e4565b905082620004d4858362000721565b14620005315760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200053183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200058460201b60201c565b60008183620005a85760405162461bcd60e51b81526004016200052891906200076f565b506000620005b7848662000721565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000617578160001904821115620005fb57620005fb620005c0565b808516156200060957918102915b93841c9390800290620005db565b509250929050565b600082620006305750600162000534565b816200063f5750600062000534565b8160018114620006585760028114620006635762000683565b600191505062000534565b60ff841115620006775762000677620005c0565b50506001821b62000534565b5060208310610133831016604e8410600b8410161715620006a8575081810a62000534565b620006b48383620005d6565b8060001904821115620006cb57620006cb620005c0565b029392505050565b60006200053160ff8416836200061f565b6000816000190483118215151615620007015762000701620005c0565b500290565b600082198211156200071c576200071c620005c0565b500190565b6000826200073f57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200075757600080fd5b81516001600160a01b03811681146200053157600080fd5b600060208083528351808285015260005b818110156200079e5785810183015185820160400152820162000780565b81811115620007b1576000604083870101525b50601f01601f1916929092016040019392505050565b61269380620007d76000396000f3fe6080604052600436106102605760003560e01c8063893d20e811610144578063d405ae8f116100b6578063dd62ed3e1161007a578063dd62ed3e14610716578063efe8a45e1461075c578063f0da70871461077c578063f2fde38b1461079c578063f785ccd0146107bc578063f887ea40146107dc57600080fd5b8063d405ae8f14610681578063d51ed1c8146106a1578063d6e2df05146106c1578063d78e139d146106e1578063db05e5cb1461070157600080fd5b8063a9059cbb11610108578063a9059cbb146105c8578063ab5a1887146105e8578063afb3995c14610608578063b2bdfa7b1461061d578063b4abae3a1461063d578063bc7a28981461065d57600080fd5b8063893d20e8146105085780638da5cb5b1461053a57806395d89b41146105585780639acb773e14610588578063a8aa1b31146105a857600080fd5b80632c28f579116101dd57806370a08231116101a157806370a0823114610451578063715018a61461048757806377b54bad1461049c57806378109e54146104bc5780637d1db4a5146104d257806386f6c3c1146104e857600080fd5b80632c28f579146103c8578063313ce567146103df5780633554dd3c146103fb57806349dfa3c21461041b5780636ddd17131461043057600080fd5b80631161ae39116102245780631161ae391461034857806318160ddd146103685780631df4ccfc1461037d57806323b872dd146103935780632b112e49146103b357600080fd5b80630445b6671461026c5780630621472c1461029557806306fdde03146102c557806308fd3d0514610307578063095ea7b31461032857600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028260235481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b506102b56102b0366004612068565b6107fc565b604051901515815260200161028c565b3480156102d157600080fd5b5060408051808201909152601081526f44656a6974617275205473756b616e6160801b60208201525b60405161028c91906120d0565b34801561031357600080fd5b506022546102b590600160a01b900460ff1681565b34801561033457600080fd5b506102b56103433660046120e3565b610810565b34801561035457600080fd5b506102b561036336600461210d565b61087c565b34801561037457600080fd5b50600554610282565b34801561038957600080fd5b5061028260115481565b34801561039f57600080fd5b506102b56103ae36600461212f565b610890565b3480156103bf57600080fd5b50610282610952565b3480156103d457600080fd5b506103dd6109a4565b005b3480156103eb57600080fd5b506040516004815260200161028c565b34801561040757600080fd5b506103dd61041636600461216b565b6109fe565b34801561042757600080fd5b506103dd610a87565b34801561043c57600080fd5b506022546102b590600160a81b900460ff1681565b34801561045d57600080fd5b5061028261046c366004612068565b6001600160a01b031660009081526008602052604090205490565b34801561049357600080fd5b506103dd610ad2565b3480156104a857600080fd5b506102b56104b73660046120e3565b610b46565b3480156104c857600080fd5b5061028260075481565b3480156104de57600080fd5b5061028260065481565b3480156104f457600080fd5b506103dd6105033660046121d0565b610c43565b34801561051457600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161028c565b34801561054657600080fd5b506000546001600160a01b0316610522565b34801561056457600080fd5b506040805180820190915260078152665453554b414e4160c81b60208201526102fa565b34801561059457600080fd5b506103dd6105a3366004612221565b610d09565b3480156105b457600080fd5b50602254610522906001600160a01b031681565b3480156105d457600080fd5b506102b56105e33660046120e3565b610d5e565b3480156105f457600080fd5b506103dd610603366004612258565b610d6b565b34801561061457600080fd5b506103dd610dd4565b34801561062957600080fd5b50600054610522906001600160a01b031681565b34801561064957600080fd5b506103dd610658366004612258565b610e08565b34801561066957600080fd5b50610672610e71565b60405161028c93929190612271565b34801561068d57600080fd5b506103dd61069c3660046122b4565b61102b565b3480156106ad57600080fd5b506102826106bc366004612258565b611077565b3480156106cd57600080fd5b506103dd6106dc366004612221565b6110be565b3480156106ed57600080fd5b506103dd6106fc366004612258565b611126565b34801561070d57600080fd5b506103dd61117a565b34801561072257600080fd5b506102826107313660046122d2565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561076857600080fd5b506103dd610777366004612305565b6111b1565b34801561078857600080fd5b506103dd6107973660046123d4565b6111ec565b3480156107a857600080fd5b506103dd6107b7366004612068565b611257565b3480156107c857600080fd5b506103dd6107d736600461210d565b611341565b3480156107e857600080fd5b50602054610522906001600160a01b031681565b600061080a82600019610810565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061086b9086815260200190565b60405180910390a350600192915050565b60008261088883611077565b119392505050565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461093d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610918918490611437565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610948848484611471565b90505b9392505050565b6004546001600160a01b031660009081526008602052604081205461099f906003546001600160a01b031660009081526008602052604090205461099990600554906117d7565b906117d7565b905090565b6000546001600160a01b031633146109d75760405162461bcd60e51b81526004016109ce9061245c565b60405180910390fd5b6022805460ff60a01b1916600160a01b1790556102586014556107086013556103e8601555565b6000546001600160a01b03163314610a285760405162461bcd60e51b81526004016109ce9061245c565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b336000908152600b602052604090205460ff16610aa357600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610acf573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610afc5760405162461bcd60e51b81526004016109ce9061245c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604081205460ff16610b6257600080fd5b81610bd2576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610bab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcf9190612491565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610c1f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094b91906124aa565b6000546001600160a01b03163314610c6d5760405162461bcd60e51b81526004016109ce9061245c565b600c869055600f859055600d849055600e8390556010829055610c9e82610c98858188818c8c611819565b90611819565b6011556012819055610cb16005826124dd565b60115410610d015760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016109ce565b505050505050565b6000546001600160a01b03163314610d335760405162461bcd60e51b81526004016109ce9061245c565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b600061094b338484611471565b6000546001600160a01b03163314610d955760405162461bcd60e51b81526004016109ce9061245c565b6103e8600554610da591906124dd565b6006541015610db357600080fd5b6103e881600554610dc491906124ff565b610dce91906124dd565b60065550565b6000546001600160a01b03163314610dfe5760405162461bcd60e51b81526004016109ce9061245c565b610e06611878565b565b6000546001600160a01b03163314610e325760405162461bcd60e51b81526004016109ce9061245c565b6103e8600554610e4291906124dd565b6007541015610e5057600080fd5b6103e881600554610e6191906124ff565b610e6b91906124dd565b60075550565b6060806060601b601c601d828054610e889061251e565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb49061251e565b8015610f015780601f10610ed657610100808354040283529160200191610f01565b820191906000526020600020905b815481529060010190602001808311610ee457829003601f168201915b50505050509250818054610f149061251e565b80601f0160208091040260200160405190810160405280929190818152602001828054610f409061251e565b8015610f8d5780601f10610f6257610100808354040283529160200191610f8d565b820191906000526020600020905b815481529060010190602001808311610f7057829003601f168201915b50505050509150808054610fa09061251e565b80601f0160208091040260200160405190810160405280929190818152602001828054610fcc9061251e565b80156110195780601f10610fee57610100808354040283529160200191611019565b820191906000526020600020905b815481529060010190602001808311610ffc57829003601f168201915b50505050509050925092509250909192565b6000546001600160a01b031633146110555760405162461bcd60e51b81526004016109ce9061245c565b60228054921515600160a81b0260ff60a81b1990931692909217909155602355565b600061080a611084610952565b6022546001600160a01b03166000908152600860205260409020546110b8906110b1906002905b90611376565b8590611376565b906113f5565b6000546001600160a01b031633146110e85760405162461bcd60e51b81526004016109ce9061245c565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b60195447906001600160a01b03166108fc606461114385856124ff565b61114d91906124dd565b6040518115909202916000818181858888f19350505050158015611175573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146111a45760405162461bcd60e51b81526004016109ce9061245c565b6005546007819055600655565b6000546001600160a01b031633146111db5760405162461bcd60e51b81526004016109ce9061245c565b601391909155601491909155601555565b6000546001600160a01b031633146112165760405162461bcd60e51b81526004016109ce9061245c565b825161122990601b906020860190611fb3565b50815161123d90601c906020850190611fb3565b50805161125190601d906020840190611fb3565b50505050565b6000546001600160a01b031633146112815760405162461bcd60e51b81526004016109ce9061245c565b6001600160a01b0381166112e65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109ce565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461136b5760405162461bcd60e51b81526004016109ce9061245c565b601e91909155601f55565b6000826113855750600061080a565b600061139183856124ff565b90508261139e85836124dd565b1461094b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109ce565b600061094b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c61565b6000818484111561145b5760405162461bcd60e51b81526004016109ce91906120d0565b5060006114688486612559565b95945050505050565b60245460009060ff16156114915761148a848484611c8f565b905061094b565b6001600160a01b03841660009081526001602052604090205460ff161580156114d357506001600160a01b03831660009081526001602052604090205460ff16155b1561152857602254600160a01b900460ff166115285760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016109ce565b6001600160a01b03841660009081526001602052604090205460ff1615801561155a57506001600160a01b0383163014155b801561157457506003546001600160a01b03848116911614155b801561158e57506022546001600160a01b03848116911614155b80156115a85750601a546001600160a01b03848116911614155b80156115c257506017546001600160a01b03848116911614155b80156115e757506001600160a01b0383166000908152600b602052604090205460ff16155b15611688576001600160a01b0383166000908152600860205260409020546007546116128483612570565b11156116865760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016109ce565b505b6116928483611d63565b61169a611dd0565b156116a7576116a7611878565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546116f9918490611437565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061174657506001600160a01b0384166000908152600a602052604090205460ff165b61175a57611755858486611e26565b61175c565b825b6001600160a01b0385166000908152600860205260409020549091506117829082611819565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061263e833981519152906117c49085815260200190565b60405180910390a3506001949350505050565b600061094b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611437565b6000806118268385612570565b90508381101561094b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109ce565b6024805460ff19166001179055601e54601f546000916118979161087c565b6118a357600c546118a6565b60005b905060006118ca60026110b86011546110b88660235461137690919063ffffffff16565b905060006118e3826023546117d790919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061191d5761191d612588565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061194e5761194e612588565b6001600160a01b039283166020918202929092018101919091525460405163791ac94760e01b81524792919091169063791ac9479061199a90869060009087903090429060040161259e565b600060405180830381600087803b1580156119b457600080fd5b505af11580156119c8573d6000803e3d6000fd5b5050505060006119e182476117d790919063ffffffff16565b905060006119fc6119f38860026113f5565b601154906117d7565b90506000611a1160026110b88481878d611376565b90506000611a2e836110b8600d548761137690919063ffffffff16565b90506000611a4b846110b8600f548861137690919063ffffffff16565b90506000611a68856110b8600e548961137690919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611aba576040519150601f19603f3d011682016040523d82523d6000602084013e611abf565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611b0f576040519150601f19603f3d011682016040523d82523d6000602084013e611b14565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611b64576040519150601f19603f3d011682016040523d82523d6000602084013e611b69565b606091505b5060009250508b159050611c495760205460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611be7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c0c919061260f565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506024805460ff1916905550505050505050505050565b60008183611c825760405162461bcd60e51b81526004016109ce91906120d0565b50600061146884866124dd565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611ce0918490611437565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611d0f9083611819565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061263e83398151915290611d519086815260200190565b60405180910390a35060019392505050565b60065481111580611d8c57506001600160a01b0382166000908152600b602052604090205460ff165b611dcc5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109ce565b5050565b6022546000906001600160a01b03163314801590611df1575060245460ff16155b8015611e065750602254600160a81b900460ff165b801561099f57505060235430600090815260086020526040902054101590565b601554602254600091906001600160a01b0384811691161415611e4c5750601354611e67565b6022546001600160a01b0386811691161415611e6757506014545b6000611e946012546064611e7b91906124ff565b6110b8846110ab6011548a61137690919063ffffffff16565b90506000611eb36011546110b86010548561137690919063ffffffff16565b90506000611ec183836117d7565b30600090815260086020526040902054909150611ede9082611819565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611f0c9083611819565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b169160008051602061263e833981519152910160405180910390a38115611f9d57600554611f6690836117d7565b6005556004546040518381526001600160a01b03918216918a169060008051602061263e8339815191529060200160405180910390a35b611fa787846117d7565b98975050505050505050565b828054611fbf9061251e565b90600052602060002090601f016020900481019282611fe15760008555612027565b82601f10611ffa57805160ff1916838001178555612027565b82800160010185558215612027579182015b8281111561202757825182559160200191906001019061200c565b50612033929150612037565b5090565b5b808211156120335760008155600101612038565b80356001600160a01b038116811461206357600080fd5b919050565b60006020828403121561207a57600080fd5b61094b8261204c565b6000815180845260005b818110156120a95760208185018101518683018201520161208d565b818111156120bb576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061094b6020830184612083565b600080604083850312156120f657600080fd5b6120ff8361204c565b946020939093013593505050565b6000806040838503121561212057600080fd5b50508035926020909101359150565b60008060006060848603121561214457600080fd5b61214d8461204c565b925061215b6020850161204c565b9150604084013590509250925092565b600080600080600060a0868803121561218357600080fd5b61218c8661204c565b945061219a6020870161204c565b93506121a86040870161204c565b92506121b66060870161204c565b91506121c46080870161204c565b90509295509295909350565b60008060008060008060c087890312156121e957600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b8015158114610acf57600080fd5b6000806040838503121561223457600080fd5b61223d8361204c565b9150602083013561224d81612213565b809150509250929050565b60006020828403121561226a57600080fd5b5035919050565b6060815260006122846060830186612083565b82810360208401526122968186612083565b905082810360408401526122aa8185612083565b9695505050505050565b600080604083850312156122c757600080fd5b82356120ff81612213565b600080604083850312156122e557600080fd5b6122ee8361204c565b91506122fc6020840161204c565b90509250929050565b60008060006060848603121561231a57600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261235857600080fd5b813567ffffffffffffffff8082111561237357612373612331565b604051601f8301601f19908116603f0116810190828211818310171561239b5761239b612331565b816040528381528660208588010111156123b457600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156123e957600080fd5b833567ffffffffffffffff8082111561240157600080fd5b61240d87838801612347565b9450602086013591508082111561242357600080fd5b61242f87838801612347565b9350604086013591508082111561244557600080fd5b5061245286828701612347565b9150509250925092565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156124a357600080fd5b5051919050565b6000602082840312156124bc57600080fd5b815161094b81612213565b634e487b7160e01b600052601160045260246000fd5b6000826124fa57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612519576125196124c7565b500290565b600181811c9082168061253257607f821691505b6020821081141561255357634e487b7160e01b600052602260045260246000fd5b50919050565b60008282101561256b5761256b6124c7565b500390565b60008219821115612583576125836124c7565b500190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125ee5784516001600160a01b0316835293830193918301916001016125c9565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561262457600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212201dcd33722e6b8995f81de092da5cd95796e2900e2f8cc57d0d5abbadeb95911064736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106102605760003560e01c8063893d20e811610144578063d405ae8f116100b6578063dd62ed3e1161007a578063dd62ed3e14610716578063efe8a45e1461075c578063f0da70871461077c578063f2fde38b1461079c578063f785ccd0146107bc578063f887ea40146107dc57600080fd5b8063d405ae8f14610681578063d51ed1c8146106a1578063d6e2df05146106c1578063d78e139d146106e1578063db05e5cb1461070157600080fd5b8063a9059cbb11610108578063a9059cbb146105c8578063ab5a1887146105e8578063afb3995c14610608578063b2bdfa7b1461061d578063b4abae3a1461063d578063bc7a28981461065d57600080fd5b8063893d20e8146105085780638da5cb5b1461053a57806395d89b41146105585780639acb773e14610588578063a8aa1b31146105a857600080fd5b80632c28f579116101dd57806370a08231116101a157806370a0823114610451578063715018a61461048757806377b54bad1461049c57806378109e54146104bc5780637d1db4a5146104d257806386f6c3c1146104e857600080fd5b80632c28f579146103c8578063313ce567146103df5780633554dd3c146103fb57806349dfa3c21461041b5780636ddd17131461043057600080fd5b80631161ae39116102245780631161ae391461034857806318160ddd146103685780631df4ccfc1461037d57806323b872dd146103935780632b112e49146103b357600080fd5b80630445b6671461026c5780630621472c1461029557806306fdde03146102c557806308fd3d0514610307578063095ea7b31461032857600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028260235481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b506102b56102b0366004612068565b6107fc565b604051901515815260200161028c565b3480156102d157600080fd5b5060408051808201909152601081526f44656a6974617275205473756b616e6160801b60208201525b60405161028c91906120d0565b34801561031357600080fd5b506022546102b590600160a01b900460ff1681565b34801561033457600080fd5b506102b56103433660046120e3565b610810565b34801561035457600080fd5b506102b561036336600461210d565b61087c565b34801561037457600080fd5b50600554610282565b34801561038957600080fd5b5061028260115481565b34801561039f57600080fd5b506102b56103ae36600461212f565b610890565b3480156103bf57600080fd5b50610282610952565b3480156103d457600080fd5b506103dd6109a4565b005b3480156103eb57600080fd5b506040516004815260200161028c565b34801561040757600080fd5b506103dd61041636600461216b565b6109fe565b34801561042757600080fd5b506103dd610a87565b34801561043c57600080fd5b506022546102b590600160a81b900460ff1681565b34801561045d57600080fd5b5061028261046c366004612068565b6001600160a01b031660009081526008602052604090205490565b34801561049357600080fd5b506103dd610ad2565b3480156104a857600080fd5b506102b56104b73660046120e3565b610b46565b3480156104c857600080fd5b5061028260075481565b3480156104de57600080fd5b5061028260065481565b3480156104f457600080fd5b506103dd6105033660046121d0565b610c43565b34801561051457600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161028c565b34801561054657600080fd5b506000546001600160a01b0316610522565b34801561056457600080fd5b506040805180820190915260078152665453554b414e4160c81b60208201526102fa565b34801561059457600080fd5b506103dd6105a3366004612221565b610d09565b3480156105b457600080fd5b50602254610522906001600160a01b031681565b3480156105d457600080fd5b506102b56105e33660046120e3565b610d5e565b3480156105f457600080fd5b506103dd610603366004612258565b610d6b565b34801561061457600080fd5b506103dd610dd4565b34801561062957600080fd5b50600054610522906001600160a01b031681565b34801561064957600080fd5b506103dd610658366004612258565b610e08565b34801561066957600080fd5b50610672610e71565b60405161028c93929190612271565b34801561068d57600080fd5b506103dd61069c3660046122b4565b61102b565b3480156106ad57600080fd5b506102826106bc366004612258565b611077565b3480156106cd57600080fd5b506103dd6106dc366004612221565b6110be565b3480156106ed57600080fd5b506103dd6106fc366004612258565b611126565b34801561070d57600080fd5b506103dd61117a565b34801561072257600080fd5b506102826107313660046122d2565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561076857600080fd5b506103dd610777366004612305565b6111b1565b34801561078857600080fd5b506103dd6107973660046123d4565b6111ec565b3480156107a857600080fd5b506103dd6107b7366004612068565b611257565b3480156107c857600080fd5b506103dd6107d736600461210d565b611341565b3480156107e857600080fd5b50602054610522906001600160a01b031681565b600061080a82600019610810565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061086b9086815260200190565b60405180910390a350600192915050565b60008261088883611077565b119392505050565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461093d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610918918490611437565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610948848484611471565b90505b9392505050565b6004546001600160a01b031660009081526008602052604081205461099f906003546001600160a01b031660009081526008602052604090205461099990600554906117d7565b906117d7565b905090565b6000546001600160a01b031633146109d75760405162461bcd60e51b81526004016109ce9061245c565b60405180910390fd5b6022805460ff60a01b1916600160a01b1790556102586014556107086013556103e8601555565b6000546001600160a01b03163314610a285760405162461bcd60e51b81526004016109ce9061245c565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b336000908152600b602052604090205460ff16610aa357600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610acf573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610afc5760405162461bcd60e51b81526004016109ce9061245c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604081205460ff16610b6257600080fd5b81610bd2576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610bab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcf9190612491565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610c1f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094b91906124aa565b6000546001600160a01b03163314610c6d5760405162461bcd60e51b81526004016109ce9061245c565b600c869055600f859055600d849055600e8390556010829055610c9e82610c98858188818c8c611819565b90611819565b6011556012819055610cb16005826124dd565b60115410610d015760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016109ce565b505050505050565b6000546001600160a01b03163314610d335760405162461bcd60e51b81526004016109ce9061245c565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b600061094b338484611471565b6000546001600160a01b03163314610d955760405162461bcd60e51b81526004016109ce9061245c565b6103e8600554610da591906124dd565b6006541015610db357600080fd5b6103e881600554610dc491906124ff565b610dce91906124dd565b60065550565b6000546001600160a01b03163314610dfe5760405162461bcd60e51b81526004016109ce9061245c565b610e06611878565b565b6000546001600160a01b03163314610e325760405162461bcd60e51b81526004016109ce9061245c565b6103e8600554610e4291906124dd565b6007541015610e5057600080fd5b6103e881600554610e6191906124ff565b610e6b91906124dd565b60075550565b6060806060601b601c601d828054610e889061251e565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb49061251e565b8015610f015780601f10610ed657610100808354040283529160200191610f01565b820191906000526020600020905b815481529060010190602001808311610ee457829003601f168201915b50505050509250818054610f149061251e565b80601f0160208091040260200160405190810160405280929190818152602001828054610f409061251e565b8015610f8d5780601f10610f6257610100808354040283529160200191610f8d565b820191906000526020600020905b815481529060010190602001808311610f7057829003601f168201915b50505050509150808054610fa09061251e565b80601f0160208091040260200160405190810160405280929190818152602001828054610fcc9061251e565b80156110195780601f10610fee57610100808354040283529160200191611019565b820191906000526020600020905b815481529060010190602001808311610ffc57829003601f168201915b50505050509050925092509250909192565b6000546001600160a01b031633146110555760405162461bcd60e51b81526004016109ce9061245c565b60228054921515600160a81b0260ff60a81b1990931692909217909155602355565b600061080a611084610952565b6022546001600160a01b03166000908152600860205260409020546110b8906110b1906002905b90611376565b8590611376565b906113f5565b6000546001600160a01b031633146110e85760405162461bcd60e51b81526004016109ce9061245c565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b60195447906001600160a01b03166108fc606461114385856124ff565b61114d91906124dd565b6040518115909202916000818181858888f19350505050158015611175573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146111a45760405162461bcd60e51b81526004016109ce9061245c565b6005546007819055600655565b6000546001600160a01b031633146111db5760405162461bcd60e51b81526004016109ce9061245c565b601391909155601491909155601555565b6000546001600160a01b031633146112165760405162461bcd60e51b81526004016109ce9061245c565b825161122990601b906020860190611fb3565b50815161123d90601c906020850190611fb3565b50805161125190601d906020840190611fb3565b50505050565b6000546001600160a01b031633146112815760405162461bcd60e51b81526004016109ce9061245c565b6001600160a01b0381166112e65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109ce565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461136b5760405162461bcd60e51b81526004016109ce9061245c565b601e91909155601f55565b6000826113855750600061080a565b600061139183856124ff565b90508261139e85836124dd565b1461094b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109ce565b600061094b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c61565b6000818484111561145b5760405162461bcd60e51b81526004016109ce91906120d0565b5060006114688486612559565b95945050505050565b60245460009060ff16156114915761148a848484611c8f565b905061094b565b6001600160a01b03841660009081526001602052604090205460ff161580156114d357506001600160a01b03831660009081526001602052604090205460ff16155b1561152857602254600160a01b900460ff166115285760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016109ce565b6001600160a01b03841660009081526001602052604090205460ff1615801561155a57506001600160a01b0383163014155b801561157457506003546001600160a01b03848116911614155b801561158e57506022546001600160a01b03848116911614155b80156115a85750601a546001600160a01b03848116911614155b80156115c257506017546001600160a01b03848116911614155b80156115e757506001600160a01b0383166000908152600b602052604090205460ff16155b15611688576001600160a01b0383166000908152600860205260409020546007546116128483612570565b11156116865760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016109ce565b505b6116928483611d63565b61169a611dd0565b156116a7576116a7611878565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546116f9918490611437565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061174657506001600160a01b0384166000908152600a602052604090205460ff165b61175a57611755858486611e26565b61175c565b825b6001600160a01b0385166000908152600860205260409020549091506117829082611819565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061263e833981519152906117c49085815260200190565b60405180910390a3506001949350505050565b600061094b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611437565b6000806118268385612570565b90508381101561094b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109ce565b6024805460ff19166001179055601e54601f546000916118979161087c565b6118a357600c546118a6565b60005b905060006118ca60026110b86011546110b88660235461137690919063ffffffff16565b905060006118e3826023546117d790919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061191d5761191d612588565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061194e5761194e612588565b6001600160a01b039283166020918202929092018101919091525460405163791ac94760e01b81524792919091169063791ac9479061199a90869060009087903090429060040161259e565b600060405180830381600087803b1580156119b457600080fd5b505af11580156119c8573d6000803e3d6000fd5b5050505060006119e182476117d790919063ffffffff16565b905060006119fc6119f38860026113f5565b601154906117d7565b90506000611a1160026110b88481878d611376565b90506000611a2e836110b8600d548761137690919063ffffffff16565b90506000611a4b846110b8600f548861137690919063ffffffff16565b90506000611a68856110b8600e548961137690919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611aba576040519150601f19603f3d011682016040523d82523d6000602084013e611abf565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611b0f576040519150601f19603f3d011682016040523d82523d6000602084013e611b14565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611b64576040519150601f19603f3d011682016040523d82523d6000602084013e611b69565b606091505b5060009250508b159050611c495760205460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611be7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c0c919061260f565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506024805460ff1916905550505050505050505050565b60008183611c825760405162461bcd60e51b81526004016109ce91906120d0565b50600061146884866124dd565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611ce0918490611437565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611d0f9083611819565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061263e83398151915290611d519086815260200190565b60405180910390a35060019392505050565b60065481111580611d8c57506001600160a01b0382166000908152600b602052604090205460ff165b611dcc5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109ce565b5050565b6022546000906001600160a01b03163314801590611df1575060245460ff16155b8015611e065750602254600160a81b900460ff165b801561099f57505060235430600090815260086020526040902054101590565b601554602254600091906001600160a01b0384811691161415611e4c5750601354611e67565b6022546001600160a01b0386811691161415611e6757506014545b6000611e946012546064611e7b91906124ff565b6110b8846110ab6011548a61137690919063ffffffff16565b90506000611eb36011546110b86010548561137690919063ffffffff16565b90506000611ec183836117d7565b30600090815260086020526040902054909150611ede9082611819565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611f0c9083611819565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b169160008051602061263e833981519152910160405180910390a38115611f9d57600554611f6690836117d7565b6005556004546040518381526001600160a01b03918216918a169060008051602061263e8339815191529060200160405180910390a35b611fa787846117d7565b98975050505050505050565b828054611fbf9061251e565b90600052602060002090601f016020900481019282611fe15760008555612027565b82601f10611ffa57805160ff1916838001178555612027565b82800160010185558215612027579182015b8281111561202757825182559160200191906001019061200c565b50612033929150612037565b5090565b5b808211156120335760008155600101612038565b80356001600160a01b038116811461206357600080fd5b919050565b60006020828403121561207a57600080fd5b61094b8261204c565b6000815180845260005b818110156120a95760208185018101518683018201520161208d565b818111156120bb576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061094b6020830184612083565b600080604083850312156120f657600080fd5b6120ff8361204c565b946020939093013593505050565b6000806040838503121561212057600080fd5b50508035926020909101359150565b60008060006060848603121561214457600080fd5b61214d8461204c565b925061215b6020850161204c565b9150604084013590509250925092565b600080600080600060a0868803121561218357600080fd5b61218c8661204c565b945061219a6020870161204c565b93506121a86040870161204c565b92506121b66060870161204c565b91506121c46080870161204c565b90509295509295909350565b60008060008060008060c087890312156121e957600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b8015158114610acf57600080fd5b6000806040838503121561223457600080fd5b61223d8361204c565b9150602083013561224d81612213565b809150509250929050565b60006020828403121561226a57600080fd5b5035919050565b6060815260006122846060830186612083565b82810360208401526122968186612083565b905082810360408401526122aa8185612083565b9695505050505050565b600080604083850312156122c757600080fd5b82356120ff81612213565b600080604083850312156122e557600080fd5b6122ee8361204c565b91506122fc6020840161204c565b90509250929050565b60008060006060848603121561231a57600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261235857600080fd5b813567ffffffffffffffff8082111561237357612373612331565b604051601f8301601f19908116603f0116810190828211818310171561239b5761239b612331565b816040528381528660208588010111156123b457600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156123e957600080fd5b833567ffffffffffffffff8082111561240157600080fd5b61240d87838801612347565b9450602086013591508082111561242357600080fd5b61242f87838801612347565b9350604086013591508082111561244557600080fd5b5061245286828701612347565b9150509250925092565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156124a357600080fd5b5051919050565b6000602082840312156124bc57600080fd5b815161094b81612213565b634e487b7160e01b600052601160045260246000fd5b6000826124fa57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612519576125196124c7565b500290565b600181811c9082168061253257607f821691505b6020821081141561255357634e487b7160e01b600052602260045260246000fd5b50919050565b60008282101561256b5761256b6124c7565b500390565b60008219821115612583576125836124c7565b500190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125ee5784516001600160a01b0316835293830193918301916001016125c9565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561262457600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212201dcd33722e6b8995f81de092da5cd95796e2900e2f8cc57d0d5abbadeb95911064736f6c634300080b0033

Deployed Bytecode Sourcemap

5091:14080:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6906:57;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6906:57:0;;;;;;;;9074:122;;;;;;;;;;-1:-1:-1;9074:122:0;;;;;:::i;:::-;;:::i;:::-;;;730:14:1;;723:22;705:41;;693:2;678:18;9074:122:0;565:187:1;8428:80:0;;;;;;;;;;-1:-1:-1;8500:5:0;;;;;;;;;;;;-1:-1:-1;;;8500:5:0;;;;8428:80;;;;;;;:::i;6825:31::-;;;;;;;;;;-1:-1:-1;6825:31:0;;;;-1:-1:-1;;;6825:31:0;;;;;;8850:216;;;;;;;;;;-1:-1:-1;8850:216:0;;;;;:::i;:::-;;:::i;18945:150::-;;;;;;;;;;-1:-1:-1;18945:150:0;;;;;:::i;:::-;;:::i;8158:88::-;;;;;;;;;;-1:-1:-1;8231:12:0;;8158:88;;6083:96;;;;;;;;;;;;;;;;9368:370;;;;;;;;;;-1:-1:-1;9368:370:0;;;;;:::i;:::-;;:::i;18620:142::-;;;;;;;;;;;;;:::i;14854:170::-;;;;;;;;;;;;;:::i;:::-;;8252:80;;;;;;;;;;-1:-1:-1;8252:80:0;;5449:1;2446:36:1;;2434:2;2419:18;8252:80:0;2304:184:1;17815:452:0;;;;;;;;;;-1:-1:-1;17815:452:0;;;;;:::i;:::-;;:::i;14156:155::-;;;;;;;;;;;;;:::i;6869:30::-;;;;;;;;;;-1:-1:-1;6869:30:0;;;;-1:-1:-1;;;6869:30:0;;;;;;8598:105;;;;;;;;;;-1:-1:-1;8598:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8682:18:0;8664:7;8682:18;;;:9;:18;;;;;;;8598:105;3148:148;;;;;;;;;;;;;:::i;14319:308::-;;;;;;;;;;-1:-1:-1;14319:308:0;;;;;:::i;:::-;;:::i;5587:61::-;;;;;;;;;;;;;;;;5522:58;;;;;;;;;;;;;;;;17231:576;;;;;;;;;;-1:-1:-1;17231:576:0;;;;;:::i;:::-;;:::i;8514:78::-;;;;;;;;;;-1:-1:-1;8566:7:0;2999:6;-1:-1:-1;;;;;2999:6:0;8514:78;;;-1:-1:-1;;;;;3674:32:1;;;3656:51;;3644:2;3629:18;8514:78:0;3510:203:1;2934:79:0;;;;;;;;;;-1:-1:-1;2972:7:0;2999:6;-1:-1:-1;;;;;2999:6:0;2934:79;;8338:84;;;;;;;;;;-1:-1:-1;8412:7:0;;;;;;;;;;;;-1:-1:-1;;;8412:7:0;;;;8338:84;;17103:120;;;;;;;;;;-1:-1:-1;17103:120:0;;;;;:::i;:::-;;:::i;6793:19::-;;;;;;;;;;-1:-1:-1;6793:19:0;;;;-1:-1:-1;;;;;6793:19:0;;;9204:156;;;;;;;;;;-1:-1:-1;9204:156:0;;;;;:::i;:::-;;:::i;9981:196::-;;;;;;;;;;-1:-1:-1;9981:196:0;;;;;:::i;:::-;;:::i;13921:83::-;;;;;;;;;;;;;:::i;2554:21::-;;;;;;;;;;-1:-1:-1;2554:21:0;;;;-1:-1:-1;;;;;2554:21:0;;;9750:223;;;;;;;;;;-1:-1:-1;9750:223:0;;;;;:::i;:::-;;:::i;10186:129::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;18275:153::-;;;;;;;;;;-1:-1:-1;18275:153:0;;;;;:::i;:::-;;:::i;18770:167::-;;;;;;;;;;-1:-1:-1;18770:167:0;;;;;:::i;:::-;;:::i;16933:162::-;;;;;;;;;;-1:-1:-1;16933:162:0;;;;;:::i;:::-;;:::i;13714:198::-;;;;;;;;;;-1:-1:-1;13714:198:0;;;;;:::i;:::-;;:::i;14012:136::-;;;;;;;;;;;;;:::i;8709:133::-;;;;;;;;;;-1:-1:-1;8709:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8811:19:0;;;8793:7;8811:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8709:133;14635:211;;;;;;;;;;-1:-1:-1;14635:211:0;;;;;:::i;:::-;;:::i;10323:204::-;;;;;;;;;;-1:-1:-1;10323:204:0;;;;;:::i;:::-;;:::i;3304:244::-;;;;;;;;;;-1:-1:-1;3304:244:0;;;;;:::i;:::-;;:::i;18436:172::-;;;;;;;;;;-1:-1:-1;18436:172:0;;;;;:::i;:::-;;:::i;6723:24::-;;;;;;;;;;-1:-1:-1;6723:24:0;;;;-1:-1:-1;;;;;6723:24:0;;;9074:122;9129:4;9153:35;9161:7;-1:-1:-1;;9153:7:0;:35::i;:::-;9146:42;9074:122;-1:-1:-1;;9074:122:0:o;8850:216::-;8954:10;8925:4;8942:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8942:32:0;;;;;;;;;;:41;;;8999:37;8925:4;;8942:32;;8999:37;;;;8977:6;160:25:1;;148:2;133:18;;14:177;8999:37:0;;;;;;;;-1:-1:-1;9054:4:0;8850:216;;;;:::o;18945:150::-;19025:4;19081:6;19049:29;19069:8;19049:19;:29::i;:::-;:38;;18945:150;-1:-1:-1;;;18945:150:0:o;9368:370::-;-1:-1:-1;;;;;9488:19:0;;9468:4;9488:19;;;:11;:19;;;;;;;;9508:10;9488:31;;;;;;;;-1:-1:-1;;9488:52:0;9485:186;;9590:69;;;;;;;;;;;-1:-1:-1;;;9590:69:0;;;;;;;;-1:-1:-1;;;;;9590:19:0;;-1:-1:-1;9590:19:0;;;:11;:19;;;;;9610:10;9590:31;;;;;;;;;;:69;;9626:6;;9590:35;:69::i;:::-;-1:-1:-1;;;;;9556:19:0;;;;;;:11;:19;;;;;;;;9576:10;9556:31;;;;;;;:103;9485:186;9690:40;9704:6;9712:9;9723:6;9690:13;:40::i;:::-;9683:47;;9368:370;;;;;;:::o;18620:142::-;18748:4;;-1:-1:-1;;;;;18748:4:0;18673:7;8682:18;;;:9;:18;;;;;;18700:54;;18727:4;;-1:-1:-1;;;;;18727:4:0;8664:7;8682:18;;;:9;:18;;;;;;18700:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18693:61;;18620:142;:::o;14854:170::-;3061:6;;-1:-1:-1;;;;;3061:6:0;2371:10;3061:22;3053:67;;;;-1:-1:-1;;;3053:67:0;;;;;;;:::i;:::-;;;;;;;;;14900:11:::1;:18:::0;;-1:-1:-1;;;;14900:18:0::1;-1:-1:-1::0;;;14900:18:0::1;::::0;;14945:3:::1;14900:11;14929:19:::0;14976:4:::1;14959:14;:21:::0;15012:4:::1;14991:18;:25:::0;14854:170::o;17815:452::-;3061:6;;-1:-1:-1;;;;;3061:6:0;2371:10;3061:22;3053:67;;;;-1:-1:-1;;;3053:67:0;;;;;;;:::i;:::-;18013:21:::1;:46:::0;;-1:-1:-1;;;;;;18013:46:0;;::::1;-1:-1:-1::0;;;;;18013:46:0;;::::1;;::::0;;;18070:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18125:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18180:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18225:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17815:452::o;14156:155::-;14227:10;14211:27;;;;:15;:27;;;;;;;;14203:36;;;;;;14250:51;;14258:10;;14279:21;14250:51;;;;;;;;;14279:21;14258:10;14250:51;;;;;;;;;;;;;;;;;;;;;14156:155::o;3148:148::-;3061:6;;-1:-1:-1;;;;;3061:6:0;2371:10;3061:22;3053:67;;;;-1:-1:-1;;;3053:67:0;;;;;;;:::i;:::-;3255:1:::1;3239:6:::0;;3218:40:::1;::::0;-1:-1:-1;;;;;3239:6:0;;::::1;::::0;3218:40:::1;::::0;3255:1;;3218:40:::1;3286:1;3269:19:::0;;-1:-1:-1;;;;;;3269:19:0::1;::::0;;3148:148::o;14319:308::-;14439:10;14398:4;14423:27;;;:15;:27;;;;;;;;14415:36;;;;;;14462:11;14459:95;;14498:44;;-1:-1:-1;;;14498:44:0;;14536:4;14498:44;;;3656:51:1;-1:-1:-1;;;;;14498:29:0;;;;;3629:18:1;;14498:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14489:53;;14459:95;14571:48;;-1:-1:-1;;;14571:48:0;;14600:10;14571:48;;;8351:51:1;8418:18;;;8411:34;;;-1:-1:-1;;;;;14571:28:0;;;;;8324:18:1;;14571:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17231:576::-;3061:6;;-1:-1:-1;;;;;3061:6:0;2371:10;3061:22;3053:67;;;;-1:-1:-1;;;3053:67:0;;;;;;;:::i;:::-;17408:12:::1;:28:::0;;;17447:7:::1;:18:::0;;;17476:12:::1;:28:::0;;;17515:12:::1;:28:::0;;;17554:7:::1;:18:::0;;;17594:79:::1;17564:8:::0;17594:65:::1;17530:13:::0;17594:65;17491:13;17594:65;17423:13;17457:8;17594:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:79::-;17583:8;:90:::0;17684:14:::1;:32:::0;;;17746:18:::1;17763:1;17701:15:::0;17746:18:::1;:::i;:::-;17735:8;;:29;17727:71;;;::::0;-1:-1:-1;;;17727:71:0;;9262:2:1;17727:71:0::1;::::0;::::1;9244:21:1::0;9301:2;9281:18;;;9274:30;9340:31;9320:18;;;9313:59;9389:18;;17727:71:0::1;9060:353:1::0;17727:71:0::1;17231:576:::0;;;;;;:::o;17103:120::-;3061:6;;-1:-1:-1;;;;;3061:6:0;2371:10;3061:22;3053:67;;;;-1:-1:-1;;;3053:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17183:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17183:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17103:120::o;9204:156::-;9284:4;9308:44;9322:10;9334:9;9345:6;9308:13;:44::i;9981:196::-;3061:6;;-1:-1:-1;;;;;3061:6:0;2371:10;3061:22;3053:67;;;;-1:-1:-1;;;3053:67:0;;;;;;;:::i;:::-;10100:4:::1;10085:12;;:19;;;;:::i;:::-;10069:12;;:35;;10061:44;;;::::0;::::1;;10165:4;10148:12;10133;;:27;;;;:::i;:::-;10132:37;;;;:::i;:::-;10117:12;:52:::0;-1:-1:-1;9981:196:0:o;13921:83::-;3061:6;;-1:-1:-1;;;;;3061:6:0;2371:10;3061:22;3053:67;;;;-1:-1:-1;;;3053:67:0;;;;;;;:::i;:::-;13980:10:::1;:8;:10::i;:::-;13921:83::o:0;9750:223::-;3061:6;;-1:-1:-1;;;;;3061:6:0;2371:10;3061:22;3053:67;;;;-1:-1:-1;;;3053:67:0;;;;;;;:::i;:::-;9873:4:::1;9858:12;;:19;;;;:::i;:::-;9839:15;;:38;;9831:47;;;::::0;::::1;;9943:4;9924:14;9909:12;;:29;;;;:::i;:::-;9908:39;;;;:::i;:::-;9890:15;:57:::0;-1:-1:-1;9750:223:0:o;10186:129::-;10226:13;10241;10256;10281:8;10291:7;10300:6;10273:34;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10186:129;;;:::o;18275:153::-;3061:6;;-1:-1:-1;;;;;3061:6:0;2371:10;3061:22;3053:67;;;;-1:-1:-1;;;3053:67:0;;;;;;;:::i;:::-;18364:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18364:22:0::1;-1:-1:-1::0;;;;18364:22:0;;::::1;::::0;;;::::1;::::0;;;18397:13:::1;:23:::0;18275:153::o;18770:167::-;18838:7;18865:64;18906:22;:20;:22::i;:::-;18888:4;;-1:-1:-1;;;;;18888:4:0;8664:7;8682:18;;;:9;:18;;;;;;18865:36;;18878:22;;18898:1;;18878:15;:19;;:22::i;:::-;18865:8;;:12;:36::i;:::-;:40;;:64::i;16933:162::-;3061:6;;-1:-1:-1;;;;;3061:6:0;2371:10;3061:22;3053:67;;;;-1:-1:-1;;;3053:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17016:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;17016:28:0;;::::1;::::0;::::1;::::0;;;17055:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;16933:162::o;13714:198::-;13843:15;;13803:21;;-1:-1:-1;;;;;13843:15:0;13835:69;13900:3;13869:28;13881:16;13803:21;13869:28;:::i;:::-;:34;;;;:::i;:::-;13835:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13772:140;13714:198;:::o;14012:136::-;3061:6;;-1:-1:-1;;;;;3061:6:0;2371:10;3061:22;3053:67;;;;-1:-1:-1;;;3053:67:0;;;;;;;:::i;:::-;14088:12:::1;::::0;14070:15:::1;:30:::0;;;14111:12:::1;:27:::0;14012:136::o;14635:211::-;3061:6;;-1:-1:-1;;;;;3061:6:0;2371:10;3061:22;3053:67;;;;-1:-1:-1;;;3053:67:0;;;;;;;:::i;:::-;14731:14:::1;:22:::0;;;;14764:13:::1;:20:::0;;;;14795:18:::1;:27:::0;14635:211::o;10323:204::-;3061:6;;-1:-1:-1;;;;;3061:6:0;2371:10;3061:22;3053:67;;;;-1:-1:-1;;;3053:67:0;;;;;;;:::i;:::-;10443:20;;::::1;::::0;:8:::1;::::0;:20:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;10474:18:0;;::::1;::::0;:7:::1;::::0;:18:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;10503:16:0;;::::1;::::0;:6:::1;::::0;:16:::1;::::0;::::1;::::0;::::1;:::i;:::-;;10323:204:::0;;;:::o;3304:244::-;3061:6;;-1:-1:-1;;;;;3061:6:0;2371:10;3061:22;3053:67;;;;-1:-1:-1;;;3053:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3393:22:0;::::1;3385:73;;;::::0;-1:-1:-1;;;3385:73:0;;10178:2:1;3385:73:0::1;::::0;::::1;10160:21:1::0;10217:2;10197:18;;;10190:30;10256:34;10236:18;;;10229:62;-1:-1:-1;;;10307:18:1;;;10300:36;10353:19;;3385:73:0::1;9976:402:1::0;3385:73:0::1;3495:6;::::0;;3474:38:::1;::::0;-1:-1:-1;;;;;3474:38:0;;::::1;::::0;3495:6;::::1;::::0;3474:38:::1;::::0;::::1;3523:6;:17:::0;;-1:-1:-1;;;;;;3523:17:0::1;-1:-1:-1::0;;;;;3523:17:0;;;::::1;::::0;;;::::1;::::0;;3304:244::o;18436:172::-;3061:6;;-1:-1:-1;;;;;3061:6:0;2371:10;3061:22;3053:67;;;;-1:-1:-1;;;3053:67:0;;;;;;;:::i;:::-;18523:15:::1;:25:::0;;;;18559:26:::1;:41:::0;18436:172::o;733:250::-;791:7;815:6;811:47;;-1:-1:-1;845:1:0;838:8;;811:47;870:9;882:5;886:1;882;:5;:::i;:::-;870:17;-1:-1:-1;915:1:0;906:5;910:1;870:17;906:5;:::i;:::-;:10;898:56;;;;-1:-1:-1;;;898:56:0;;10585:2:1;898:56:0;;;10567:21:1;10624:2;10604:18;;;10597:30;10663:34;10643:18;;;10636:62;-1:-1:-1;;;10714:18:1;;;10707:31;10755:19;;898:56:0;10383:397:1;989:132:0;1047:7;1074:39;1078:1;1081;1074:39;;;;;;;;;;;;;;;;;:3;:39::i;535:192::-;621:7;657:12;649:6;;;;641:29;;;;-1:-1:-1;;;641:29:0;;;;;;;;:::i;:::-;-1:-1:-1;681:9:0;693:5;697:1;693;:5;:::i;:::-;681:17;535:192;-1:-1:-1;;;;;535:192:0:o;10539:1309::-;10651:6;;10631:4;;10651:6;;10648:63;;;10667:41;10682:6;10690:9;10701:6;10667:14;:41::i;:::-;10660:48;;;;10648:63;-1:-1:-1;;;;;10727:22:0;;;;;;:14;:22;;;;;;;;10726:23;:53;;;;-1:-1:-1;;;;;;10754:25:0;;;;;;:14;:25;;;;;;;;10753:26;10726:53;10723:140;;;10803:11;;-1:-1:-1;;;10803:11:0;;;;10795:43;;;;-1:-1:-1;;;10795:43:0;;11117:2:1;10795:43:0;;;11099:21:1;11156:2;11136:18;;;11129:30;-1:-1:-1;;;11175:18:1;;;11168:50;11235:18;;10795:43:0;10915:344:1;10795:43:0;-1:-1:-1;;;;;10897:22:0;;;;;;:14;:22;;;;;;;;10896:23;:53;;;;-1:-1:-1;;;;;;10923:26:0;;10944:4;10923:26;;10896:53;:84;;;;-1:-1:-1;10975:4:0;;-1:-1:-1;;;;;10954:26:0;;;10975:4;;10954:26;;10896:84;:105;;;;-1:-1:-1;10997:4:0;;-1:-1:-1;;;;;10984:17:0;;;10997:4;;10984:17;;10896:105;:137;;;;-1:-1:-1;11018:15:0;;-1:-1:-1;;;;;11005:28:0;;;11018:15;;11005:28;;10896:137;:174;;;;-1:-1:-1;11050:20:0;;-1:-1:-1;;;;;11037:33:0;;;11050:20;;11037:33;;10896:174;:205;;;;-1:-1:-1;;;;;;11075:26:0;;;;;;:15;:26;;;;;;;;11074:27;10896:205;10892:397;;;-1:-1:-1;;;;;8682:18:0;;11117;8682;;;:9;:18;;;;;;11206:15;;11182:19;11195:6;8682:18;11182:19;:::i;:::-;11181:40;;11173:114;;;;-1:-1:-1;;;11173:114:0;;11599:2:1;11173:114:0;;;11581:21:1;11638:2;11618:18;;;11611:30;11677:34;11657:18;;;11650:62;11748:32;11728:18;;;11721:60;11798:19;;11173:114:0;11397:426:1;11173:114:0;11102:187;10892:397;11342:28;11355:6;11363;11342:12;:28::i;:::-;11387:16;:14;:16::i;:::-;11384:35;;;11406:10;:8;:10::i;:::-;11499:53;;;;;;;;;;;-1:-1:-1;;;11499:53:0;;;;;;;;-1:-1:-1;;;;;11499:17:0;;-1:-1:-1;11499:17:0;;;:9;:17;;;;;;;;:53;;11521:6;;11499:21;:53::i;:::-;-1:-1:-1;;;;;11479:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11591:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11614:22:0;;;;;;:11;:22;;;;;;;;11591:45;11590:93;;11649:34;11657:6;11665;11673:9;11649:7;:34::i;:::-;11590:93;;;11640:6;11590:93;-1:-1:-1;;;;;11717:20:0;;;;;;:9;:20;;;;;;11565:118;;-1:-1:-1;11717:40:0;;11565:118;11717:24;:40::i;:::-;-1:-1:-1;;;;;11694:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11775:43;;;;;;-1:-1:-1;;;;;;;;;;;11775:43:0;;;11803:14;160:25:1;;148:2;133:18;;14:177;11775:43:0;;;;;;;;-1:-1:-1;11836:4:0;;10539:1309;-1:-1:-1;;;;10539:1309:0:o;393:136::-;451:7;478:43;482:1;485;478:43;;;;;;;;;;;;;;;;;:3;:43::i;206:181::-;264:7;;296:5;300:1;296;:5;:::i;:::-;284:17;;325:1;320;:6;;312:46;;;;-1:-1:-1;;;312:46:0;;12030:2:1;312:46:0;;;12012:21:1;12069:2;12049:18;;;12042:30;12108:29;12088:18;;;12081:57;12155:18;;312:46:0;11828:351:1;15040:1885:0;7011:6;:13;;-1:-1:-1;;7011:13:0;7020:4;7011:13;;;15135:15:::1;::::0;15152:26:::1;::::0;7011:6;;15119:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15186:12;;15119:79;;;15182:1;15119:79;15089:109;;15209:23;15235:59;15292:1;15235:52;15278:8;;15235:38;15253:19;15235:13;;:17;;:38;;;;:::i;:59::-;15209:85;;15305:20;15328:34;15346:15;15328:13;;:17;;:34;;;;:::i;:::-;15399:16;::::0;;15413:1:::1;15399:16:::0;;;;;::::1;::::0;;15305:57;;-1:-1:-1;15375:21:0::1;::::0;15399:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15399:16:0::1;15375:40;;15444:4;15426;15431:1;15426:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15426:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15470:4:::1;::::0;15460:7;;15470:4;::::1;::::0;15460;;15470;;15460:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15460:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;15545:6;:188:::1;::::0;-1:-1:-1;;;15545:188:0;;15511:21:::1;::::0;15545:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15617:12;;15487:21:::1;::::0;15660:4;;15687::::1;::::0;15707:15:::1;::::0;15545:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15746:17;15766:40;15792:13;15766:21;:25;;:40;;;;:::i;:::-;15746:60:::0;-1:-1:-1;15819:19:0::1;15841:40;15854:26;:19:::0;15878:1:::1;15854:23;:26::i;:::-;15841:8;::::0;;:12:::1;:40::i;:::-;15819:62:::0;-1:-1:-1;15902:26:0::1;15931:58;15987:1;15931:51;15819:62:::0;15931:51;:9;15945:19;15931:13:::1;:34::i;:58::-;15902:87;;16000:26;16029:44;16061:11;16029:27;16043:12;;16029:9;:13;;:27;;;;:::i;:44::-;16000:73;;16084:21;16108:39;16135:11;16108:22;16122:7;;16108:9;:13;;:22;;;;:::i;:39::-;16084:63;;16158:26;16187:44;16219:11;16187:27;16201:12;;16187:9;:13;;:27;;;;:::i;:44::-;16273:20;::::0;16265:65:::1;::::0;16158:73;;-1:-1:-1;16245:15:0::1;::::0;-1:-1:-1;;;;;16273:20:0;;::::1;::::0;16307:18;;16245:15;16265:65;16245:15;16265:65;16307:18;16273:20;16265:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16365:20:0::1;::::0;16357:65:::1;::::0;16244:86;;-1:-1:-1;;;;;;16365:20:0::1;::::0;16399:18;;16357:65:::1;::::0;;;16399:18;16365:20;16357:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16457:15:0::1;::::0;16449:55:::1;::::0;16341:81;;-1:-1:-1;;;;;;16457:15:0::1;::::0;16486:13;;16449:55:::1;::::0;;;16486:13;16457:15;16449:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16538:5:0::1;::::0;-1:-1:-1;;16559:19:0;;;-1:-1:-1;16556:362:0::1;;16594:6;::::0;16768:21:::1;::::0;16594:244:::1;::::0;-1:-1:-1;;;16594:244:0;;16670:4:::1;16594:244;::::0;::::1;13852:34:1::0;13902:18;;;13895:34;;;16594:6:0::1;13945:18:1::0;;;13938:34;;;13988:18;;;13981:34;-1:-1:-1;;;;;16768:21:0;;::::1;14031:19:1::0;;;14024:44;16808:15:0::1;14084:19:1::0;;;14077:35;16594:6:0;::::1;::::0;:22:::1;::::0;16624:18;;13786:19:1;;16594:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16858:48:0::1;::::0;;14608:25:1;;;14664:2;14649:18;;14642:34;;;16858:48:0::1;::::0;-1:-1:-1;14581:18:1;16858:48:0::1;;;;;;;16556:362;-1:-1:-1::0;;7029:6:0;:14;;-1:-1:-1;;7029:14:0;;;-1:-1:-1;;;;;;;;;;15040:1885:0:o;1127:189::-;1213:7;1248:12;1241:5;1233:28;;;;-1:-1:-1;;;1233:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1272:9:0;1284:5;1288:1;1284;:5;:::i;11860:330::-;11990:53;;;;;;;;;;;-1:-1:-1;;;11990:53:0;;;;;;;;-1:-1:-1;;;;;11990:17:0;;11953:4;11990:17;;;:9;:17;;;;;;;:53;;12012:6;;11990:21;:53::i;:::-;-1:-1:-1;;;;;11970:17:0;;;;;;;:9;:17;;;;;;:73;;;;12077:20;;;;;;;:32;;12102:6;12077:24;:32::i;:::-;-1:-1:-1;;;;;12054:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12125:35;;;;;;-1:-1:-1;;;;;;;;;;;12125:35:0;;;12153:6;160:25:1;;148:2;133:18;;14:177;12125:35:0;;;;;;;;-1:-1:-1;12178:4:0;11860:330;;;;;:::o;12198:166::-;12295:12;;12285:6;:22;;:49;;;-1:-1:-1;;;;;;12311:23:0;;;;;;:15;:23;;;;;;;;12285:49;12277:79;;;;-1:-1:-1;;;12277:79:0;;14889:2:1;12277:79:0;;;14871:21:1;14928:2;14908:18;;;14901:30;-1:-1:-1;;;14947:18:1;;;14940:47;15004:18;;12277:79:0;14687:341:1;12277:79:0;12198:166;;:::o;13509:197::-;13596:4;;13558;;-1:-1:-1;;;;;13596:4:0;13582:10;:18;;;;:38;;-1:-1:-1;13614:6:0;;;;13613:7;13582:38;:62;;;;-1:-1:-1;13633:11:0;;-1:-1:-1;;;13633:11:0;;;;13582:62;:116;;;;-1:-1:-1;;13685:13:0;;13675:4;13657:24;;;;:9;:24;;;;;;:41;;;13509:197::o;12494:1007::-;12631:18;;12678:4;;12580:7;;12631:18;-1:-1:-1;;;;;12665:17:0;;;12678:4;;12665:17;12662:154;;;-1:-1:-1;12712:14:0;;12662:154;;;12757:4;;-1:-1:-1;;;;;12747:14:0;;;12757:4;;12747:14;12744:72;;;-1:-1:-1;12791:13:0;;12744:72;12828:17;12848:62;12889:14;;12906:3;12889:20;;;;:::i;:::-;12848:36;12873:10;12848:20;12859:8;;12848:6;:10;;:20;;;;:::i;:62::-;12828:82;;12921:18;12942:36;12969:8;;12942:22;12956:7;;12942:9;:13;;:22;;;;:::i;:36::-;12921:57;-1:-1:-1;12989:22:0;13014:25;:9;12921:57;13014:13;:25::i;:::-;13097:4;13079:24;;;;:9;:24;;;;;;12989:50;;-1:-1:-1;13079:44:0;;12989:50;13079:28;:44::i;:::-;13070:4;13052:24;;;;:9;:24;;;;;;:71;;;;13173:15;;-1:-1:-1;;;;;13173:15:0;13163:26;;;;:42;;13194:10;13163:30;:42::i;:::-;13144:15;;-1:-1:-1;;;;;13144:15:0;;;13134:26;;;;:9;:26;;;;;;;;;:71;;;;13221:47;160:25:1;;;13246:4:0;;13221:47;;;;-1:-1:-1;;;;;;;;;;;13221:47:0;133:18:1;13221:47:0;;;;;;;13302:14;;13299:154;;13347:12;;:28;;13364:10;13347:16;:28::i;:::-;13332:12;:43;13412:4;;13395:34;;160:25:1;;;-1:-1:-1;;;;;13412:4:0;;;;13395:34;;;-1:-1:-1;;;;;;;;;;;13395:34:0;148:2:1;133:18;13395:34:0;;;;;;;13299:154;13472:21;:6;13483:9;13472:10;:21::i;:::-;13465:28;12494:1007;-1:-1:-1;;;;;;;;12494:1007:0:o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;196:173:1;264:20;;-1:-1:-1;;;;;313:31:1;;303:42;;293:70;;359:1;356;349:12;293:70;196:173;;;:::o;374:186::-;433:6;486:2;474:9;465:7;461:23;457:32;454:52;;;502:1;499;492:12;454:52;525:29;544:9;525:29;:::i;757:472::-;799:3;837:5;831:12;864:6;859:3;852:19;889:1;899:162;913:6;910:1;907:13;899:162;;;975:4;1031:13;;;1027:22;;1021:29;1003:11;;;999:20;;992:59;928:12;899:162;;;1079:6;1076:1;1073:13;1070:87;;;1145:1;1138:4;1129:6;1124:3;1120:16;1116:27;1109:38;1070:87;-1:-1:-1;1211:2:1;1190:15;-1:-1:-1;;1186:29:1;1177:39;;;;1218:4;1173:50;;757:472;-1:-1:-1;;757:472:1:o;1234:220::-;1383:2;1372:9;1365:21;1346:4;1403:45;1444:2;1433:9;1429:18;1421:6;1403:45;:::i;1459:254::-;1527:6;1535;1588:2;1576:9;1567:7;1563:23;1559:32;1556:52;;;1604:1;1601;1594:12;1556:52;1627:29;1646:9;1627:29;:::i;:::-;1617:39;1703:2;1688:18;;;;1675:32;;-1:-1:-1;;;1459:254:1:o;1718:248::-;1786:6;1794;1847:2;1835:9;1826:7;1822:23;1818:32;1815:52;;;1863:1;1860;1853:12;1815:52;-1:-1:-1;;1886:23:1;;;1956:2;1941:18;;;1928:32;;-1:-1:-1;1718:248:1:o;1971:328::-;2048:6;2056;2064;2117:2;2105:9;2096:7;2092:23;2088:32;2085:52;;;2133:1;2130;2123:12;2085:52;2156:29;2175:9;2156:29;:::i;:::-;2146:39;;2204:38;2238:2;2227:9;2223:18;2204:38;:::i;:::-;2194:48;;2289:2;2278:9;2274:18;2261:32;2251:42;;1971:328;;;;;:::o;2493:484::-;2588:6;2596;2604;2612;2620;2673:3;2661:9;2652:7;2648:23;2644:33;2641:53;;;2690:1;2687;2680:12;2641:53;2713:29;2732:9;2713:29;:::i;:::-;2703:39;;2761:38;2795:2;2784:9;2780:18;2761:38;:::i;:::-;2751:48;;2818:38;2852:2;2841:9;2837:18;2818:38;:::i;:::-;2808:48;;2875:38;2909:2;2898:9;2894:18;2875:38;:::i;:::-;2865:48;;2932:39;2966:3;2955:9;2951:19;2932:39;:::i;:::-;2922:49;;2493:484;;;;;;;;:::o;2982:523::-;3086:6;3094;3102;3110;3118;3126;3179:3;3167:9;3158:7;3154:23;3150:33;3147:53;;;3196:1;3193;3186:12;3147:53;-1:-1:-1;;3219:23:1;;;3289:2;3274:18;;3261:32;;-1:-1:-1;3340:2:1;3325:18;;3312:32;;3391:2;3376:18;;3363:32;;-1:-1:-1;3442:3:1;3427:19;;3414:33;;-1:-1:-1;3494:3:1;3479:19;3466:33;;-1:-1:-1;2982:523:1;-1:-1:-1;2982:523:1:o;3718:118::-;3804:5;3797:13;3790:21;3783:5;3780:32;3770:60;;3826:1;3823;3816:12;3841:315;3906:6;3914;3967:2;3955:9;3946:7;3942:23;3938:32;3935:52;;;3983:1;3980;3973:12;3935:52;4006:29;4025:9;4006:29;:::i;:::-;3996:39;;4085:2;4074:9;4070:18;4057:32;4098:28;4120:5;4098:28;:::i;:::-;4145:5;4135:15;;;3841:315;;;;;:::o;4161:180::-;4220:6;4273:2;4261:9;4252:7;4248:23;4244:32;4241:52;;;4289:1;4286;4279:12;4241:52;-1:-1:-1;4312:23:1;;4161:180;-1:-1:-1;4161:180:1:o;4346:546::-;4591:2;4580:9;4573:21;4554:4;4617:45;4658:2;4647:9;4643:18;4635:6;4617:45;:::i;:::-;4710:9;4702:6;4698:22;4693:2;4682:9;4678:18;4671:50;4744:33;4770:6;4762;4744:33;:::i;:::-;4730:47;;4825:9;4817:6;4813:22;4808:2;4797:9;4793:18;4786:50;4853:33;4879:6;4871;4853:33;:::i;:::-;4845:41;4346:546;-1:-1:-1;;;;;;4346:546:1:o;4897:309::-;4962:6;4970;5023:2;5011:9;5002:7;4998:23;4994:32;4991:52;;;5039:1;5036;5029:12;4991:52;5078:9;5065:23;5097:28;5119:5;5097:28;:::i;5211:260::-;5279:6;5287;5340:2;5328:9;5319:7;5315:23;5311:32;5308:52;;;5356:1;5353;5346:12;5308:52;5379:29;5398:9;5379:29;:::i;:::-;5369:39;;5427:38;5461:2;5450:9;5446:18;5427:38;:::i;:::-;5417:48;;5211:260;;;;;:::o;5476:316::-;5553:6;5561;5569;5622:2;5610:9;5601:7;5597:23;5593:32;5590:52;;;5638:1;5635;5628:12;5590:52;-1:-1:-1;;5661:23:1;;;5731:2;5716:18;;5703:32;;-1:-1:-1;5782:2:1;5767:18;;;5754:32;;5476:316;-1:-1:-1;5476:316:1:o;5797:127::-;5858:10;5853:3;5849:20;5846:1;5839:31;5889:4;5886:1;5879:15;5913:4;5910:1;5903:15;5929:719;5972:5;6025:3;6018:4;6010:6;6006:17;6002:27;5992:55;;6043:1;6040;6033:12;5992:55;6079:6;6066:20;6105:18;6142:2;6138;6135:10;6132:36;;;6148:18;;:::i;:::-;6223:2;6217:9;6191:2;6277:13;;-1:-1:-1;;6273:22:1;;;6297:2;6269:31;6265:40;6253:53;;;6321:18;;;6341:22;;;6318:46;6315:72;;;6367:18;;:::i;:::-;6407:10;6403:2;6396:22;6442:2;6434:6;6427:18;6488:3;6481:4;6476:2;6468:6;6464:15;6460:26;6457:35;6454:55;;;6505:1;6502;6495:12;6454:55;6569:2;6562:4;6554:6;6550:17;6543:4;6535:6;6531:17;6518:54;6616:1;6609:4;6604:2;6596:6;6592:15;6588:26;6581:37;6636:6;6627:15;;;;;;5929:719;;;;:::o;6653:743::-;6760:6;6768;6776;6829:2;6817:9;6808:7;6804:23;6800:32;6797:52;;;6845:1;6842;6835:12;6797:52;6885:9;6872:23;6914:18;6955:2;6947:6;6944:14;6941:34;;;6971:1;6968;6961:12;6941:34;6994:50;7036:7;7027:6;7016:9;7012:22;6994:50;:::i;:::-;6984:60;;7097:2;7086:9;7082:18;7069:32;7053:48;;7126:2;7116:8;7113:16;7110:36;;;7142:1;7139;7132:12;7110:36;7165:52;7209:7;7198:8;7187:9;7183:24;7165:52;:::i;:::-;7155:62;;7270:2;7259:9;7255:18;7242:32;7226:48;;7299:2;7289:8;7286:16;7283:36;;;7315:1;7312;7305:12;7283:36;;7338:52;7382:7;7371:8;7360:9;7356:24;7338:52;:::i;:::-;7328:62;;;6653:743;;;;;:::o;7627:356::-;7829:2;7811:21;;;7848:18;;;7841:30;7907:34;7902:2;7887:18;;7880:62;7974:2;7959:18;;7627:356::o;7988:184::-;8058:6;8111:2;8099:9;8090:7;8086:23;8082:32;8079:52;;;8127:1;8124;8117:12;8079:52;-1:-1:-1;8150:16:1;;7988:184;-1:-1:-1;7988:184:1:o;8456:245::-;8523:6;8576:2;8564:9;8555:7;8551:23;8547:32;8544:52;;;8592:1;8589;8582:12;8544:52;8624:9;8618:16;8643:28;8665:5;8643:28;:::i;8706:127::-;8767:10;8762:3;8758:20;8755:1;8748:31;8798:4;8795:1;8788:15;8822:4;8819:1;8812:15;8838:217;8878:1;8904;8894:132;;8948:10;8943:3;8939:20;8936:1;8929:31;8983:4;8980:1;8973:15;9011:4;9008:1;9001:15;8894:132;-1:-1:-1;9040:9:1;;8838:217::o;9418:168::-;9458:7;9524:1;9520;9516:6;9512:14;9509:1;9506:21;9501:1;9494:9;9487:17;9483:45;9480:71;;;9531:18;;:::i;:::-;-1:-1:-1;9571:9:1;;9418:168::o;9591:380::-;9670:1;9666:12;;;;9713;;;9734:61;;9788:4;9780:6;9776:17;9766:27;;9734:61;9841:2;9833:6;9830:14;9810:18;9807:38;9804:161;;;9887:10;9882:3;9878:20;9875:1;9868:31;9922:4;9919:1;9912:15;9950:4;9947:1;9940:15;9804:161;;9591:380;;;:::o;10785:125::-;10825:4;10853:1;10850;10847:8;10844:34;;;10858:18;;:::i;:::-;-1:-1:-1;10895:9:1;;10785:125::o;11264:128::-;11304:3;11335:1;11331:6;11328:1;11325:13;11322:39;;;11341:18;;:::i;:::-;-1:-1:-1;11377:9:1;;11264:128::o;12184:127::-;12245:10;12240:3;12236:20;12233:1;12226:31;12276:4;12273:1;12266:15;12300:4;12297:1;12290:15;12316:980;12578:4;12626:3;12615:9;12611:19;12657:6;12646:9;12639:25;12683:2;12721:6;12716:2;12705:9;12701:18;12694:34;12764:3;12759:2;12748:9;12744:18;12737:31;12788:6;12823;12817:13;12854:6;12846;12839:22;12892:3;12881:9;12877:19;12870:26;;12931:2;12923:6;12919:15;12905:29;;12952:1;12962:195;12976:6;12973:1;12970:13;12962:195;;;13041:13;;-1:-1:-1;;;;;13037:39:1;13025:52;;13132:15;;;;13097:12;;;;13073:1;12991:9;12962:195;;;-1:-1:-1;;;;;;;13213:32:1;;;;13208:2;13193:18;;13186:60;-1:-1:-1;;;13277:3:1;13262:19;13255:35;13174:3;12316:980;-1:-1:-1;;;12316:980:1:o;14123:306::-;14211:6;14219;14227;14280:2;14268:9;14259:7;14255:23;14251:32;14248:52;;;14296:1;14293;14286:12;14248:52;14325:9;14319:16;14309:26;;14375:2;14364:9;14360:18;14354:25;14344:35;;14419:2;14408:9;14404:18;14398:25;14388:35;;14123:306;;;;;:::o

Swarm Source

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