ETH Price: $3,103.44 (-1.77%)

Token

Ngmi Coin (NGMI)
 

Overview

Max Total Supply

420,690,000,000,000 NGMI

Holders

1,088 (0.00%)

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

NGMI is, like, this totally relaxed crypto project. We're all about memes and stuff, 'cause who wants to work hard, am I right?

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
NgmiCoin

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 100 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// Twitter: https://twitter.com/NGMI_ERC
// Telegram: https://t.me/NGMI_ERC
// Website: https://ngmierc.com

// SPDX-License-Identifier: MIT


pragma solidity 0.8.19;

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


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

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

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

    string constant _name = "Ngmi Coin";
    string constant _symbol = "NGMI";
    uint8 constant _decimals = 9; 


    event AutoLiquify(uint256 amountETH, uint256 amountTokens);
    event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer);
    event user_exemptfromfees(address Wallet, bool Exempt);
    event user_TxExempt(address Wallet, bool Exempt);
    event ClearStuck(uint256 amount);
    event ClearToken(address TokenAddressCleared, uint256 Amount);
    event set_Receivers(address marketingFeeReceiver, address buybackFeeReceiver,address burnFeeReceiver,address devFeeReceiver);
    event set_MaxWallet(uint256 maxWallet);
    event set_MaxTX(uint256 maxTX);
    event set_SwapBack(uint256 Amount, bool Enabled);
  
    uint256 _totalSupply =  420690000000000 * 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) isexemptfromfees;
    mapping (address => bool) isexemptfrommaxTX;

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 3;
    uint256 private devFee          = 0;
    uint256 private buybackFee      = 1; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = buybackFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellpercent = 100;
    uint256 buypercent = 100;
    uint256 transferpercent = 100; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private buybackFeeReceiver;
    address private burnFeeReceiver;

    uint256 setRatio = 35;
    uint256 setRatioDenominator = 100;
    

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

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

        isexemptfromfees[msg.sender] = true;            
        isexemptfrommaxTX[msg.sender] = true;
        isexemptfrommaxTX[pair] = true;
        isexemptfrommaxTX[marketingFeeReceiver] = true;
        isexemptfrommaxTX[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = msg.sender;
        devFeeReceiver = msg.sender;
        buybackFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

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

    }

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

        function setMaxWallet(uint256 maxWallPercent) external onlyOwner {
         require(maxWallPercent >= 1); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
        emit set_MaxWallet(_maxWalletToken);
                
    }

      function disablelimits () external onlyOwner {
            _maxTxAmount = _totalSupply;
            _maxWalletToken = _totalSupply;
    }

      
    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 && !isexemptfrommaxTX[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        checkTxLimit(sender, amount); 

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

        uint256 amountReceived = (isexemptfromfees[sender] || isexemptfromfees[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 || isexemptfrommaxTX[sender], "TX Limit Exceeded");
    }

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 percent = transferpercent;
        if(recipient == pair) {
            percent = sellpercent;
        } else if(sender == pair) {
            percent = buypercent;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);
        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        
        if(burnTokens > 0){
            _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 manualSend() external { 
             payable(autoLiquidityReceiver).transfer(address(this).balance);
            
    }

   function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) {
             if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        emit ClearToken(tokenAddress, tokens);
        return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
    }

    function setFees(uint256 _percentonbuy, uint256 _percentonsell, uint256 _wallettransfer) external onlyOwner {
        sellpercent = _percentonsell;
        buypercent = _percentonbuy;
        transferpercent = _wallettransfer;    
          
    }
       
    function enableTrading() public onlyOwner {
        TradingOpen = true;
        buypercent = 500;
        sellpercent = 800;
        transferpercent = 1000;
                              
    }

             
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = checkRatio(setRatio, setRatioDenominator) ? 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 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

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

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }
    
  
    function set_fees() internal {
      
        emit EditTax( uint8(totalFee.mul(buypercent).div(100)),
            uint8(totalFee.mul(sellpercent).div(100)),
            uint8(totalFee.mul(transferpercent).div(100))
            );
    }
    
    function setFees(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        buybackFee = _buybackFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_buybackFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 2, "Fees can not be more than 50%"); 
        set_fees();
    }

    function multiAirdrop(address from, address[] calldata addresses, uint256[] calldata tokens) external onlyOwner {

    require(addresses.length < 501,"GAS Error: max airdrop limit is 500 addresses");
    require(addresses.length == tokens.length,"Mismatch between Address and token count");

    uint256 antibot = 0;

    for(uint i=0; i < addresses.length; i++){
        antibot = antibot + tokens[i];
    }

    require(balanceOf(from) >= antibot, "Not enough tokens in wallet");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens[i]);
    }
}

    function setWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _buybackFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;

        emit set_Receivers(marketingFeeReceiver, buybackFeeReceiver, burnFeeReceiver, devFeeReceiver);
    }

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

    function checkRatio(uint256 ratio, uint256 accuracy) public view returns (bool) {
        return showBacking(accuracy) > ratio;
    }

    function showBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(showSupply());
    }
    
    function showSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }


}

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":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTX","type":"uint256"}],"name":"set_MaxTX","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"buybackFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checkRatio","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disablelimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiAirdrop","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentonbuy","type":"uint256"},{"internalType":"uint256","name":"_percentonsell","type":"uint256"},{"internalType":"uint256","name":"_wallettransfer","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapAndLiquifyStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200065f565b620000259066017e9d8602b40062000670565b600381905562000046906064906200003f9060016200042f565b90620004c6565b60045560035462000061906064906200003f9060016200042f565b6005556001600a556003600b556000600c556001600d556000600e55600e54600c54600a54600b54600d546200009891906200068a565b620000a491906200068a565b620000b091906200068a565b620000bc91906200068a565b600f55606460108190556011819055601281905560138190556023601955601a55601d805461ffff60a01b1916600160a81b1790556003546103e8906200010590601462000670565b620001119190620006a0565b601e553480156200012157600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002079190620006c3565b600280546001600160a01b0319166001600160a01b03928316179055601b546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000266573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028c9190620006c3565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003049190620006c3565b601d80546001600160a01b039283166001600160a01b031991821681178355601c805483169091179055306000818152600760209081526040808320601b5488168452825280832060001990553380845260088352818420805460ff1990811660019081179092556009855283862080548216831790559754891685528285208054891682179055601580549099168552828520805489168217905594845281842080549097169094179095556014805485168417905585548416831790955560168054841683179055601780548416831790556018805490931661dead179092556003548183526006855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200073e565b6000826000036200044357506000620004c0565b600062000451838562000670565b905082620004608583620006a0565b14620004bd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620004bd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200051060201b60201c565b60008183620005345760405162461bcd60e51b8152600401620004b49190620006ee565b506000620005438486620006a0565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005a35781600019048211156200058757620005876200054c565b808516156200059557918102915b93841c939080029062000567565b509250929050565b600082620005bc57506001620004c0565b81620005cb57506000620004c0565b8160018114620005e45760028114620005ef576200060f565b6001915050620004c0565b60ff8411156200060357620006036200054c565b50506001821b620004c0565b5060208310610133831016604e8410600b841016171562000634575081810a620004c0565b62000640838362000562565b80600019048211156200065757620006576200054c565b029392505050565b6000620004bd60ff841683620005ab565b8082028115828204841417620004c057620004c06200054c565b80820180821115620004c057620004c06200054c565b600082620006be57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620006d657600080fd5b81516001600160a01b0381168114620004bd57600080fd5b600060208083528351808285015260005b818110156200071d57858101830151858201604001528201620006ff565b506000604082860101526040601f19601f8301168501019250505092915050565b6122aa806200074e6000396000f3fe6080604052600436106101d35760003560e01c806378109e54116100f8578063a9059cbb11610090578063a9059cbb1461053b578063b2bdfa7b1461055b578063b78e7edb1461057b578063cec10c111461059b578063dd62ed3e146105bb578063ded1e43814610601578063f2fde38b14610621578063f429389014610641578063f887ea401461065657600080fd5b806378109e541461041d5780637d1db4a514610433578063825287911461044957806386f6c3c114610469578063893d20e8146104895780638a8c523c146104bb5780638da5cb5b146104d057806395d89b41146104ee578063a8aa1b311461051b57600080fd5b806330c9a6a01161016b57806330c9a6a014610316578063313ce567146103365780635526566914610352578063571ac8b0146103675780635d0044ca146103875780636ddd1713146103a757806370a08231146103c8578063715018a6146103e857806377b54bad146103fd57600080fd5b80630445b667146101df57806306fdde031461020857806308fd3d0514610243578063095ea7b31461027457806318160ddd146102945780631df4ccfc146102a957806322c5f95c146102bf57806323b872dd146102e15780632688f5391461030157600080fd5b366101da57005b600080fd5b3480156101eb57600080fd5b506101f5601e5481565b6040519081526020015b60405180910390f35b34801561021457600080fd5b506040805180820190915260098152682733b6b49021b7b4b760b91b60208201525b6040516101ff9190611d80565b34801561024f57600080fd5b50601d5461026490600160a01b900460ff1681565b60405190151581526020016101ff565b34801561028057600080fd5b5061026461028f366004611dea565b610676565b3480156102a057600080fd5b506003546101f5565b3480156102b557600080fd5b506101f5600f5481565b3480156102cb57600080fd5b506102df6102da366004611e22565b6106e3565b005b3480156102ed57600080fd5b506102646102fc366004611e40565b61077f565b34801561030d57600080fd5b506102df610841565b34801561032257600080fd5b506101f5610331366004611e7c565b610878565b34801561034257600080fd5b50604051600981526020016101ff565b34801561035e57600080fd5b506101f56108b8565b34801561037357600080fd5b50610264610382366004611e95565b6108e9565b34801561039357600080fd5b506102df6103a2366004611e7c565b6108f7565b3480156103b357600080fd5b50601d5461026490600160a81b900460ff1681565b3480156103d457600080fd5b506101f56103e3366004611e95565b610985565b3480156103f457600080fd5b506102df6109a0565b34801561040957600080fd5b50610264610418366004611dea565b610a14565b34801561042957600080fd5b506101f560055481565b34801561043f57600080fd5b506101f560045481565b34801561045557600080fd5b506102df610464366004611eb0565b610b42565b34801561047557600080fd5b506102df610484366004611f15565b610c1a565b34801561049557600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101ff565b3480156104c757600080fd5b506102df610ce8565b3480156104dc57600080fd5b506000546001600160a01b03166104a3565b3480156104fa57600080fd5b506040805180820190915260048152634e474d4960e01b6020820152610236565b34801561052757600080fd5b50601d546104a3906001600160a01b031681565b34801561054757600080fd5b50610264610556366004611dea565b610d39565b34801561056757600080fd5b506000546104a3906001600160a01b031681565b34801561058757600080fd5b506102df610596366004611fa4565b610d46565b3480156105a757600080fd5b506102df6105b6366004612025565b610f44565b3480156105c757600080fd5b506101f56105d6366004612051565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561060d57600080fd5b5061026461061c366004612084565b610f7f565b34801561062d57600080fd5b506102df61063c366004611e95565b610f93565b34801561064d57600080fd5b506102df61107d565b34801561066257600080fd5b50601b546104a3906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106d19086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107165760405162461bcd60e51b815260040161070d906120a6565b60405180910390fd5b601d805460ff60a81b1916600160a81b84151581029190911791829055601e8390556040805184815260ff9290930491909116151560208301527f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60910160405180910390a15050565b6001600160a01b03831660009081526007602090815260408083203384529091528120546000191461082c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108079184906110b9565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6108378484846110f3565b90505b9392505050565b6000546001600160a01b0316331461086b5760405162461bcd60e51b815260040161070d906120a6565b6003546004819055600555565b60006106dd6108856108b8565b601d546108b2906108ab906002906108a5906001600160a01b0316610985565b9061144b565b859061144b565b906114cd565b60006108e46108c76000610985565b6108de6108d561dead610985565b6003549061150f565b9061150f565b905090565b60006106dd82600019610676565b6000546001600160a01b031633146109215760405162461bcd60e51b815260040161070d906120a6565b600181101561092f57600080fd5b6103e88160035461094091906120f1565b61094a9190612108565b60058190556040519081527f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be519060200160405180910390a150565b6001600160a01b031660009081526006602052604090205490565b6000546001600160a01b031633146109ca5760405162461bcd60e51b815260040161070d906120a6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600081600003610a89576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610a62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a86919061212a565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a160145460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610b1e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083a9190612143565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b815260040161070d906120a6565b601480546001600160a01b038781166001600160a01b031992831617909255601580548784169083168117909155601680548785169084168117909155601880548786169085168117909155601780549587169590941685179093556040805192835260208301949094529281019190915260608101919091527f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b159060800160405180910390a15050505050565b6000546001600160a01b03163314610c445760405162461bcd60e51b815260040161070d906120a6565b600a869055600d859055600b849055600c839055600e829055610c7582610c6f858188818c8c611551565b90611551565b600f556010819055610c88600282612108565b600f5410610cd85760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20353025000000604482015260640161070d565b610ce06115b0565b505050505050565b6000546001600160a01b03163314610d125760405162461bcd60e51b815260040161070d906120a6565b601d805460ff60a01b1916600160a01b1790556101f46012556103206011556103e8601355565b600061083a3384846110f3565b6000546001600160a01b03163314610d705760405162461bcd60e51b815260040161070d906120a6565b6101f58310610dd75760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b606482015260840161070d565b828114610e375760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b606482015260840161070d565b6000805b84811015610e7b57838382818110610e5557610e55612160565b9050602002013582610e679190612176565b915080610e7381612189565b915050610e3b565b5080610e8687610985565b1015610ed45760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c65740000000000604482015260640161070d565b60005b84811015610f3b57610f2887878784818110610ef557610ef5612160565b9050602002016020810190610f0a9190611e95565b868685818110610f1c57610f1c612160565b9050602002013561164b565b5080610f3381612189565b915050610ed7565b50505050505050565b6000546001600160a01b03163314610f6e5760405162461bcd60e51b815260040161070d906120a6565b601191909155601291909155601355565b600082610f8b83610878565b119392505050565b6000546001600160a01b03163314610fbd5760405162461bcd60e51b815260040161070d906120a6565b6001600160a01b0381166110225760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161070d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156110b6573d6000803e3d6000fd5b50565b600081848411156110dd5760405162461bcd60e51b815260040161070d9190611d80565b5060006110ea84866121a2565b95945050505050565b601f5460009060ff16156111135761110c84848461164b565b905061083a565b6001600160a01b03841660009081526001602052604090205460ff1615801561115557506001600160a01b03831660009081526001602052604090205460ff16155b156111aa57601d54600160a01b900460ff166111aa5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161070d565b6001600160a01b03841660009081526001602052604090205460ff161580156111dc57506001600160a01b0383163014155b80156111f357506001600160a01b03831661dead14155b801561120d5750601d546001600160a01b03848116911614155b801561122757506018546001600160a01b03848116911614155b801561124157506015546001600160a01b03848116911614155b801561126657506001600160a01b03831660009081526009602052604090205460ff16155b156112fc57600061127684610985565b6005549091506112868483612176565b11156112fa5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161070d565b505b611306848361171f565b61130e61178c565b1561131b5761131b6117e2565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526006909152919091205461136d9184906110b9565b6001600160a01b038516600090815260066020908152604080832093909355600890529081205460ff16806113ba57506001600160a01b03841660009081526008602052604090205460ff165b6113ce576113c9858486611bc9565b6113d0565b825b6001600160a01b0385166000908152600660205260409020549091506113f69082611551565b6001600160a01b038086166000818152600660205260409081902093909355915190871690600080516020612255833981519152906114389085815260200190565b60405180910390a3506001949350505050565b60008260000361145d575060006106dd565b600061146983856120f1565b9050826114768583612108565b1461083a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161070d565b600061083a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d52565b600061083a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110b9565b60008061155e8385612176565b90508381101561083a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161070d565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006115ed60646108b2601254600f5461144b90919063ffffffff16565b61160960646108b2601154600f5461144b90919063ffffffff16565b61162560646108b2601354600f5461144b90919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260069091529182205461169c9184906110b9565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546116cb9083611551565b6001600160a01b0380851660008181526006602052604090819020939093559151908616906000805160206122558339815191529061170d9086815260200190565b60405180910390a35060019392505050565b6004548111158061174857506001600160a01b03821660009081526009602052604090205460ff165b6117885760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161070d565b5050565b601d546000906001600160a01b031633148015906117ad5750601f5460ff16155b80156117c25750601d54600160a81b900460ff165b80156108e4575050601e5430600090815260066020526040902054101590565b601f805460ff19166001179055601954601a5460009161180191610f7f565b61180d57600a54611810565b60005b9050600061183460026108b2600f546108b286601e5461144b90919063ffffffff16565b9050600061184d82601e5461150f90919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061188757611887612160565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106118b8576118b8612160565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b81524792919091169063791ac947906119029086906000908790309042906004016121b5565b600060405180830381600087803b15801561191c57600080fd5b505af1158015611930573d6000803e3d6000fd5b505050506000611949824761150f90919063ffffffff16565b9050600061196461195b8860026114cd565b600f549061150f565b9050600061197960026108b28481878d61144b565b90506000611996836108b2600b548761144b90919063ffffffff16565b905060006119b3846108b2600d548861144b90919063ffffffff16565b905060006119d0856108b2600c548961144b90919063ffffffff16565b6015546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611a22576040519150601f19603f3d011682016040523d82523d6000602084013e611a27565b606091505b50506016546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611a77576040519150601f19603f3d011682016040523d82523d6000602084013e611a7c565b606091505b50506017546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611acc576040519150601f19603f3d011682016040523d82523d6000602084013e611ad1565b606091505b5060009250508b159050611bb157601b5460145460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611b4f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b749190612226565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601f805460ff1916905550505050505050505050565b601354601d54600091906001600160a01b0390811690841603611bef5750601154611c0a565b601d546001600160a01b0390811690861603611c0a57506012545b6000611c376010546064611c1e91906120f1565b6108b2846108a5600f548a61144b90919063ffffffff16565b90506000611c56600f546108b2600e548561144b90919063ffffffff16565b90506000611c64838361150f565b30600090815260066020526040902054909150611c819082611551565b30600090815260066020526040808220929092556018546001600160a01b031681522054611caf9083611551565b6018546001600160a01b0390811660009081526006602090815260409182902093909355518381523092918b1691600080516020612255833981519152910160405180910390a38115611d3c57600354611d09908361150f565b6003556040518281526000906001600160a01b038a16906000805160206122558339815191529060200160405180910390a35b611d46878461150f565b98975050505050505050565b60008183611d735760405162461bcd60e51b815260040161070d9190611d80565b5060006110ea8486612108565b600060208083528351808285015260005b81811015611dad57858101830151858201604001528201611d91565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611de557600080fd5b919050565b60008060408385031215611dfd57600080fd5b611e0683611dce565b946020939093013593505050565b80151581146110b657600080fd5b60008060408385031215611e3557600080fd5b8235611e0681611e14565b600080600060608486031215611e5557600080fd5b611e5e84611dce565b9250611e6c60208501611dce565b9150604084013590509250925092565b600060208284031215611e8e57600080fd5b5035919050565b600060208284031215611ea757600080fd5b61083a82611dce565b600080600080600060a08688031215611ec857600080fd5b611ed186611dce565b9450611edf60208701611dce565b9350611eed60408701611dce565b9250611efb60608701611dce565b9150611f0960808701611dce565b90509295509295909350565b60008060008060008060c08789031215611f2e57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008083601f840112611f6a57600080fd5b50813567ffffffffffffffff811115611f8257600080fd5b6020830191508360208260051b8501011115611f9d57600080fd5b9250929050565b600080600080600060608688031215611fbc57600080fd5b611fc586611dce565b9450602086013567ffffffffffffffff80821115611fe257600080fd5b611fee89838a01611f58565b9096509450604088013591508082111561200757600080fd5b5061201488828901611f58565b969995985093965092949392505050565b60008060006060848603121561203a57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561206457600080fd5b61206d83611dce565b915061207b60208401611dce565b90509250929050565b6000806040838503121561209757600080fd5b50508035926020909101359150565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106dd576106dd6120db565b60008261212557634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561213c57600080fd5b5051919050565b60006020828403121561215557600080fd5b815161083a81611e14565b634e487b7160e01b600052603260045260246000fd5b808201808211156106dd576106dd6120db565b60006001820161219b5761219b6120db565b5060010190565b818103818111156106dd576106dd6120db565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122055784516001600160a01b0316835293830193918301916001016121e0565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561223b57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204e36e8a515331a6ffec492be800d709f00fb86711a169a15030432713136445964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101d35760003560e01c806378109e54116100f8578063a9059cbb11610090578063a9059cbb1461053b578063b2bdfa7b1461055b578063b78e7edb1461057b578063cec10c111461059b578063dd62ed3e146105bb578063ded1e43814610601578063f2fde38b14610621578063f429389014610641578063f887ea401461065657600080fd5b806378109e541461041d5780637d1db4a514610433578063825287911461044957806386f6c3c114610469578063893d20e8146104895780638a8c523c146104bb5780638da5cb5b146104d057806395d89b41146104ee578063a8aa1b311461051b57600080fd5b806330c9a6a01161016b57806330c9a6a014610316578063313ce567146103365780635526566914610352578063571ac8b0146103675780635d0044ca146103875780636ddd1713146103a757806370a08231146103c8578063715018a6146103e857806377b54bad146103fd57600080fd5b80630445b667146101df57806306fdde031461020857806308fd3d0514610243578063095ea7b31461027457806318160ddd146102945780631df4ccfc146102a957806322c5f95c146102bf57806323b872dd146102e15780632688f5391461030157600080fd5b366101da57005b600080fd5b3480156101eb57600080fd5b506101f5601e5481565b6040519081526020015b60405180910390f35b34801561021457600080fd5b506040805180820190915260098152682733b6b49021b7b4b760b91b60208201525b6040516101ff9190611d80565b34801561024f57600080fd5b50601d5461026490600160a01b900460ff1681565b60405190151581526020016101ff565b34801561028057600080fd5b5061026461028f366004611dea565b610676565b3480156102a057600080fd5b506003546101f5565b3480156102b557600080fd5b506101f5600f5481565b3480156102cb57600080fd5b506102df6102da366004611e22565b6106e3565b005b3480156102ed57600080fd5b506102646102fc366004611e40565b61077f565b34801561030d57600080fd5b506102df610841565b34801561032257600080fd5b506101f5610331366004611e7c565b610878565b34801561034257600080fd5b50604051600981526020016101ff565b34801561035e57600080fd5b506101f56108b8565b34801561037357600080fd5b50610264610382366004611e95565b6108e9565b34801561039357600080fd5b506102df6103a2366004611e7c565b6108f7565b3480156103b357600080fd5b50601d5461026490600160a81b900460ff1681565b3480156103d457600080fd5b506101f56103e3366004611e95565b610985565b3480156103f457600080fd5b506102df6109a0565b34801561040957600080fd5b50610264610418366004611dea565b610a14565b34801561042957600080fd5b506101f560055481565b34801561043f57600080fd5b506101f560045481565b34801561045557600080fd5b506102df610464366004611eb0565b610b42565b34801561047557600080fd5b506102df610484366004611f15565b610c1a565b34801561049557600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101ff565b3480156104c757600080fd5b506102df610ce8565b3480156104dc57600080fd5b506000546001600160a01b03166104a3565b3480156104fa57600080fd5b506040805180820190915260048152634e474d4960e01b6020820152610236565b34801561052757600080fd5b50601d546104a3906001600160a01b031681565b34801561054757600080fd5b50610264610556366004611dea565b610d39565b34801561056757600080fd5b506000546104a3906001600160a01b031681565b34801561058757600080fd5b506102df610596366004611fa4565b610d46565b3480156105a757600080fd5b506102df6105b6366004612025565b610f44565b3480156105c757600080fd5b506101f56105d6366004612051565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561060d57600080fd5b5061026461061c366004612084565b610f7f565b34801561062d57600080fd5b506102df61063c366004611e95565b610f93565b34801561064d57600080fd5b506102df61107d565b34801561066257600080fd5b50601b546104a3906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106d19086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107165760405162461bcd60e51b815260040161070d906120a6565b60405180910390fd5b601d805460ff60a81b1916600160a81b84151581029190911791829055601e8390556040805184815260ff9290930491909116151560208301527f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60910160405180910390a15050565b6001600160a01b03831660009081526007602090815260408083203384529091528120546000191461082c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108079184906110b9565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6108378484846110f3565b90505b9392505050565b6000546001600160a01b0316331461086b5760405162461bcd60e51b815260040161070d906120a6565b6003546004819055600555565b60006106dd6108856108b8565b601d546108b2906108ab906002906108a5906001600160a01b0316610985565b9061144b565b859061144b565b906114cd565b60006108e46108c76000610985565b6108de6108d561dead610985565b6003549061150f565b9061150f565b905090565b60006106dd82600019610676565b6000546001600160a01b031633146109215760405162461bcd60e51b815260040161070d906120a6565b600181101561092f57600080fd5b6103e88160035461094091906120f1565b61094a9190612108565b60058190556040519081527f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be519060200160405180910390a150565b6001600160a01b031660009081526006602052604090205490565b6000546001600160a01b031633146109ca5760405162461bcd60e51b815260040161070d906120a6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600081600003610a89576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610a62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a86919061212a565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a160145460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610b1e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083a9190612143565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b815260040161070d906120a6565b601480546001600160a01b038781166001600160a01b031992831617909255601580548784169083168117909155601680548785169084168117909155601880548786169085168117909155601780549587169590941685179093556040805192835260208301949094529281019190915260608101919091527f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b159060800160405180910390a15050505050565b6000546001600160a01b03163314610c445760405162461bcd60e51b815260040161070d906120a6565b600a869055600d859055600b849055600c839055600e829055610c7582610c6f858188818c8c611551565b90611551565b600f556010819055610c88600282612108565b600f5410610cd85760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20353025000000604482015260640161070d565b610ce06115b0565b505050505050565b6000546001600160a01b03163314610d125760405162461bcd60e51b815260040161070d906120a6565b601d805460ff60a01b1916600160a01b1790556101f46012556103206011556103e8601355565b600061083a3384846110f3565b6000546001600160a01b03163314610d705760405162461bcd60e51b815260040161070d906120a6565b6101f58310610dd75760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b606482015260840161070d565b828114610e375760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b606482015260840161070d565b6000805b84811015610e7b57838382818110610e5557610e55612160565b9050602002013582610e679190612176565b915080610e7381612189565b915050610e3b565b5080610e8687610985565b1015610ed45760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c65740000000000604482015260640161070d565b60005b84811015610f3b57610f2887878784818110610ef557610ef5612160565b9050602002016020810190610f0a9190611e95565b868685818110610f1c57610f1c612160565b9050602002013561164b565b5080610f3381612189565b915050610ed7565b50505050505050565b6000546001600160a01b03163314610f6e5760405162461bcd60e51b815260040161070d906120a6565b601191909155601291909155601355565b600082610f8b83610878565b119392505050565b6000546001600160a01b03163314610fbd5760405162461bcd60e51b815260040161070d906120a6565b6001600160a01b0381166110225760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161070d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156110b6573d6000803e3d6000fd5b50565b600081848411156110dd5760405162461bcd60e51b815260040161070d9190611d80565b5060006110ea84866121a2565b95945050505050565b601f5460009060ff16156111135761110c84848461164b565b905061083a565b6001600160a01b03841660009081526001602052604090205460ff1615801561115557506001600160a01b03831660009081526001602052604090205460ff16155b156111aa57601d54600160a01b900460ff166111aa5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161070d565b6001600160a01b03841660009081526001602052604090205460ff161580156111dc57506001600160a01b0383163014155b80156111f357506001600160a01b03831661dead14155b801561120d5750601d546001600160a01b03848116911614155b801561122757506018546001600160a01b03848116911614155b801561124157506015546001600160a01b03848116911614155b801561126657506001600160a01b03831660009081526009602052604090205460ff16155b156112fc57600061127684610985565b6005549091506112868483612176565b11156112fa5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161070d565b505b611306848361171f565b61130e61178c565b1561131b5761131b6117e2565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526006909152919091205461136d9184906110b9565b6001600160a01b038516600090815260066020908152604080832093909355600890529081205460ff16806113ba57506001600160a01b03841660009081526008602052604090205460ff165b6113ce576113c9858486611bc9565b6113d0565b825b6001600160a01b0385166000908152600660205260409020549091506113f69082611551565b6001600160a01b038086166000818152600660205260409081902093909355915190871690600080516020612255833981519152906114389085815260200190565b60405180910390a3506001949350505050565b60008260000361145d575060006106dd565b600061146983856120f1565b9050826114768583612108565b1461083a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161070d565b600061083a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d52565b600061083a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110b9565b60008061155e8385612176565b90508381101561083a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161070d565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006115ed60646108b2601254600f5461144b90919063ffffffff16565b61160960646108b2601154600f5461144b90919063ffffffff16565b61162560646108b2601354600f5461144b90919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260069091529182205461169c9184906110b9565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546116cb9083611551565b6001600160a01b0380851660008181526006602052604090819020939093559151908616906000805160206122558339815191529061170d9086815260200190565b60405180910390a35060019392505050565b6004548111158061174857506001600160a01b03821660009081526009602052604090205460ff165b6117885760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161070d565b5050565b601d546000906001600160a01b031633148015906117ad5750601f5460ff16155b80156117c25750601d54600160a81b900460ff165b80156108e4575050601e5430600090815260066020526040902054101590565b601f805460ff19166001179055601954601a5460009161180191610f7f565b61180d57600a54611810565b60005b9050600061183460026108b2600f546108b286601e5461144b90919063ffffffff16565b9050600061184d82601e5461150f90919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061188757611887612160565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106118b8576118b8612160565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b81524792919091169063791ac947906119029086906000908790309042906004016121b5565b600060405180830381600087803b15801561191c57600080fd5b505af1158015611930573d6000803e3d6000fd5b505050506000611949824761150f90919063ffffffff16565b9050600061196461195b8860026114cd565b600f549061150f565b9050600061197960026108b28481878d61144b565b90506000611996836108b2600b548761144b90919063ffffffff16565b905060006119b3846108b2600d548861144b90919063ffffffff16565b905060006119d0856108b2600c548961144b90919063ffffffff16565b6015546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611a22576040519150601f19603f3d011682016040523d82523d6000602084013e611a27565b606091505b50506016546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611a77576040519150601f19603f3d011682016040523d82523d6000602084013e611a7c565b606091505b50506017546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611acc576040519150601f19603f3d011682016040523d82523d6000602084013e611ad1565b606091505b5060009250508b159050611bb157601b5460145460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611b4f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b749190612226565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601f805460ff1916905550505050505050505050565b601354601d54600091906001600160a01b0390811690841603611bef5750601154611c0a565b601d546001600160a01b0390811690861603611c0a57506012545b6000611c376010546064611c1e91906120f1565b6108b2846108a5600f548a61144b90919063ffffffff16565b90506000611c56600f546108b2600e548561144b90919063ffffffff16565b90506000611c64838361150f565b30600090815260066020526040902054909150611c819082611551565b30600090815260066020526040808220929092556018546001600160a01b031681522054611caf9083611551565b6018546001600160a01b0390811660009081526006602090815260409182902093909355518381523092918b1691600080516020612255833981519152910160405180910390a38115611d3c57600354611d09908361150f565b6003556040518281526000906001600160a01b038a16906000805160206122558339815191529060200160405180910390a35b611d46878461150f565b98975050505050505050565b60008183611d735760405162461bcd60e51b815260040161070d9190611d80565b5060006110ea8486612108565b600060208083528351808285015260005b81811015611dad57858101830151858201604001528201611d91565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611de557600080fd5b919050565b60008060408385031215611dfd57600080fd5b611e0683611dce565b946020939093013593505050565b80151581146110b657600080fd5b60008060408385031215611e3557600080fd5b8235611e0681611e14565b600080600060608486031215611e5557600080fd5b611e5e84611dce565b9250611e6c60208501611dce565b9150604084013590509250925092565b600060208284031215611e8e57600080fd5b5035919050565b600060208284031215611ea757600080fd5b61083a82611dce565b600080600080600060a08688031215611ec857600080fd5b611ed186611dce565b9450611edf60208701611dce565b9350611eed60408701611dce565b9250611efb60608701611dce565b9150611f0960808701611dce565b90509295509295909350565b60008060008060008060c08789031215611f2e57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008083601f840112611f6a57600080fd5b50813567ffffffffffffffff811115611f8257600080fd5b6020830191508360208260051b8501011115611f9d57600080fd5b9250929050565b600080600080600060608688031215611fbc57600080fd5b611fc586611dce565b9450602086013567ffffffffffffffff80821115611fe257600080fd5b611fee89838a01611f58565b9096509450604088013591508082111561200757600080fd5b5061201488828901611f58565b969995985093965092949392505050565b60008060006060848603121561203a57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561206457600080fd5b61206d83611dce565b915061207b60208401611dce565b90509250929050565b6000806040838503121561209757600080fd5b50508035926020909101359150565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106dd576106dd6120db565b60008261212557634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561213c57600080fd5b5051919050565b60006020828403121561215557600080fd5b815161083a81611e14565b634e487b7160e01b600052603260045260246000fd5b808201808211156106dd576106dd6120db565b60006001820161219b5761219b6120db565b5060010190565b818103818111156106dd576106dd6120db565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122055784516001600160a01b0316835293830193918301916001016121e0565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561223b57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204e36e8a515331a6ffec492be800d709f00fb86711a169a15030432713136445964736f6c63430008130033

Deployed Bytecode Sourcemap

5092:14066:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7423:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7423:55:0;;;;;;;;8813:80;;;;;;;;;;-1:-1:-1;8885:5:0;;;;;;;;;;;;-1:-1:-1;;;8885:5:0;;;;8813:80;;;;;;;:::i;7340:31::-;;;;;;;;;;-1:-1:-1;7340:31:0;;;;-1:-1:-1;;;7340:31:0;;;;;;;;;914:14:1;;907:22;889:41;;877:2;862:18;7340:31:0;749:187:1;9235:216:0;;;;;;;;;;-1:-1:-1;9235:216:0;;;;;:::i;:::-;;:::i;8543:88::-;;;;;;;;;;-1:-1:-1;8616:12:0;;8543:88;;6709:93;;;;;;;;;;;;;;;;18492:215;;;;;;;;;;-1:-1:-1;18492:215:0;;;;;:::i;:::-;;:::i;:::-;;9753:370;;;;;;;;;;-1:-1:-1;9753:370:0;;;;;:::i;:::-;;:::i;10391:140::-;;;;;;;;;;;;;:::i;18858:149::-;;;;;;;;;;-1:-1:-1;18858:149:0;;;;;:::i;:::-;;:::i;8637:80::-;;;;;;;;;;-1:-1:-1;8637:80:0;;5451:1;2475:36:1;;2463:2;2448:18;8637:80:0;2333:184:1;19019:132:0;;;;;;;;;;;;;:::i;9459:122::-;;;;;;;;;;-1:-1:-1;9459:122:0;;;;;:::i;:::-;;:::i;10135:246::-;;;;;;;;;;-1:-1:-1;10135:246:0;;;;;:::i;:::-;;:::i;7386:30::-;;;;;;;;;;-1:-1:-1;7386:30:0;;;;-1:-1:-1;;;7386:30:0;;;;;;8983:105;;;;;;;;;;-1:-1:-1;8983:105:0;;;;;:::i;:::-;;:::i;2006:148::-;;;;;;;;;;;;;:::i;13773:338::-;;;;;;;;;;-1:-1:-1;13773:338:0;;;;;:::i;:::-;;:::i;6212:61::-;;;;;;;;;;;;;;;;6147:58;;;;;;;;;;;;;;;;17937:547;;;;;;;;;;-1:-1:-1;17937:547:0;;;;;:::i;:::-;;:::i;16731:585::-;;;;;;;;;;-1:-1:-1;16731:585:0;;;;;:::i;:::-;;:::i;8899:78::-;;;;;;;;;;-1:-1:-1;8951:7:0;1857:6;-1:-1:-1;;;;;1857:6:0;8899:78;;;-1:-1:-1;;;;;3894:32:1;;;3876:51;;3864:2;3849:18;8899:78:0;3730:203:1;14386:199:0;;;;;;;;;;;;;:::i;1792:79::-;;;;;;;;;;-1:-1:-1;1830:7:0;1857:6;-1:-1:-1;;;;;1857:6:0;1792:79;;8723:84;;;;;;;;;;-1:-1:-1;8797:7:0;;;;;;;;;;;;-1:-1:-1;;;8797:7:0;;;;8723:84;;7308:19;;;;;;;;;;-1:-1:-1;7308:19:0;;;;-1:-1:-1;;;;;7308:19:0;;;9589:156;;;;;;;;;;-1:-1:-1;9589:156:0;;;;;:::i;:::-;;:::i;1412:21::-;;;;;;;;;;-1:-1:-1;1412:21:0;;;;-1:-1:-1;;;;;1412:21:0;;;17324:605;;;;;;;;;;-1:-1:-1;17324:605:0;;;;;:::i;:::-;;:::i;14119:252::-;;;;;;;;;;-1:-1:-1;14119:252:0;;;;;:::i;:::-;;:::i;9094:133::-;;;;;;;;;;-1:-1:-1;9094:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9196:19:0;;;9178:7;9196:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9094:133;18715:135;;;;;;;;;;-1:-1:-1;18715:135:0;;;;;:::i;:::-;;:::i;2162:244::-;;;;;;;;;;-1:-1:-1;2162:244:0;;;;;:::i;:::-;;:::i;13634:132::-;;;;;;;;;;;;;:::i;7238:24::-;;;;;;;;;;-1:-1:-1;7238:24:0;;;;-1:-1:-1;;;;;7238:24:0;;;9235:216;9339:10;9310:4;9327:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9327:32:0;;;;;;;;;;:41;;;9384:37;9310:4;;9327:32;;9384:37;;;;9362:6;160:25:1;;148:2;133:18;;14:177;9384:37:0;;;;;;;;-1:-1:-1;9439:4:0;9235:216;;;;;:::o;18492:215::-;1919:6;;-1:-1:-1;;;;;1919:6:0;1229:10;1919:22;1911:67;;;;-1:-1:-1;;;1911:67:0;;;;;;;:::i;:::-;;;;;;;;;18587:11:::1;:22:::0;;-1:-1:-1;;;;18587:22:0::1;-1:-1:-1::0;;;18587:22:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;18620:13:::1;:23:::0;;;18659:40:::1;::::0;;6756:25:1;;;18587:22:0::1;18687:11:::0;;;::::1;::::0;;;::::1;6824:14:1::0;6817:22;6812:2;6797:18;;6790:50;18659:40:0::1;::::0;6729:18:1;18659:40:0::1;;;;;;;18492:215:::0;;:::o;9753:370::-;-1:-1:-1;;;;;9873:19:0;;9853:4;9873:19;;;:11;:19;;;;;;;;9893:10;9873:31;;;;;;;;-1:-1:-1;;9873:52:0;9870:186;;9975:69;;;;;;;;;;;-1:-1:-1;;;9975:69:0;;;;;;;;-1:-1:-1;;;;;9975:19:0;;-1:-1:-1;9975:19:0;;;:11;:19;;;;;9995:10;9975:31;;;;;;;;;;:69;;10011:6;;9975:35;:69::i;:::-;-1:-1:-1;;;;;9941:19:0;;;;;;:11;:19;;;;;;;;9961:10;9941:31;;;;;;;:103;9870:186;10075:40;10089:6;10097:9;10108:6;10075:13;:40::i;:::-;10068:47;;9753:370;;;;;;:::o;10391:140::-;1919:6;;-1:-1:-1;;;;;1919:6:0;1229:10;1919:22;1911:67;;;;-1:-1:-1;;;1911:67:0;;;;;;;:::i;:::-;10466:12:::1;::::0;10451::::1;:27:::0;;;10493:15:::1;:30:::0;10391:140::o;18858:149::-;18918:7;18945:54;18986:12;:10;:12::i;:::-;18968:4;;18945:36;;18958:22;;18978:1;;18958:15;;-1:-1:-1;;;;;18968:4:0;18958:9;:15::i;:::-;:19;;:22::i;:::-;18945:8;;:12;:36::i;:::-;:40;;:54::i;19019:132::-;19062:7;19089:54;19127:15;5286:42;19127:9;:15::i;:::-;19089:33;19106:15;5213:42;19106:9;:15::i;:::-;19089:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19082:61;;19019:132;:::o;9459:122::-;9514:4;9538:35;9546:7;-1:-1:-1;;9538:7:0;:35::i;10135:246::-;1919:6;;-1:-1:-1;;;;;1919:6:0;1229:10;1919:22;1911:67;;;;-1:-1:-1;;;1911:67:0;;;;;;;:::i;:::-;10238:1:::1;10220:14;:19;;10212:28;;;::::0;::::1;;10305:4;10286:14;10271:12;;:29;;;;:::i;:::-;10270:39;;;;:::i;:::-;10252:15;:57:::0;;;10325:30:::1;::::0;160:25:1;;;10325:30:0::1;::::0;148:2:1;133:18;10325:30:0::1;;;;;;;10135:246:::0;:::o;8983:105::-;-1:-1:-1;;;;;9067:18:0;9049:7;9067:18;;;:9;:18;;;;;;;8983:105::o;2006:148::-;1919:6;;-1:-1:-1;;;;;1919:6:0;1229:10;1919:22;1911:67;;;;-1:-1:-1;;;1911:67:0;;;;;;;:::i;:::-;2113:1:::1;2097:6:::0;;2076:40:::1;::::0;-1:-1:-1;;;;;2097:6:0;;::::1;::::0;2076:40:::1;::::0;2113:1;;2076:40:::1;2144:1;2127:19:::0;;-1:-1:-1;;;;;;2127:19:0::1;::::0;;2006:148::o;13773:338::-;13854:12;13887:6;13897:1;13887:11;13884:95;;13923:44;;-1:-1:-1;;;13923:44:0;;13961:4;13923:44;;;3876:51:1;-1:-1:-1;;;;;13923:29:0;;;;;3849:18:1;;13923:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13914:53;;13884:95;13994:32;;;-1:-1:-1;;;;;7759:32:1;;7741:51;;7823:2;7808:18;;7801:34;;;13994:32:0;;7714:18:1;13994:32:0;;;;;;;14073:21;;14044:59;;-1:-1:-1;;;14044:59:0;;-1:-1:-1;;;;;14073:21:0;;;14044:59;;;7741:51:1;7808:18;;;7801:34;;;14044:28:0;;;;;;7714:18:1;;14044:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17937:547::-;1919:6;;-1:-1:-1;;;;;1919:6:0;1229:10;1919:22;1911:67;;;;-1:-1:-1;;;1911:67:0;;;;;;;:::i;:::-;18130:21:::1;:46:::0;;-1:-1:-1;;;;;18130:46:0;;::::1;-1:-1:-1::0;;;;;;18130:46:0;;::::1;;::::0;;;18187:20:::1;:44:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;18242:14:::1;:32:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;18285:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;18330:18:::1;:40:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;18388:88:::1;::::0;;8365:34:1;;;8430:2;8415:18;;8408:43;;;;8467:18;;;8460:43;;;;8534:2;8519:18;;8512:43;;;;18388:88:0::1;::::0;8314:3:1;8299:19;18388:88:0::1;;;;;;;17937:547:::0;;;;;:::o;16731:585::-;1919:6;;-1:-1:-1;;;;;1919:6:0;1229:10;1919:22;1911:67;;;;-1:-1:-1;;;1911:67:0;;;;;;;:::i;:::-;16905:12:::1;:28:::0;;;16944:10:::1;:24:::0;;;16979:12:::1;:28:::0;;;17018:6:::1;:16:::0;;;17045:7:::1;:18:::0;;;17085:76:::1;17055:8:::0;17085:62:::1;17027:7:::0;17085:62;16994:13;17085:62;16920:13;16957:11;17085:17:::1;:30::i;:::-;:34:::0;::::1;:49::i;:76::-;17074:8;:87:::0;17172:14:::1;:32:::0;;;17234:18:::1;17251:1;17189:15:::0;17234:18:::1;:::i;:::-;17223:8;;:29;17215:71;;;::::0;-1:-1:-1;;;17215:71:0;;8768:2:1;17215:71:0::1;::::0;::::1;8750:21:1::0;8807:2;8787:18;;;8780:30;8846:31;8826:18;;;8819:59;8895:18;;17215:71:0::1;8566:353:1::0;17215:71:0::1;17298:10;:8;:10::i;:::-;16731:585:::0;;;;;;:::o;14386:199::-;1919:6;;-1:-1:-1;;;;;1919:6:0;1229:10;1919:22;1911:67;;;;-1:-1:-1;;;1911:67:0;;;;;;;:::i;:::-;14439:11:::1;:18:::0;;-1:-1:-1;;;;14439:18:0::1;-1:-1:-1::0;;;14439:18:0::1;::::0;;14481:3:::1;14468:10;:16:::0;14509:3:::1;14495:11;:17:::0;14541:4:::1;14523:15;:22:::0;14386:199::o;9589:156::-;9669:4;9693:44;9707:10;9719:9;9730:6;9693:13;:44::i;17324:605::-;1919:6;;-1:-1:-1;;;;;1919:6:0;1229:10;1919:22;1911:67;;;;-1:-1:-1;;;1911:67:0;;;;;;;:::i;:::-;17472:3:::1;17453:22:::0;::::1;17445:79;;;::::0;-1:-1:-1;;;17445:79:0;;9126:2:1;17445:79:0::1;::::0;::::1;9108:21:1::0;9165:2;9145:18;;;9138:30;9204:34;9184:18;;;9177:62;-1:-1:-1;;;9255:18:1;;;9248:43;9308:19;;17445:79:0::1;8924:409:1::0;17445:79:0::1;17539:33:::0;;::::1;17531:85;;;::::0;-1:-1:-1;;;17531:85:0;;9540:2:1;17531:85:0::1;::::0;::::1;9522:21:1::0;9579:2;9559:18;;;9552:30;9618:34;9598:18;;;9591:62;-1:-1:-1;;;9669:18:1;;;9662:38;9717:19;;17531:85:0::1;9338:404:1::0;17531:85:0::1;17625:15;17657:6:::0;17653:88:::1;17667:20:::0;;::::1;17653:88;;;17724:6;;17731:1;17724:9;;;;;;;:::i;:::-;;;;;;;17714:7;:19;;;;:::i;:::-;17704:29:::0;-1:-1:-1;17689:3:0;::::1;::::0;::::1;:::i;:::-;;;;17653:88;;;;17776:7;17757:15;17767:4;17757:9;:15::i;:::-;:26;;17749:66;;;::::0;-1:-1:-1;;;17749:66:0;;10351:2:1;17749:66:0::1;::::0;::::1;10333:21:1::0;10390:2;10370:18;;;10363:30;10429:29;10409:18;;;10402:57;10476:18;;17749:66:0::1;10149:351:1::0;17749:66:0::1;17828:6;17824:102;17838:20:::0;;::::1;17824:102;;;17875:43;17890:4;17895:9;;17905:1;17895:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17908:6;;17915:1;17908:9;;;;;;;:::i;:::-;;;;;;;17875:14;:43::i;:::-;-1:-1:-1::0;17860:3:0;::::1;::::0;::::1;:::i;:::-;;;;17824:102;;;;17436:493;17324:605:::0;;;;;:::o;14119:252::-;1919:6;;-1:-1:-1;;;;;1919:6:0;1229:10;1919:22;1911:67;;;;-1:-1:-1;;;1911:67:0;;;;;;;:::i;:::-;14238:11:::1;:28:::0;;;;14277:10:::1;:26:::0;;;;14314:15:::1;:33:::0;14119:252::o;18715:135::-;18789:4;18837:5;18813:21;18825:8;18813:11;:21::i;:::-;:29;;18715:135;-1:-1:-1;;;18715:135:0:o;2162:244::-;1919:6;;-1:-1:-1;;;;;1919:6:0;1229:10;1919:22;1911:67;;;;-1:-1:-1;;;1911:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2251:22:0;::::1;2243:73;;;::::0;-1:-1:-1;;;2243:73:0;;10707:2:1;2243:73:0::1;::::0;::::1;10689:21:1::0;10746:2;10726:18;;;10719:30;10785:34;10765:18;;;10758:62;-1:-1:-1;;;10836:18:1;;;10829:36;10882:19;;2243:73:0::1;10505:402:1::0;2243:73:0::1;2353:6;::::0;;2332:38:::1;::::0;-1:-1:-1;;;;;2332:38:0;;::::1;::::0;2353:6;::::1;::::0;2332:38:::1;::::0;::::1;2381:6;:17:::0;;-1:-1:-1;;;;;;2381:17:0::1;-1:-1:-1::0;;;;;2381:17:0;;;::::1;::::0;;;::::1;::::0;;2162:244::o;13634:132::-;13690:21;;13682:62;;-1:-1:-1;;;;;13690:21:0;;;;13722;13682:62;;;;;13690:21;13682:62;13690:21;13682:62;13722:21;13690;13682:62;;;;;;;;;;;;;;;;;;;;;13634:132::o;4304:192::-;4390:7;4426:12;4418:6;;;;4410:29;;;;-1:-1:-1;;;4410:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4450:9:0;4462:5;4466:1;4462;:5;:::i;:::-;4450:17;4304:192;-1:-1:-1;;;;;4304:192:0:o;10547:1237::-;10659:6;;10639:4;;10659:6;;10656:63;;;10675:41;10690:6;10698:9;10709:6;10675:14;:41::i;:::-;10668:48;;;;10656:63;-1:-1:-1;;;;;10735:22:0;;;;;;:14;:22;;;;;;;;10734:23;:53;;;;-1:-1:-1;;;;;;10762:25:0;;;;;;:14;:25;;;;;;;;10761:26;10734:53;10731:139;;;10811:11;;-1:-1:-1;;;10811:11:0;;;;10803:43;;;;-1:-1:-1;;;10803:43:0;;11247:2:1;10803:43:0;;;11229:21:1;11286:2;11266:18;;;11259:30;-1:-1:-1;;;11305:18:1;;;11298:50;11365:18;;10803:43:0;11045:344:1;10803:43:0;-1:-1:-1;;;;;10912:22:0;;;;;;:14;:22;;;;;;;;10911:23;:53;;;;-1:-1:-1;;;;;;10938:26:0;;10959:4;10938:26;;10911:53;:84;;;;-1:-1:-1;;;;;;10969:26:0;;5213:42;10969:26;;10911:84;:105;;;;-1:-1:-1;11012:4:0;;-1:-1:-1;;;;;10999:17:0;;;11012:4;;10999:17;;10911:105;:137;;;;-1:-1:-1;11033:15:0;;-1:-1:-1;;;;;11020:28:0;;;11033:15;;11020:28;;10911:137;:174;;;;-1:-1:-1;11065:20:0;;-1:-1:-1;;;;;11052:33:0;;;11065:20;;11052:33;;10911:174;:207;;;;-1:-1:-1;;;;;;11090:28:0;;;;;;:17;:28;;;;;;;;11089:29;10911:207;10907:399;;;11134:18;11155:20;11165:9;11155;:20::i;:::-;11223:15;;11134:41;;-1:-1:-1;11199:19:0;11212:6;11134:41;11199:19;:::i;:::-;11198:40;;11190:114;;;;-1:-1:-1;;;11190:114:0;;11596:2:1;11190:114:0;;;11578:21:1;11635:2;11615:18;;;11608:30;11674:34;11654:18;;;11647:62;11745:32;11725:18;;;11718:60;11795:19;;11190:114:0;11394:426:1;11190:114:0;11119:187;10907:399;11318:28;11331:6;11339;11318:12;:28::i;:::-;11363:16;:14;:16::i;:::-;11360:35;;;11382:10;:8;:10::i;:::-;11425:53;;;;;;;;;;;-1:-1:-1;;;11425:53:0;;;;;;;;-1:-1:-1;;;;;11425:17:0;;-1:-1:-1;11425:17:0;;;:9;:17;;;;;;;;:53;;11447:6;;11425:21;:53::i;:::-;-1:-1:-1;;;;;11405:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11517:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;11545:27:0;;;;;;:16;:27;;;;;;;;11517:55;11516:103;;11585:34;11593:6;11601;11609:9;11585:7;:34::i;:::-;11516:103;;;11576:6;11516:103;-1:-1:-1;;;;;11653:20:0;;;;;;:9;:20;;;;;;11491:128;;-1:-1:-1;11653:40:0;;11491:128;11653:24;:40::i;:::-;-1:-1:-1;;;;;11630:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11711:43;;;;;;-1:-1:-1;;;;;;;;;;;11711:43:0;;;11739:14;160:25:1;;148:2;133:18;;14:177;11711:43:0;;;;;;;;-1:-1:-1;11772:4:0;;10547:1237;-1:-1:-1;;;;10547:1237:0:o;4502:250::-;4560:7;4584:1;4589;4584:6;4580:47;;-1:-1:-1;4614:1:0;4607:8;;4580:47;4639:9;4651:5;4655:1;4651;:5;:::i;:::-;4639:17;-1:-1:-1;4684:1:0;4675:5;4679:1;4639:17;4675:5;:::i;:::-;:10;4667:56;;;;-1:-1:-1;;;4667:56:0;;12027:2:1;4667:56:0;;;12009:21:1;12066:2;12046:18;;;12039:30;12105:34;12085:18;;;12078:62;-1:-1:-1;;;12156:18:1;;;12149:31;12197:19;;4667:56:0;11825:397:1;4758:132:0;4816:7;4843:39;4847:1;4850;4843:39;;;;;;;;;;;;;;;;;:3;:39::i;4162:136::-;4220:7;4247:43;4251:1;4254;4247:43;;;;;;;;;;;;;;;;;:3;:43::i;3975:181::-;4033:7;;4065:5;4069:1;4065;:5;:::i;:::-;4053:17;;4094:1;4089;:6;;4081:46;;;;-1:-1:-1;;;4081:46:0;;12429:2:1;4081:46:0;;;12411:21:1;12468:2;12448:18;;;12441:30;12507:29;12487:18;;;12480:57;12554:18;;4081:46:0;12227:351:1;16478:241:0;16531:180;16546:33;16575:3;16546:24;16559:10;;16546:8;;:12;;:24;;;;:::i;:33::-;16601:34;16631:3;16601:25;16614:11;;16601:8;;:12;;:25;;;;:::i;:34::-;16657:38;16691:3;16657:29;16670:15;;16657:8;;:12;;:29;;;;:::i;:38::-;16531:180;;;12803:4:1;12791:17;;;12773:36;;12845:17;;;12840:2;12825:18;;12818:45;12899:17;;12879:18;;;12872:45;16531:180:0;;;;;;12761:2:1;16531:180:0;;;16478:241::o;11793:330::-;11923:53;;;;;;;;;;;-1:-1:-1;;;11923:53:0;;;;;;;;-1:-1:-1;;;;;11923:17:0;;11886:4;11923:17;;;:9;:17;;;;;;;:53;;11945:6;;11923:21;:53::i;:::-;-1:-1:-1;;;;;11903:17:0;;;;;;;:9;:17;;;;;;:73;;;;12010:20;;;;;;;:32;;12035:6;12010:24;:32::i;:::-;-1:-1:-1;;;;;11987:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12058:35;;;;;;-1:-1:-1;;;;;;;;;;;12058:35:0;;;12086:6;160:25:1;;148:2;133:18;;14:177;12058:35:0;;;;;;;;-1:-1:-1;12111:4:0;11793:330;;;;;:::o;12131:168::-;12228:12;;12218:6;:22;;:51;;;-1:-1:-1;;;;;;12244:25:0;;;;;;:17;:25;;;;;;;;12218:51;12210:81;;;;-1:-1:-1;;;12210:81:0;;13130:2:1;12210:81:0;;;13112:21:1;13169:2;13149:18;;;13142:30;-1:-1:-1;;;13188:18:1;;;13181:47;13245:18;;12210:81:0;12928:341:1;12210:81:0;12131:168;;:::o;13424:197::-;13511:4;;13473;;-1:-1:-1;;;;;13511:4:0;13497:10;:18;;;;:38;;-1:-1:-1;13529:6:0;;;;13528:7;13497:38;:62;;;;-1:-1:-1;13548:11:0;;-1:-1:-1;;;13548:11:0;;;;13497:62;:116;;;;-1:-1:-1;;13600:13:0;;13590:4;13572:24;;;;:9;:24;;;;;;:41;;;13424:197::o;14608:1854::-;7526:6;:13;;-1:-1:-1;;7526:13:0;7535:4;7526:13;;;14698:8:::1;::::0;14708:19:::1;::::0;7526:6;;14687:41:::1;::::0;:10:::1;:41::i;:::-;:60;;14735:12;;14687:60;;;14731:1;14687:60;14657:90;;14758:23;14784:59;14841:1;14784:52;14827:8;;14784:38;14802:19;14784:13;;:17;;:38;;;;:::i;:59::-;14758:85;;14854:20;14877:34;14895:15;14877:13;;:17;;:34;;;;:::i;:::-;14948:16;::::0;;14962:1:::1;14948:16:::0;;;;;::::1;::::0;;14854:57;;-1:-1:-1;14924:21:0::1;::::0;14948:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14948:16:0::1;14924:40;;14993:4;14975;14980:1;14975:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14975:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15019:4:::1;::::0;15009:7;;15019:4;::::1;::::0;15009;;15019;;15009:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15009:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15094:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15094:188:0;;15060:21:::1;::::0;15094:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15166:12;;15036:21:::1;::::0;15209:4;;15236::::1;::::0;15256:15:::1;::::0;15094:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15295:17;15315:40;15341:13;15315:21;:25;;:40;;;;:::i;:::-;15295:60:::0;-1:-1:-1;15368:19:0::1;15390:40;15403:26;:19:::0;15427:1:::1;15403:23;:26::i;:::-;15390:8;::::0;;:12:::1;:40::i;:::-;15368:62:::0;-1:-1:-1;15451:26:0::1;15480:58;15536:1;15480:51;15368:62:::0;15480:51;:9;15494:19;15480:13:::1;:34::i;:58::-;15451:87;;15549:26;15578:44;15610:11;15578:27;15592:12;;15578:9;:13;;:27;;;;:::i;:44::-;15549:73;;15633:24;15660:42;15690:11;15660:25;15674:10;;15660:9;:13;;:25;;;;:::i;:42::-;15633:69;;15713:20;15736:38;15762:11;15736:21;15750:6;;15736:9;:13;;:21;;;;:::i;:38::-;15816:20;::::0;15808:65:::1;::::0;15713:61;;-1:-1:-1;15788:15:0::1;::::0;-1:-1:-1;;;;;15816:20:0;;::::1;::::0;15850:18;;15788:15;15808:65;15788:15;15808:65;15850:18;15816:20;15808:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15908:14:0::1;::::0;15900:53:::1;::::0;15787:86;;-1:-1:-1;;;;;;15908:14:0::1;::::0;15936:12;;15900:53:::1;::::0;;;15936:12;15908:14;15900:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15988:18:0::1;::::0;15980:61:::1;::::0;15884:69;;-1:-1:-1;;;;;;15988:18:0::1;::::0;16020:16;;15980:61:::1;::::0;;;16020:16;15988:18;15980:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16075:5:0::1;::::0;-1:-1:-1;;16096:19:0;;;-1:-1:-1;16093:362:0::1;;16131:6;::::0;16305:21:::1;::::0;16131:244:::1;::::0;-1:-1:-1;;;16131:244:0;;16207:4:::1;16131:244;::::0;::::1;14942:34:1::0;14992:18;;;14985:34;;;16131:6:0::1;15035:18:1::0;;;15028:34;;;15078:18;;;15071:34;-1:-1:-1;;;;;16305:21:0;;::::1;15121:19:1::0;;;15114:44;16345:15:0::1;15174:19:1::0;;;15167:35;16131:6:0;::::1;::::0;:22:::1;::::0;16161:18;;14876:19:1;;16131:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16395:48:0::1;::::0;;15698:25:1;;;15754:2;15739:18;;15732:34;;;16395:48:0::1;::::0;-1:-1:-1;15671:18:1;16395:48:0::1;;;;;;;16093:362;-1:-1:-1::0;;7544:6:0;:14;;-1:-1:-1;;7544:14:0;;;-1:-1:-1;;;;;;;;;;14608:1854:0:o;12434:982::-;12568:15;;12610:4;;12520:7;;12568:15;-1:-1:-1;;;;;12610:4:0;;;12597:17;;;;12594:142;;-1:-1:-1;12641:11:0;;12594:142;;;12683:4;;-1:-1:-1;;;;;12683:4:0;;;12673:14;;;;12670:66;;-1:-1:-1;12714:10:0;;12670:66;12748:17;12768:59;12806:14;;12823:3;12806:20;;;;:::i;:::-;12768:33;12793:7;12768:20;12779:8;;12768:6;:10;;:20;;;;:::i;:59::-;12748:79;;12838:18;12859:36;12886:8;;12859:22;12873:7;;12859:9;:13;;:22;;;;:::i;:36::-;12838:57;-1:-1:-1;12906:22:0;12931:25;:9;12838:57;12931:13;:25::i;:::-;13012:4;12994:24;;;;:9;:24;;;;;;12906:50;;-1:-1:-1;12994:44:0;;12906:50;12994:28;:44::i;:::-;12985:4;12967:24;;;;:9;:24;;;;;;:71;;;;13088:15;;-1:-1:-1;;;;;13088:15:0;13078:26;;;;:42;;13109:10;13078:30;:42::i;:::-;13059:15;;-1:-1:-1;;;;;13059:15:0;;;13049:26;;;;:9;:26;;;;;;;;;:71;;;;13136:47;160:25:1;;;13161:4:0;;13136:47;;;;-1:-1:-1;;;;;;;;;;;13136:47:0;133:18:1;13136:47:0;;;;;;;13217:14;;13214:154;;13262:12;;:28;;13279:10;13262:16;:28::i;:::-;13247:12;:43;13310:34;;160:25:1;;;5286:42:0;;-1:-1:-1;;;;;13310:34:0;;;-1:-1:-1;;;;;;;;;;;13310:34:0;148:2:1;133:18;13310:34:0;;;;;;;13214:154;13387:21;:6;13398:9;13387:10;:21::i;:::-;13380:28;12434:982;-1:-1:-1;;;;;;;;12434:982:0:o;4896:189::-;4982:7;5017:12;5010:5;5002:28;;;;-1:-1:-1;;;5002:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5041:9:0;5053:5;5057:1;5053;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;941:173::-;1009:20;;-1:-1:-1;;;;;1058:31:1;;1048:42;;1038:70;;1104:1;1101;1094:12;1038:70;941:173;;;:::o;1119:254::-;1187:6;1195;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1287:29;1306:9;1287:29;:::i;:::-;1277:39;1363:2;1348:18;;;;1335:32;;-1:-1:-1;;;1119:254:1:o;1378:118::-;1464:5;1457:13;1450:21;1443:5;1440:32;1430:60;;1486:1;1483;1476:12;1501:309;1566:6;1574;1627:2;1615:9;1606:7;1602:23;1598:32;1595:52;;;1643:1;1640;1633:12;1595:52;1682:9;1669:23;1701:28;1723:5;1701:28;:::i;1815:328::-;1892:6;1900;1908;1961:2;1949:9;1940:7;1936:23;1932:32;1929:52;;;1977:1;1974;1967:12;1929:52;2000:29;2019:9;2000:29;:::i;:::-;1990:39;;2048:38;2082:2;2071:9;2067:18;2048:38;:::i;:::-;2038:48;;2133:2;2122:9;2118:18;2105:32;2095:42;;1815:328;;;;;:::o;2148:180::-;2207:6;2260:2;2248:9;2239:7;2235:23;2231:32;2228:52;;;2276:1;2273;2266:12;2228:52;-1:-1:-1;2299:23:1;;2148:180;-1:-1:-1;2148:180:1:o;2522:186::-;2581:6;2634:2;2622:9;2613:7;2609:23;2605:32;2602:52;;;2650:1;2647;2640:12;2602:52;2673:29;2692:9;2673:29;:::i;2713:484::-;2808:6;2816;2824;2832;2840;2893:3;2881:9;2872:7;2868:23;2864:33;2861:53;;;2910:1;2907;2900:12;2861:53;2933:29;2952:9;2933:29;:::i;:::-;2923:39;;2981:38;3015:2;3004:9;3000:18;2981:38;:::i;:::-;2971:48;;3038:38;3072:2;3061:9;3057:18;3038:38;:::i;:::-;3028:48;;3095:38;3129:2;3118:9;3114:18;3095:38;:::i;:::-;3085:48;;3152:39;3186:3;3175:9;3171:19;3152:39;:::i;:::-;3142:49;;2713:484;;;;;;;;:::o;3202:523::-;3306:6;3314;3322;3330;3338;3346;3399:3;3387:9;3378:7;3374:23;3370:33;3367:53;;;3416:1;3413;3406:12;3367:53;-1:-1:-1;;3439:23:1;;;3509:2;3494:18;;3481:32;;-1:-1:-1;3560:2:1;3545:18;;3532:32;;3611:2;3596:18;;3583:32;;-1:-1:-1;3662:3:1;3647:19;;3634:33;;-1:-1:-1;3714:3:1;3699:19;3686:33;;-1:-1:-1;3202:523:1;-1:-1:-1;3202:523:1:o;3938:367::-;4001:8;4011:6;4065:3;4058:4;4050:6;4046:17;4042:27;4032:55;;4083:1;4080;4073:12;4032:55;-1:-1:-1;4106:20:1;;4149:18;4138:30;;4135:50;;;4181:1;4178;4171:12;4135:50;4218:4;4210:6;4206:17;4194:29;;4278:3;4271:4;4261:6;4258:1;4254:14;4246:6;4242:27;4238:38;4235:47;4232:67;;;4295:1;4292;4285:12;4232:67;3938:367;;;;;:::o;4310:847::-;4441:6;4449;4457;4465;4473;4526:2;4514:9;4505:7;4501:23;4497:32;4494:52;;;4542:1;4539;4532:12;4494:52;4565:29;4584:9;4565:29;:::i;:::-;4555:39;;4645:2;4634:9;4630:18;4617:32;4668:18;4709:2;4701:6;4698:14;4695:34;;;4725:1;4722;4715:12;4695:34;4764:70;4826:7;4817:6;4806:9;4802:22;4764:70;:::i;:::-;4853:8;;-1:-1:-1;4738:96:1;-1:-1:-1;4941:2:1;4926:18;;4913:32;;-1:-1:-1;4957:16:1;;;4954:36;;;4986:1;4983;4976:12;4954:36;;5025:72;5089:7;5078:8;5067:9;5063:24;5025:72;:::i;:::-;4310:847;;;;-1:-1:-1;4310:847:1;;-1:-1:-1;5116:8:1;;4999:98;4310:847;-1:-1:-1;;;4310:847:1:o;5162:316::-;5239:6;5247;5255;5308:2;5296:9;5287:7;5283:23;5279:32;5276:52;;;5324:1;5321;5314:12;5276:52;-1:-1:-1;;5347:23:1;;;5417:2;5402:18;;5389:32;;-1:-1:-1;5468:2:1;5453:18;;;5440:32;;5162:316;-1:-1:-1;5162:316:1:o;5483:260::-;5551:6;5559;5612:2;5600:9;5591:7;5587:23;5583:32;5580:52;;;5628:1;5625;5618:12;5580:52;5651:29;5670:9;5651:29;:::i;:::-;5641:39;;5699:38;5733:2;5722:9;5718:18;5699:38;:::i;:::-;5689:48;;5483:260;;;;;:::o;5748:248::-;5816:6;5824;5877:2;5865:9;5856:7;5852:23;5848:32;5845:52;;;5893:1;5890;5883:12;5845:52;-1:-1:-1;;5916:23:1;;;5986:2;5971:18;;;5958:32;;-1:-1:-1;5748:248:1:o;6227:356::-;6429:2;6411:21;;;6448:18;;;6441:30;6507:34;6502:2;6487:18;;6480:62;6574:2;6559:18;;6227:356::o;6851:127::-;6912:10;6907:3;6903:20;6900:1;6893:31;6943:4;6940:1;6933:15;6967:4;6964:1;6957:15;6983:168;7056:9;;;7087;;7104:15;;;7098:22;;7084:37;7074:71;;7125:18;;:::i;7156:217::-;7196:1;7222;7212:132;;7266:10;7261:3;7257:20;7254:1;7247:31;7301:4;7298:1;7291:15;7329:4;7326:1;7319:15;7212:132;-1:-1:-1;7358:9:1;;7156:217::o;7378:184::-;7448:6;7501:2;7489:9;7480:7;7476:23;7472:32;7469:52;;;7517:1;7514;7507:12;7469:52;-1:-1:-1;7540:16:1;;7378:184;-1:-1:-1;7378:184:1:o;7846:245::-;7913:6;7966:2;7954:9;7945:7;7941:23;7937:32;7934:52;;;7982:1;7979;7972:12;7934:52;8014:9;8008:16;8033:28;8055:5;8033:28;:::i;9747:127::-;9808:10;9803:3;9799:20;9796:1;9789:31;9839:4;9836:1;9829:15;9863:4;9860:1;9853:15;9879:125;9944:9;;;9965:10;;;9962:36;;;9978:18;;:::i;10009:135::-;10048:3;10069:17;;;10066:43;;10089:18;;:::i;:::-;-1:-1:-1;10136:1:1;10125:13;;10009:135::o;10912:128::-;10979:9;;;11000:11;;;10997:37;;;11014:18;;:::i;13406:980::-;13668:4;13716:3;13705:9;13701:19;13747:6;13736:9;13729:25;13773:2;13811:6;13806:2;13795:9;13791:18;13784:34;13854:3;13849:2;13838:9;13834:18;13827:31;13878:6;13913;13907:13;13944:6;13936;13929:22;13982:3;13971:9;13967:19;13960:26;;14021:2;14013:6;14009:15;13995:29;;14042:1;14052:195;14066:6;14063:1;14060:13;14052:195;;;14131:13;;-1:-1:-1;;;;;14127:39:1;14115:52;;14222:15;;;;14187:12;;;;14163:1;14081:9;14052:195;;;-1:-1:-1;;;;;;;14303:32:1;;;;14298:2;14283:18;;14276:60;-1:-1:-1;;;14367:3:1;14352:19;14345:35;14264:3;13406:980;-1:-1:-1;;;13406:980:1:o;15213:306::-;15301:6;15309;15317;15370:2;15358:9;15349:7;15345:23;15341:32;15338:52;;;15386:1;15383;15376:12;15338:52;15415:9;15409:16;15399:26;;15465:2;15454:9;15450:18;15444:25;15434:35;;15509:2;15498:9;15494:18;15488:25;15478:35;;15213:306;;;;;:::o

Swarm Source

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