ETH Price: $2,396.88 (+3.07%)

Token

AI Inu (AII)
 

Overview

Max Total Supply

1,000,000,000 AII

Holders

101

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
AIInu

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 400 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-08
*/

// SPDX-License-Identifier: Unlicensed


pragma solidity ^0.8.17;

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

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

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

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

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

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

contract Ownable is Context {
    address public _owner;

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

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

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

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

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

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

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

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

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

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

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

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

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

interface InterfaceLP {
    function sync() external;
}

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

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

    string constant _name = "AI Inu";
    string constant _symbol = "AII";
    uint8 constant _decimals = 9; 
  

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

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

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

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

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 3;
    uint256 private utilityFee      = 1;
    uint256 private teamFee         = 0; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = teamFee + marketingFee + liquidityFee + utilityFee + burnFee;
    uint256 private feeDenominator  = 100;

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

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

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

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

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

        isFeeExempt[msg.sender] = true;
        isFeeExempt[utilityFeeReceiver] = true;
            
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[utilityFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x8719FAd15524E4fC322E30b4c502Dc2a89577Ca1;
        utilityFeeReceiver = msg.sender;
        teamFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

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

    }

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

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

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

     function aboutMe() public view returns (string memory, string memory, string memory) { return (telegram, website, medium);
    }

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

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

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

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

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

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

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

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

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = transferMultiplier;

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

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

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

        return amount.sub(feeAmount);
    }

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

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

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

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

    }

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

    }

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

    function setBreakdown(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;    
          
    }

    function goLive() public onlyOwner {
        TradingOpen = true;
        buyMultiplier = 1000;
        sellMultiplier = 1500;
        transferMultiplier = 1000;
    }
        
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

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

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHutility = amountETH.mul(utilityFee).div(totalETHFee);

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

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

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

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

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

    function updateFeeWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _utilityFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        utilityFeeReceiver = _utilityFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

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

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

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

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

  


event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Swapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aboutMe","outputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setBreakdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_telegram","type":"string"},{"internalType":"string","name":"_website","type":"string"},{"internalType":"string","name":"_medium","type":"string"}],"name":"setTokenDetails","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_utilityFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_utilityFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateFeeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006d5565b6200004290633b9aca00620006e6565b6005556200007c6064620000686001600554620004a560201b6200154a1790919060201c565b6200053c60201b620015cc1790919060201c565b600655620000a26064620000686001600554620004a560201b6200154a1790919060201c565b6007556001600c556003600d556001600e556000600f556000601055601054600e54600c54600d54600f54620000d9919062000700565b620000e5919062000700565b620000f1919062000700565b620000fd919062000700565b60115560646012819055601381905560148181556103e8601555601e55601f556022805461ffff60a01b1916600160a81b17905560055461271090620001469061012c620006e6565b62000152919062000716565b6023553480156200016257600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350602080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081178255604080516315ab88c960e31b81529051919263ad5c4648926004808401938290030181865afa1580156200021d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000243919062000739565b600280546001600160a01b0319166001600160a01b03928316179055602080546040805163c45a015560e01b81529051919093169263c45a01559260048083019391928290030181865afa158015620002a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c6919062000739565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000318573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033e919062000739565b602280546001600160a01b039283166001600160a01b03199182168117835560218054831690911790553060008181526009602090815260408083208254881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b1687528487208054831684179055968652838620805490911690911790556016805487168217905584548616738719fad15524e4fc322e30b4c502dc2a89577ca11790945585548516841790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007b4565b600082600003620004b95750600062000536565b6000620004c78385620006e6565b905082620004d6858362000716565b14620005335760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200053383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200058660201b60201c565b60008183620005aa5760405162461bcd60e51b81526004016200052a919062000764565b506000620005b9848662000716565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000619578160001904821115620005fd57620005fd620005c2565b808516156200060b57918102915b93841c9390800290620005dd565b509250929050565b600082620006325750600162000536565b81620006415750600062000536565b81600181146200065a5760028114620006655762000685565b600191505062000536565b60ff841115620006795762000679620005c2565b50506001821b62000536565b5060208310610133831016604e8410600b8410161715620006aa575081810a62000536565b620006b68383620005d8565b8060001904821115620006cd57620006cd620005c2565b029392505050565b60006200053360ff84168362000621565b8082028115828204841417620005365762000536620005c2565b80820180821115620005365762000536620005c2565b6000826200073457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200074c57600080fd5b81516001600160a01b03811681146200053357600080fd5b600060208083528351808285015260005b81811015620007935785810183015185820160400152820162000775565b506000604082860101526040601f19601f8301168501019250505092915050565b6128e680620007c46000396000f3fe6080604052600436106102905760003560e01c806377b54bad11610164578063a9059cbb116100c6578063ccf8c0361161008a578063dd62ed3e11610064578063dd62ed3e14610798578063f2fde38b146107de578063f887ea40146107fe57600080fd5b8063ccf8c03614610738578063d51ed1c814610758578063d78e139d1461077857600080fd5b8063a9059cbb14610694578063b2bdfa7b146106b4578063bc337182146106d4578063bc7a2898146106f4578063c5543f0a1461071857600080fd5b80638a4068dd1161012857806395d89b411161010257806395d89b41146106285780639acb773e14610654578063a8aa1b311461067457600080fd5b80638a4068dd146105d55780638a6e8abb146105ea5780638da5cb5b1461060a57600080fd5b806377b54bad1461053757806378109e54146105575780637896721a1461056d5780637d1db4a51461058d578063893d20e8146105a357600080fd5b80631df4ccfc1161020d5780633748cba8116101d157806370a08231116101ab57806370a08231146104d7578063715018a61461050d578063751039fc1461052257600080fd5b80633748cba8146104765780635d0044ca146104965780636ddd1713146104b657600080fd5b80631df4ccfc146103fa57806323b872dd146104105780632b112e49146104305780632c28f57914610445578063313ce5671461045a57600080fd5b8063095ea7b311610254578063095ea7b3146103705780630c7cc32c146103905780631161ae39146103a557806318160ddd146103c55780631d0f2c99146103da57600080fd5b806304368f651461029c5780630445b667146102be5780630621472c146102e757806306fdde031461031757806308fd3d051461034f57600080fd5b3661029757005b600080fd5b3480156102a857600080fd5b506102bc6102b73660046121f5565b61081e565b005b3480156102ca57600080fd5b506102d460235481565b6040519081526020015b60405180910390f35b3480156102f357600080fd5b5061030761030236600461223d565b61088d565b60405190151581526020016102de565b34801561032357600080fd5b50604080518082019091526006815265414920496e7560d01b60208201525b6040516102de919061229e565b34801561035b57600080fd5b5060225461030790600160a01b900460ff1681565b34801561037c57600080fd5b5061030761038b3660046122b1565b6108a1565b34801561039c57600080fd5b506102bc61090d565b3480156103b157600080fd5b506103076103c03660046122cd565b61095f565b3480156103d157600080fd5b506005546102d4565b3480156103e657600080fd5b506102bc6103f53660046122cd565b610973565b34801561040657600080fd5b506102d460115481565b34801561041c57600080fd5b5061030761042b3660046122ef565b6109c6565b34801561043c57600080fd5b506102d4610a8f565b34801561045157600080fd5b506102bc610ae1565b34801561046657600080fd5b50604051600981526020016102de565b34801561048257600080fd5b506102bc61049136600461232b565b610b4f565b3480156104a257600080fd5b506102bc6104b1366004612357565b610ba8565b3480156104c257600080fd5b5060225461030790600160a81b900460ff1681565b3480156104e357600080fd5b506102d46104f236600461223d565b6001600160a01b031660009081526008602052604090205490565b34801561051957600080fd5b506102bc610c2f565b34801561052e57600080fd5b506102bc610cc1565b34801561054357600080fd5b506103076105523660046122b1565b610d16565b34801561056357600080fd5b506102d460075481565b34801561057957600080fd5b506102bc610588366004612370565b610e16565b34801561059957600080fd5b506102d460065481565b3480156105af57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102de565b3480156105e157600080fd5b506102bc610efa565b3480156105f657600080fd5b506102bc610605366004612456565b610f45565b34801561061657600080fd5b506000546001600160a01b03166105bd565b34801561063457600080fd5b5060408051808201909152600381526241494960e81b6020820152610342565b34801561066057600080fd5b506102bc61066f3660046124de565b610fb9565b34801561068057600080fd5b506022546105bd906001600160a01b031681565b3480156106a057600080fd5b506103076106af3660046122b1565b61102c565b3480156106c057600080fd5b506000546105bd906001600160a01b031681565b3480156106e057600080fd5b506102bc6106ef366004612357565b611039565b34801561070057600080fd5b506107096110c0565b6040516102de93929190612515565b34801561072457600080fd5b506102bc610733366004612558565b61127a565b34801561074457600080fd5b506102bc6107533660046124de565b611321565b34801561076457600080fd5b506102d4610773366004612357565b6113a7565b34801561078457600080fd5b506102bc610793366004612357565b6113ee565b3480156107a457600080fd5b506102d46107b33660046125bd565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156107ea57600080fd5b506102bc6107f936600461223d565b611442565b34801561080a57600080fd5b506020546105bd906001600160a01b031681565b6000546001600160a01b0316331461086b5760405162461bcd60e51b8152602060048201819052602482015260008051602061289183398151915260448201526064015b60405180910390fd5b60228054921515600160a81b0260ff60a81b1990931692909217909155602355565b600061089b826000196108a1565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108fc9086815260200190565b60405180910390a350600192915050565b6000546001600160a01b031633146109555760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b61095d61160e565b565b60008261096b836113a7565b119392505050565b6000546001600160a01b031633146109bb5760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b601e91909155601f55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610a7a57604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e6365000000000000000000006020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610a559184906119f7565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610a85848484611a31565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610adc906003546001600160a01b0316600090815260086020526040902054610ad69060055490611db2565b90611db2565b905090565b6000546001600160a01b03163314610b295760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b6022805460ff60a01b1916600160a01b1790556103e860148190556105dc601355601555565b6000546001600160a01b03163314610b975760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b601391909155601491909155601555565b6000546001600160a01b03163314610bf05760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b6103e8600554610c009190612606565b6007541015610c0e57600080fd5b6103e881600554610c1f9190612628565b610c299190612606565b60075550565b6000546001600160a01b03163314610c775760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610d095760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b6005546007819055600655565b336000908152600b602052604081205460ff16610d3257600080fd5b81600003610da5576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da2919061263f565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610df2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a889190612658565b6000546001600160a01b03163314610e5e5760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b600c869055600f859055600d849055600e8390556010829055610e8f82610e89858188818c8c611df4565b90611df4565b6011556012819055610ea2600582612606565b60115410610ef25760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e203230250000006044820152606401610862565b505050505050565b336000908152600b602052604090205460ff16610f1657600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610f42573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610f8d5760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b601b610f9984826126f5565b50601c610fa683826126f5565b50601d610fb382826126f5565b50505050565b6000546001600160a01b031633146110015760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610a88338484611a31565b6000546001600160a01b031633146110815760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b6103e86005546110919190612606565b600654101561109f57600080fd5b6103e8816005546110b09190612628565b6110ba9190612606565b60065550565b6060806060601b601c601d8280546110d790612675565b80601f016020809104026020016040519081016040528092919081815260200182805461110390612675565b80156111505780601f1061112557610100808354040283529160200191611150565b820191906000526020600020905b81548152906001019060200180831161113357829003601f168201915b5050505050925081805461116390612675565b80601f016020809104026020016040519081016040528092919081815260200182805461118f90612675565b80156111dc5780601f106111b1576101008083540402835291602001916111dc565b820191906000526020600020905b8154815290600101906020018083116111bf57829003601f168201915b505050505091508080546111ef90612675565b80601f016020809104026020016040519081016040528092919081815260200182805461121b90612675565b80156112685780601f1061123d57610100808354040283529160200191611268565b820191906000526020600020905b81548152906001019060200180831161124b57829003601f168201915b50505050509050925092509250909192565b6000546001600160a01b031633146112c25760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b6000546001600160a01b031633146113695760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b600061089b6113b4610a8f565b6022546001600160a01b03166000908152600860205260409020546113e8906113e1906002905b9061154a565b859061154a565b906115cc565b60195447906001600160a01b03166108fc606461140b8585612628565b6114159190612606565b6040518115909202916000818181858888f1935050505015801561143d573d6000803e3d6000fd5b505050565b6000546001600160a01b0316331461148a5760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b6001600160a01b0381166114ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610862565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008260000361155c5750600061089b565b60006115688385612628565b9050826115758583612606565b14610a885760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610862565b6000610a8883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e53565b6024805460ff19166001179055601e54601f5460009161162d9161095f565b61163957600c5461163c565b60005b9050600061166060026113e86011546113e88660235461154a90919063ffffffff16565b9050600061167982602354611db290919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106116b3576116b36127b5565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106116e4576116e46127b5565b6001600160a01b039283166020918202929092018101919091525460405163791ac94760e01b81524792919091169063791ac947906117309086906000908790309042906004016127cb565b600060405180830381600087803b15801561174a57600080fd5b505af115801561175e573d6000803e3d6000fd5b5050505060006117778247611db290919063ffffffff16565b905060006117926117898860026115cc565b60115490611db2565b905060006117a760026113e88481878d61154a565b905060006117c4836113e8600d548761154a90919063ffffffff16565b905060006117e1846113e8600f548861154a90919063ffffffff16565b905060006117fe856113e8600e548961154a90919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611850576040519150601f19603f3d011682016040523d82523d6000602084013e611855565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146118a5576040519150601f19603f3d011682016040523d82523d6000602084013e6118aa565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146118fa576040519150601f19603f3d011682016040523d82523d6000602084013e6118ff565b606091505b5060009250508b1590506119df5760205460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af115801561197d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119a2919061283c565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506024805460ff1916905550505050505050505050565b60008184841115611a1b5760405162461bcd60e51b8152600401610862919061229e565b506000611a28848661286a565b95945050505050565b60245460009060ff1615611a5157611a4a848484611e81565b9050610a88565b6001600160a01b03841660009081526001602052604090205460ff16158015611a9357506001600160a01b03831660009081526001602052604090205460ff16155b15611af157602254600160a01b900460ff16611af15760405162461bcd60e51b815260206004820152601460248201527f54726164696e67206e6f74206f70656e207965740000000000000000000000006044820152606401610862565b6001600160a01b03841660009081526001602052604090205460ff16158015611b2357506001600160a01b0383163014155b8015611b3d57506003546001600160a01b03848116911614155b8015611b5757506022546001600160a01b03848116911614155b8015611b715750601a546001600160a01b03848116911614155b8015611b8b57506017546001600160a01b03848116911614155b8015611bb057506001600160a01b0383166000908152600b602052604090205460ff16155b15611c51576001600160a01b038316600090815260086020526040902054600754611bdb848361287d565b1115611c4f5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610862565b505b611c5b8483611f67565b611c63611fe0565b15611c7057611c7061160e565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611cc29184906119f7565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff1680611d0f57506001600160a01b0384166000908152600a602052604090205460ff165b611d2357611d1e858486612036565b611d25565b825b6001600160a01b038516600090815260086020526040902054909150611d4b9082611df4565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d9f9085815260200190565b60405180910390a3506001949350505050565b6000610a8883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119f7565b600080611e01838561287d565b905083811015610a885760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610862565b60008183611e745760405162461bcd60e51b8152600401610862919061229e565b506000611a288486612606565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611ed29184906119f7565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611f019083611df4565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f559086815260200190565b60405180910390a35060019392505050565b60065481111580611f9057506001600160a01b0382166000908152600b602052604090205460ff165b611fdc5760405162461bcd60e51b815260206004820152601160248201527f5458204c696d69742045786365656465640000000000000000000000000000006044820152606401610862565b5050565b6022546000906001600160a01b03163314801590612001575060245460ff16155b80156120165750602254600160a81b900460ff165b8015610adc57505060235430600090815260086020526040902054101590565b601554602254600091906001600160a01b039081169084160361205c5750601354612077565b6022546001600160a01b039081169086160361207757506014545b60006120a4601254606461208b9190612628565b6113e8846113db6011548a61154a90919063ffffffff16565b905060006120c36011546113e86010548561154a90919063ffffffff16565b905060006120d18383611db2565b306000908152600860205260409020549091506120ee9082611df4565b3060009081526008602052604080822092909255601a546001600160a01b03168152205461211c9083611df4565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a381156121d1576005546121889083611db2565b6005556004546040518381526001600160a01b03918216918a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6121db8784611db2565b98975050505050505050565b8015158114610f4257600080fd5b6000806040838503121561220857600080fd5b8235612213816121e7565b946020939093013593505050565b80356001600160a01b038116811461223857600080fd5b919050565b60006020828403121561224f57600080fd5b610a8882612221565b6000815180845260005b8181101561227e57602081850181015186830182015201612262565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610a886020830184612258565b600080604083850312156122c457600080fd5b61221383612221565b600080604083850312156122e057600080fd5b50508035926020909101359150565b60008060006060848603121561230457600080fd5b61230d84612221565b925061231b60208501612221565b9150604084013590509250925092565b60008060006060848603121561234057600080fd5b505081359360208301359350604090920135919050565b60006020828403121561236957600080fd5b5035919050565b60008060008060008060c0878903121561238957600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126123da57600080fd5b813567ffffffffffffffff808211156123f5576123f56123b3565b604051601f8301601f19908116603f0116810190828211818310171561241d5761241d6123b3565b8160405283815286602085880101111561243657600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561246b57600080fd5b833567ffffffffffffffff8082111561248357600080fd5b61248f878388016123c9565b945060208601359150808211156124a557600080fd5b6124b1878388016123c9565b935060408601359150808211156124c757600080fd5b506124d4868287016123c9565b9150509250925092565b600080604083850312156124f157600080fd5b6124fa83612221565b9150602083013561250a816121e7565b809150509250929050565b6060815260006125286060830186612258565b828103602084015261253a8186612258565b9050828103604084015261254e8185612258565b9695505050505050565b600080600080600060a0868803121561257057600080fd5b61257986612221565b945061258760208701612221565b935061259560408701612221565b92506125a360608701612221565b91506125b160808701612221565b90509295509295909350565b600080604083850312156125d057600080fd5b6125d983612221565b91506125e760208401612221565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b60008261262357634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761089b5761089b6125f0565b60006020828403121561265157600080fd5b5051919050565b60006020828403121561266a57600080fd5b8151610a88816121e7565b600181811c9082168061268957607f821691505b6020821081036126a957634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561143d57600081815260208120601f850160051c810160208610156126d65750805b601f850160051c820191505b81811015610ef2578281556001016126e2565b815167ffffffffffffffff81111561270f5761270f6123b3565b6127238161271d8454612675565b846126af565b602080601f83116001811461275857600084156127405750858301515b600019600386901b1c1916600185901b178555610ef2565b600085815260208120601f198616915b8281101561278757888601518255948401946001909101908401612768565b50858210156127a55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561281b5784516001600160a01b0316835293830193918301916001016127f6565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561285157600080fd5b8351925060208401519150604084015190509250925092565b8181038181111561089b5761089b6125f0565b8082018082111561089b5761089b6125f056fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220796434550156d71bdef66281bd9ded194806c57fdbcce44d8a7e0f6b88c9780864736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102905760003560e01c806377b54bad11610164578063a9059cbb116100c6578063ccf8c0361161008a578063dd62ed3e11610064578063dd62ed3e14610798578063f2fde38b146107de578063f887ea40146107fe57600080fd5b8063ccf8c03614610738578063d51ed1c814610758578063d78e139d1461077857600080fd5b8063a9059cbb14610694578063b2bdfa7b146106b4578063bc337182146106d4578063bc7a2898146106f4578063c5543f0a1461071857600080fd5b80638a4068dd1161012857806395d89b411161010257806395d89b41146106285780639acb773e14610654578063a8aa1b311461067457600080fd5b80638a4068dd146105d55780638a6e8abb146105ea5780638da5cb5b1461060a57600080fd5b806377b54bad1461053757806378109e54146105575780637896721a1461056d5780637d1db4a51461058d578063893d20e8146105a357600080fd5b80631df4ccfc1161020d5780633748cba8116101d157806370a08231116101ab57806370a08231146104d7578063715018a61461050d578063751039fc1461052257600080fd5b80633748cba8146104765780635d0044ca146104965780636ddd1713146104b657600080fd5b80631df4ccfc146103fa57806323b872dd146104105780632b112e49146104305780632c28f57914610445578063313ce5671461045a57600080fd5b8063095ea7b311610254578063095ea7b3146103705780630c7cc32c146103905780631161ae39146103a557806318160ddd146103c55780631d0f2c99146103da57600080fd5b806304368f651461029c5780630445b667146102be5780630621472c146102e757806306fdde031461031757806308fd3d051461034f57600080fd5b3661029757005b600080fd5b3480156102a857600080fd5b506102bc6102b73660046121f5565b61081e565b005b3480156102ca57600080fd5b506102d460235481565b6040519081526020015b60405180910390f35b3480156102f357600080fd5b5061030761030236600461223d565b61088d565b60405190151581526020016102de565b34801561032357600080fd5b50604080518082019091526006815265414920496e7560d01b60208201525b6040516102de919061229e565b34801561035b57600080fd5b5060225461030790600160a01b900460ff1681565b34801561037c57600080fd5b5061030761038b3660046122b1565b6108a1565b34801561039c57600080fd5b506102bc61090d565b3480156103b157600080fd5b506103076103c03660046122cd565b61095f565b3480156103d157600080fd5b506005546102d4565b3480156103e657600080fd5b506102bc6103f53660046122cd565b610973565b34801561040657600080fd5b506102d460115481565b34801561041c57600080fd5b5061030761042b3660046122ef565b6109c6565b34801561043c57600080fd5b506102d4610a8f565b34801561045157600080fd5b506102bc610ae1565b34801561046657600080fd5b50604051600981526020016102de565b34801561048257600080fd5b506102bc61049136600461232b565b610b4f565b3480156104a257600080fd5b506102bc6104b1366004612357565b610ba8565b3480156104c257600080fd5b5060225461030790600160a81b900460ff1681565b3480156104e357600080fd5b506102d46104f236600461223d565b6001600160a01b031660009081526008602052604090205490565b34801561051957600080fd5b506102bc610c2f565b34801561052e57600080fd5b506102bc610cc1565b34801561054357600080fd5b506103076105523660046122b1565b610d16565b34801561056357600080fd5b506102d460075481565b34801561057957600080fd5b506102bc610588366004612370565b610e16565b34801561059957600080fd5b506102d460065481565b3480156105af57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102de565b3480156105e157600080fd5b506102bc610efa565b3480156105f657600080fd5b506102bc610605366004612456565b610f45565b34801561061657600080fd5b506000546001600160a01b03166105bd565b34801561063457600080fd5b5060408051808201909152600381526241494960e81b6020820152610342565b34801561066057600080fd5b506102bc61066f3660046124de565b610fb9565b34801561068057600080fd5b506022546105bd906001600160a01b031681565b3480156106a057600080fd5b506103076106af3660046122b1565b61102c565b3480156106c057600080fd5b506000546105bd906001600160a01b031681565b3480156106e057600080fd5b506102bc6106ef366004612357565b611039565b34801561070057600080fd5b506107096110c0565b6040516102de93929190612515565b34801561072457600080fd5b506102bc610733366004612558565b61127a565b34801561074457600080fd5b506102bc6107533660046124de565b611321565b34801561076457600080fd5b506102d4610773366004612357565b6113a7565b34801561078457600080fd5b506102bc610793366004612357565b6113ee565b3480156107a457600080fd5b506102d46107b33660046125bd565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156107ea57600080fd5b506102bc6107f936600461223d565b611442565b34801561080a57600080fd5b506020546105bd906001600160a01b031681565b6000546001600160a01b0316331461086b5760405162461bcd60e51b8152602060048201819052602482015260008051602061289183398151915260448201526064015b60405180910390fd5b60228054921515600160a81b0260ff60a81b1990931692909217909155602355565b600061089b826000196108a1565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108fc9086815260200190565b60405180910390a350600192915050565b6000546001600160a01b031633146109555760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b61095d61160e565b565b60008261096b836113a7565b119392505050565b6000546001600160a01b031633146109bb5760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b601e91909155601f55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610a7a57604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e6365000000000000000000006020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610a559184906119f7565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610a85848484611a31565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610adc906003546001600160a01b0316600090815260086020526040902054610ad69060055490611db2565b90611db2565b905090565b6000546001600160a01b03163314610b295760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b6022805460ff60a01b1916600160a01b1790556103e860148190556105dc601355601555565b6000546001600160a01b03163314610b975760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b601391909155601491909155601555565b6000546001600160a01b03163314610bf05760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b6103e8600554610c009190612606565b6007541015610c0e57600080fd5b6103e881600554610c1f9190612628565b610c299190612606565b60075550565b6000546001600160a01b03163314610c775760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610d095760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b6005546007819055600655565b336000908152600b602052604081205460ff16610d3257600080fd5b81600003610da5576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da2919061263f565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610df2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a889190612658565b6000546001600160a01b03163314610e5e5760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b600c869055600f859055600d849055600e8390556010829055610e8f82610e89858188818c8c611df4565b90611df4565b6011556012819055610ea2600582612606565b60115410610ef25760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e203230250000006044820152606401610862565b505050505050565b336000908152600b602052604090205460ff16610f1657600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610f42573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610f8d5760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b601b610f9984826126f5565b50601c610fa683826126f5565b50601d610fb382826126f5565b50505050565b6000546001600160a01b031633146110015760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610a88338484611a31565b6000546001600160a01b031633146110815760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b6103e86005546110919190612606565b600654101561109f57600080fd5b6103e8816005546110b09190612628565b6110ba9190612606565b60065550565b6060806060601b601c601d8280546110d790612675565b80601f016020809104026020016040519081016040528092919081815260200182805461110390612675565b80156111505780601f1061112557610100808354040283529160200191611150565b820191906000526020600020905b81548152906001019060200180831161113357829003601f168201915b5050505050925081805461116390612675565b80601f016020809104026020016040519081016040528092919081815260200182805461118f90612675565b80156111dc5780601f106111b1576101008083540402835291602001916111dc565b820191906000526020600020905b8154815290600101906020018083116111bf57829003601f168201915b505050505091508080546111ef90612675565b80601f016020809104026020016040519081016040528092919081815260200182805461121b90612675565b80156112685780601f1061123d57610100808354040283529160200191611268565b820191906000526020600020905b81548152906001019060200180831161124b57829003601f168201915b50505050509050925092509250909192565b6000546001600160a01b031633146112c25760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b6000546001600160a01b031633146113695760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b600061089b6113b4610a8f565b6022546001600160a01b03166000908152600860205260409020546113e8906113e1906002905b9061154a565b859061154a565b906115cc565b60195447906001600160a01b03166108fc606461140b8585612628565b6114159190612606565b6040518115909202916000818181858888f1935050505015801561143d573d6000803e3d6000fd5b505050565b6000546001600160a01b0316331461148a5760405162461bcd60e51b815260206004820181905260248201526000805160206128918339815191526044820152606401610862565b6001600160a01b0381166114ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610862565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008260000361155c5750600061089b565b60006115688385612628565b9050826115758583612606565b14610a885760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610862565b6000610a8883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e53565b6024805460ff19166001179055601e54601f5460009161162d9161095f565b61163957600c5461163c565b60005b9050600061166060026113e86011546113e88660235461154a90919063ffffffff16565b9050600061167982602354611db290919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106116b3576116b36127b5565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106116e4576116e46127b5565b6001600160a01b039283166020918202929092018101919091525460405163791ac94760e01b81524792919091169063791ac947906117309086906000908790309042906004016127cb565b600060405180830381600087803b15801561174a57600080fd5b505af115801561175e573d6000803e3d6000fd5b5050505060006117778247611db290919063ffffffff16565b905060006117926117898860026115cc565b60115490611db2565b905060006117a760026113e88481878d61154a565b905060006117c4836113e8600d548761154a90919063ffffffff16565b905060006117e1846113e8600f548861154a90919063ffffffff16565b905060006117fe856113e8600e548961154a90919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611850576040519150601f19603f3d011682016040523d82523d6000602084013e611855565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146118a5576040519150601f19603f3d011682016040523d82523d6000602084013e6118aa565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146118fa576040519150601f19603f3d011682016040523d82523d6000602084013e6118ff565b606091505b5060009250508b1590506119df5760205460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af115801561197d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119a2919061283c565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506024805460ff1916905550505050505050505050565b60008184841115611a1b5760405162461bcd60e51b8152600401610862919061229e565b506000611a28848661286a565b95945050505050565b60245460009060ff1615611a5157611a4a848484611e81565b9050610a88565b6001600160a01b03841660009081526001602052604090205460ff16158015611a9357506001600160a01b03831660009081526001602052604090205460ff16155b15611af157602254600160a01b900460ff16611af15760405162461bcd60e51b815260206004820152601460248201527f54726164696e67206e6f74206f70656e207965740000000000000000000000006044820152606401610862565b6001600160a01b03841660009081526001602052604090205460ff16158015611b2357506001600160a01b0383163014155b8015611b3d57506003546001600160a01b03848116911614155b8015611b5757506022546001600160a01b03848116911614155b8015611b715750601a546001600160a01b03848116911614155b8015611b8b57506017546001600160a01b03848116911614155b8015611bb057506001600160a01b0383166000908152600b602052604090205460ff16155b15611c51576001600160a01b038316600090815260086020526040902054600754611bdb848361287d565b1115611c4f5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610862565b505b611c5b8483611f67565b611c63611fe0565b15611c7057611c7061160e565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611cc29184906119f7565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff1680611d0f57506001600160a01b0384166000908152600a602052604090205460ff165b611d2357611d1e858486612036565b611d25565b825b6001600160a01b038516600090815260086020526040902054909150611d4b9082611df4565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d9f9085815260200190565b60405180910390a3506001949350505050565b6000610a8883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119f7565b600080611e01838561287d565b905083811015610a885760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610862565b60008183611e745760405162461bcd60e51b8152600401610862919061229e565b506000611a288486612606565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611ed29184906119f7565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611f019083611df4565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f559086815260200190565b60405180910390a35060019392505050565b60065481111580611f9057506001600160a01b0382166000908152600b602052604090205460ff165b611fdc5760405162461bcd60e51b815260206004820152601160248201527f5458204c696d69742045786365656465640000000000000000000000000000006044820152606401610862565b5050565b6022546000906001600160a01b03163314801590612001575060245460ff16155b80156120165750602254600160a81b900460ff165b8015610adc57505060235430600090815260086020526040902054101590565b601554602254600091906001600160a01b039081169084160361205c5750601354612077565b6022546001600160a01b039081169086160361207757506014545b60006120a4601254606461208b9190612628565b6113e8846113db6011548a61154a90919063ffffffff16565b905060006120c36011546113e86010548561154a90919063ffffffff16565b905060006120d18383611db2565b306000908152600860205260409020549091506120ee9082611df4565b3060009081526008602052604080822092909255601a546001600160a01b03168152205461211c9083611df4565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a381156121d1576005546121889083611db2565b6005556004546040518381526001600160a01b03918216918a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6121db8784611db2565b98975050505050505050565b8015158114610f4257600080fd5b6000806040838503121561220857600080fd5b8235612213816121e7565b946020939093013593505050565b80356001600160a01b038116811461223857600080fd5b919050565b60006020828403121561224f57600080fd5b610a8882612221565b6000815180845260005b8181101561227e57602081850181015186830182015201612262565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610a886020830184612258565b600080604083850312156122c457600080fd5b61221383612221565b600080604083850312156122e057600080fd5b50508035926020909101359150565b60008060006060848603121561230457600080fd5b61230d84612221565b925061231b60208501612221565b9150604084013590509250925092565b60008060006060848603121561234057600080fd5b505081359360208301359350604090920135919050565b60006020828403121561236957600080fd5b5035919050565b60008060008060008060c0878903121561238957600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126123da57600080fd5b813567ffffffffffffffff808211156123f5576123f56123b3565b604051601f8301601f19908116603f0116810190828211818310171561241d5761241d6123b3565b8160405283815286602085880101111561243657600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561246b57600080fd5b833567ffffffffffffffff8082111561248357600080fd5b61248f878388016123c9565b945060208601359150808211156124a557600080fd5b6124b1878388016123c9565b935060408601359150808211156124c757600080fd5b506124d4868287016123c9565b9150509250925092565b600080604083850312156124f157600080fd5b6124fa83612221565b9150602083013561250a816121e7565b809150509250929050565b6060815260006125286060830186612258565b828103602084015261253a8186612258565b9050828103604084015261254e8185612258565b9695505050505050565b600080600080600060a0868803121561257057600080fd5b61257986612221565b945061258760208701612221565b935061259560408701612221565b92506125a360608701612221565b91506125b160808701612221565b90509295509295909350565b600080604083850312156125d057600080fd5b6125d983612221565b91506125e760208401612221565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b60008261262357634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761089b5761089b6125f0565b60006020828403121561265157600080fd5b5051919050565b60006020828403121561266a57600080fd5b8151610a88816121e7565b600181811c9082168061268957607f821691505b6020821081036126a957634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561143d57600081815260208120601f850160051c810160208610156126d65750805b601f850160051c820191505b81811015610ef2578281556001016126e2565b815167ffffffffffffffff81111561270f5761270f6123b3565b6127238161271d8454612675565b846126af565b602080601f83116001811461275857600084156127405750858301515b600019600386901b1c1916600185901b178555610ef2565b600085815260208120601f198616915b8281101561278757888601518255948401946001909101908401612768565b50858210156127a55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561281b5784516001600160a01b0316835293830193918301916001016127f6565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561285157600080fd5b8351925060208401519150604084015190509250925092565b8181038181111561089b5761089b6125f0565b8082018082111561089b5761089b6125f056fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220796434550156d71bdef66281bd9ded194806c57fdbcce44d8a7e0f6b88c9780864736f6c63430008120033

Deployed Bytecode Sourcemap

4981:14010:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18091:156;;;;;;;;;;-1:-1:-1;18091:156:0;;;;;:::i;:::-;;:::i;:::-;;6767:57;;;;;;;;;;;;;;;;;;;597:25:1;;;585:2;570:18;6767:57:0;;;;;;;;8929:122;;;;;;;;;;-1:-1:-1;8929:122:0;;;;;:::i;:::-;;:::i;:::-;;;1190:14:1;;1183:22;1165:41;;1153:2;1138:18;8929:122:0;1025:187:1;8283:80:0;;;;;;;;;;-1:-1:-1;8355:5:0;;;;;;;;;;;;-1:-1:-1;;;8355:5:0;;;;8283:80;;;;;;;:::i;6686:31::-;;;;;;;;;;-1:-1:-1;6686:31:0;;;;-1:-1:-1;;;6686:31:0;;;;;;8705:216;;;;;;;;;;-1:-1:-1;8705:216:0;;;;;:::i;:::-;;:::i;13768:77::-;;;;;;;;;;;;;:::i;18765:150::-;;;;;;;;;;-1:-1:-1;18765:150:0;;;;;:::i;:::-;;:::i;8013:88::-;;;;;;;;;;-1:-1:-1;8086:12:0;;8013:88;;18255:173;;;;;;;;;;-1:-1:-1;18255:173:0;;;;;:::i;:::-;;:::i;5948:94::-;;;;;;;;;;;;;;;;9223:370;;;;;;;;;;-1:-1:-1;9223:370:0;;;;;:::i;:::-;;:::i;18440:142::-;;;;;;;;;;;;;:::i;14687:171::-;;;;;;;;;;;;;:::i;8107:80::-;;;;;;;;;;-1:-1:-1;8107:80:0;;5315:1;2857:36:1;;2845:2;2830:18;8107:80:0;2715:184:1;14467:212:0;;;;;;;;;;-1:-1:-1;14467:212:0;;;;;:::i;:::-;;:::i;9605:219::-;;;;;;;;;;-1:-1:-1;9605:219:0;;;;;:::i;:::-;;:::i;6730:30::-;;;;;;;;;;-1:-1:-1;6730:30:0;;;;-1:-1:-1;;;6730:30:0;;;;;;8453:105;;;;;;;;;;-1:-1:-1;8453:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8537:18:0;8519:7;8537:18;;;:9;:18;;;;;;;8453:105;3038:148;;;;;;;;;;;;;:::i;13853:133::-;;;;;;;;;;;;;:::i;14151:308::-;;;;;;;;;;-1:-1:-1;14151:308:0;;;;;:::i;:::-;;:::i;5452:61::-;;;;;;;;;;;;;;;;17052:573;;;;;;;;;;-1:-1:-1;17052:573:0;;;;;:::i;:::-;;:::i;5387:58::-;;;;;;;;;;;;;;;;8369:78;;;;;;;;;;-1:-1:-1;8421:7:0;2889:6;-1:-1:-1;;;;;2889:6:0;8369:78;;;-1:-1:-1;;;;;4102:55:1;;;4084:74;;4072:2;4057:18;8369:78:0;3938:226:1;13994:149:0;;;;;;;;;;;;;:::i;10165:209::-;;;;;;;;;;-1:-1:-1;10165:209:0;;;;;:::i;:::-;;:::i;2824:79::-;;;;;;;;;;-1:-1:-1;2862:7:0;2889:6;-1:-1:-1;;;;;2889:6:0;2824:79;;8193:84;;;;;;;;;;-1:-1:-1;8267:7:0;;;;;;;;;;;;-1:-1:-1;;;8267:7:0;;;;8193:84;;16924:120;;;;;;;;;;-1:-1:-1;16924:120:0;;;;;:::i;:::-;;:::i;6654:19::-;;;;;;;;;;-1:-1:-1;6654:19:0;;;;-1:-1:-1;;;;;6654:19:0;;;9059:156;;;;;;;;;;-1:-1:-1;9059:156:0;;;;;:::i;:::-;;:::i;2444:21::-;;;;;;;;;;-1:-1:-1;2444:21:0;;;;-1:-1:-1;;;;;2444:21:0;;;9832:187;;;;;;;;;;-1:-1:-1;9832:187:0;;;;;:::i;:::-;;:::i;10028:129::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;17633:450::-;;;;;;;;;;-1:-1:-1;17633:450:0;;;;;:::i;:::-;;:::i;16759:157::-;;;;;;;;;;-1:-1:-1;16759:157:0;;;;;:::i;:::-;;:::i;18590:167::-;;;;;;;;;;-1:-1:-1;18590:167:0;;;;;:::i;:::-;;:::i;13561:198::-;;;;;;;;;;-1:-1:-1;13561:198:0;;;;;:::i;:::-;;:::i;8564:133::-;;;;;;;;;;-1:-1:-1;8564:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8666:19:0;;;8648:7;8666:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8564:133;3194:244;;;;;;;;;;-1:-1:-1;3194:244:0;;;;;:::i;:::-;;:::i;6584:24::-;;;;;;;;;;-1:-1:-1;6584:24:0;;;;-1:-1:-1;;;;;6584:24:0;;;18091:156;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;7849:2:1;2943:67:0;;;7831:21:1;;;7868:18;;;7861:30;-1:-1:-1;;;;;;;;;;;7907:18:1;;;7900:62;7979:18;;2943:67:0;;;;;;;;;18183:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18183:22:0::1;-1:-1:-1::0;;;;18183:22:0;;::::1;::::0;;;::::1;::::0;;;18216:13:::1;:23:::0;18091:156::o;8929:122::-;8984:4;9008:35;9016:7;-1:-1:-1;;9008:7:0;:35::i;:::-;9001:42;8929:122;-1:-1:-1;;8929:122:0:o;8705:216::-;8809:10;8780:4;8797:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8797:32:0;;;;;;;;;;:41;;;8854:37;8780:4;;8797:32;;8854:37;;;;8832:6;597:25:1;;585:2;570:18;;451:177;8854:37:0;;;;;;;;-1:-1:-1;8909:4:0;8705:216;;;;:::o;13768:77::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;7849:2:1;2943:67:0;;;7831:21:1;;;7868:18;;;7861:30;-1:-1:-1;;;;;;;;;;;7907:18:1;;;7900:62;7979:18;;2943:67:0;7647:356:1;2943:67:0;13821:10:::1;:8;:10::i;:::-;13768:77::o:0;18765:150::-;18845:4;18901:6;18869:29;18889:8;18869:19;:29::i;:::-;:38;;18765:150;-1:-1:-1;;;18765:150:0:o;18255:173::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;7849:2:1;2943:67:0;;;7831:21:1;;;7868:18;;;7861:30;-1:-1:-1;;;;;;;;;;;7907:18:1;;;7900:62;7979:18;;2943:67:0;7647:356:1;2943:67:0;18343:15:::1;:25:::0;;;;18379:26:::1;:41:::0;18255:173::o;9223:370::-;-1:-1:-1;;;;;9343:19:0;;9323:4;9343:19;;;:11;:19;;;;;;;;9363:10;9343:31;;;;;;;;-1:-1:-1;;9343:52:0;9340:186;;9445:69;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9445:19:0;;-1:-1:-1;9445:19:0;;;:11;:19;;;;;9465:10;9445:31;;;;;;;;;;:69;;9481:6;;9445:35;:69::i;:::-;-1:-1:-1;;;;;9411:19:0;;;;;;:11;:19;;;;;;;;9431:10;9411:31;;;;;;;:103;9340:186;9545:40;9559:6;9567:9;9578:6;9545:13;:40::i;:::-;9538:47;;9223:370;;;;;;:::o;18440:142::-;18568:4;;-1:-1:-1;;;;;18568:4:0;18493:7;8537:18;;;:9;:18;;;;;;18520:54;;18547:4;;-1:-1:-1;;;;;18547:4:0;8519:7;8537:18;;;:9;:18;;;;;;18520:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18513:61;;18440:142;:::o;14687:171::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;7849:2:1;2943:67:0;;;7831:21:1;;;7868:18;;;7861:30;-1:-1:-1;;;;;;;;;;;7907:18:1;;;7900:62;7979:18;;2943:67:0;7647:356:1;2943:67:0;14733:11:::1;:18:::0;;-1:-1:-1;;;;14733:18:0::1;-1:-1:-1::0;;;14733:18:0::1;::::0;;14778:4:::1;14733:11;14762:20:::0;;;14810:4:::1;14793:14;:21:::0;14825:18:::1;:25:::0;14687:171::o;14467:212::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;7849:2:1;2943:67:0;;;7831:21:1;;;7868:18;;;7861:30;-1:-1:-1;;;;;;;;;;;7907:18:1;;;7900:62;7979:18;;2943:67:0;7647:356:1;2943:67:0;14564:14:::1;:22:::0;;;;14597:13:::1;:20:::0;;;;14628:18:::1;:27:::0;14467:212::o;9605:219::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;7849:2:1;2943:67:0;;;7831:21:1;;;7868:18;;;7861:30;-1:-1:-1;;;;;;;;;;;7907:18:1;;;7900:62;7979:18;;2943:67:0;7647:356:1;2943:67:0;9724:4:::1;9709:12;;:19;;;;:::i;:::-;9690:15;;:38;;9682:47;;;::::0;::::1;;9794:4;9775:14;9760:12;;:29;;;;:::i;:::-;9759:39;;;;:::i;:::-;9741:15;:57:::0;-1:-1:-1;9605:219:0:o;3038:148::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;7849:2:1;2943:67:0;;;7831:21:1;;;7868:18;;;7861:30;-1:-1:-1;;;;;;;;;;;7907:18:1;;;7900:62;7979:18;;2943:67:0;7647:356:1;2943:67:0;3145:1:::1;3129:6:::0;;3108:40:::1;::::0;-1:-1:-1;;;;;3129:6:0;;::::1;::::0;3108:40:::1;::::0;3145:1;;3108:40:::1;3176:1;3159:19:::0;;-1:-1:-1;;;;;;3159:19:0::1;::::0;;3038:148::o;13853:133::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;7849:2:1;2943:67:0;;;7831:21:1;;;7868:18;;;7861:30;-1:-1:-1;;;;;;;;;;;7907:18:1;;;7900:62;7979:18;;2943:67:0;7647:356:1;2943:67:0;13926:12:::1;::::0;13908:15:::1;:30:::0;;;13949:12:::1;:27:::0;13853:133::o;14151:308::-;14271:10;14230:4;14255:27;;;:15;:27;;;;;;;;14247:36;;;;;;14294:6;14304:1;14294:11;14291:95;;14330:44;;-1:-1:-1;;;14330:44:0;;14368:4;14330:44;;;4084:74:1;-1:-1:-1;;;;;14330:29:0;;;;;4057:18:1;;14330:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14321:53;;14291:95;14403:48;;-1:-1:-1;;;14403:48:0;;14432:10;14403:48;;;8898:74:1;8988:18;;;8981:34;;;-1:-1:-1;;;;;14403:28:0;;;;;8871:18:1;;14403:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17052:573::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;7849:2:1;2943:67:0;;;7831:21:1;;;7868:18;;;7861:30;-1:-1:-1;;;;;;;;;;;7907:18:1;;;7900:62;7979:18;;2943:67:0;7647:356:1;2943:67:0;17232:12:::1;:28:::0;;;17271:7:::1;:18:::0;;;17300:12:::1;:28:::0;;;17339:10:::1;:24:::0;;;17374:7:::1;:18:::0;;;17414:77:::1;17384:8:::0;17414:63:::1;17352:11:::0;17414:63;17315:13;17414:63;17247:13;17281:8;17414:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:77::-;17403:8;:88:::0;17502:14:::1;:32:::0;;;17564:18:::1;17581:1;17519:15:::0;17564:18:::1;:::i;:::-;17553:8;;:29;17545:71;;;::::0;-1:-1:-1;;;17545:71:0;;9478:2:1;17545:71:0::1;::::0;::::1;9460:21:1::0;9517:2;9497:18;;;9490:30;9556:31;9536:18;;;9529:59;9605:18;;17545:71:0::1;9276:353:1::0;17545:71:0::1;17052:573:::0;;;;;;:::o;13994:149::-;14059:10;14043:27;;;;:15;:27;;;;;;;;14035:36;;;;;;14082:51;;14090:10;;14111:21;14082:51;;;;;;;;;14111:21;14090:10;14082:51;;;;;;;;;;;;;;;;;;;;;13994:149::o;10165:209::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;7849:2:1;2943:67:0;;;7831:21:1;;;7868:18;;;7861:30;-1:-1:-1;;;;;;;;;;;7907:18:1;;;7900:62;7979:18;;2943:67:0;7647:356:1;2943:67:0;10290:8:::1;:20;10301:9:::0;10290:8;:20:::1;:::i;:::-;-1:-1:-1::0;10321:7:0::1;:18;10331:8:::0;10321:7;:18:::1;:::i;:::-;-1:-1:-1::0;10350:6:0::1;:16;10359:7:::0;10350:6;:16:::1;:::i;:::-;;10165:209:::0;;;:::o;16924:120::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;7849:2:1;2943:67:0;;;7831:21:1;;;7868:18;;;7861:30;-1:-1:-1;;;;;;;;;;;7907:18:1;;;7900:62;7979:18;;2943:67:0;7647:356:1;2943:67:0;-1:-1:-1;;;;;17004:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17004:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16924:120::o;9059:156::-;9139:4;9163:44;9177:10;9189:9;9200:6;9163:13;:44::i;9832:187::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;7849:2:1;2943:67:0;;;7831:21:1;;;7868:18;;;7861:30;-1:-1:-1;;;;;;;;;;;7907:18:1;;;7900:62;7979:18;;2943:67:0;7647:356:1;2943:67:0;9942:4:::1;9927:12;;:19;;;;:::i;:::-;9911:12;;:35;;9903:44;;;::::0;::::1;;10007:4;9990:12;9975;;:27;;;;:::i;:::-;9974:37;;;;:::i;:::-;9959:12;:52:::0;-1:-1:-1;9832:187:0:o;10028:129::-;10068:13;10083;10098;10123:8;10133:7;10142:6;10115:34;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10028:129;;;:::o;17633:450::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;7849:2:1;2943:67:0;;;7831:21:1;;;7868:18;;;7861:30;-1:-1:-1;;;;;;;;;;;7907:18:1;;;7900:62;7979:18;;2943:67:0;7647:356:1;2943:67:0;17833:21:::1;:46:::0;;-1:-1:-1;;;;;;17833:46:0;;::::1;-1:-1:-1::0;;;;;17833:46:0;;::::1;;::::0;;;17890:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17945:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17996:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18041:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17633:450::o;16759:157::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;7849:2:1;2943:67:0;;;7831:21:1;;;7868:18;;;7861:30;-1:-1:-1;;;;;;;;;;;7907:18:1;;;7900:62;7979:18;;2943:67:0;7647:356:1;2943:67:0;-1:-1:-1;;;;;16837:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;16837:28:0;;::::1;::::0;::::1;::::0;;;16876:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;16759:157::o;18590:167::-;18658:7;18685:64;18726:22;:20;:22::i;:::-;18708:4;;-1:-1:-1;;;;;18708:4:0;8519:7;8537:18;;;:9;:18;;;;;;18685:36;;18698:22;;18718:1;;18698:15;:19;;:22::i;:::-;18685:8;;:12;:36::i;:::-;:40;;:64::i;13561:198::-;13690:15;;13650:21;;-1:-1:-1;;;;;13690:15:0;13682:69;13747:3;13716:28;13728:16;13650:21;13716:28;:::i;:::-;:34;;;;:::i;:::-;13682:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13619:140;13561:198;:::o;3194:244::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;7849:2:1;2943:67:0;;;7831:21:1;;;7868:18;;;7861:30;-1:-1:-1;;;;;;;;;;;7907:18:1;;;7900:62;7979:18;;2943:67:0;7647:356:1;2943:67:0;-1:-1:-1;;;;;3283:22:0;::::1;3275:73;;;::::0;-1:-1:-1;;;3275:73:0;;12425:2:1;3275:73:0::1;::::0;::::1;12407:21:1::0;12464:2;12444:18;;;12437:30;12503:34;12483:18;;;12476:62;-1:-1:-1;;;12554:18:1;;;12547:36;12600:19;;3275:73:0::1;12223:402:1::0;3275:73:0::1;3385:6;::::0;;3364:38:::1;::::0;-1:-1:-1;;;;;3364:38:0;;::::1;::::0;3385:6;::::1;::::0;3364:38:::1;::::0;::::1;3413:6;:17:::0;;-1:-1:-1;;;;;;3413:17:0::1;-1:-1:-1::0;;;;;3413:17:0;;;::::1;::::0;;;::::1;::::0;;3194:244::o;623:250::-;681:7;705:1;710;705:6;701:47;;-1:-1:-1;735:1:0;728:8;;701:47;760:9;772:5;776:1;772;:5;:::i;:::-;760:17;-1:-1:-1;805:1:0;796:5;800:1;760:17;796:5;:::i;:::-;:10;788:56;;;;-1:-1:-1;;;788:56:0;;12832:2:1;788:56:0;;;12814:21:1;12871:2;12851:18;;;12844:30;12910:34;12890:18;;;12883:62;-1:-1:-1;;;12961:18:1;;;12954:31;13002:19;;788:56:0;12630:397:1;879:132:0;937:7;964:39;968:1;971;964:39;;;;;;;;;;;;;;;;;:3;:39::i;14874:1877::-;6872:6;:13;;-1:-1:-1;;6872:13:0;6881:4;6872:13;;;14969:15:::1;::::0;14986:26:::1;::::0;6872:6;;14953:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15020:12;;14953:79;;;15016:1;14953:79;14923:109;;15043:23;15069:59;15126:1;15069:52;15112:8;;15069:38;15087:19;15069:13;;:17;;:38;;;;:::i;:59::-;15043:85;;15139:20;15162:34;15180:15;15162:13;;:17;;:34;;;;:::i;:::-;15233:16;::::0;;15247:1:::1;15233:16:::0;;;;;::::1;::::0;;15139:57;;-1:-1:-1;15209:21:0::1;::::0;15233:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15233:16:0::1;15209:40;;15278:4;15260;15265:1;15260:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15260:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15304:4:::1;::::0;15294:7;;15304:4;::::1;::::0;15294;;15304;;15294:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15294:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;15379:6;:188:::1;::::0;-1:-1:-1;;;15379:188:0;;15345:21:::1;::::0;15379:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15451:12;;15321:21:::1;::::0;15494:4;;15521::::1;::::0;15541:15:::1;::::0;15379:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15580:17;15600:40;15626:13;15600:21;:25;;:40;;;;:::i;:::-;15580:60:::0;-1:-1:-1;15653:19:0::1;15675:40;15688:26;:19:::0;15712:1:::1;15688:23;:26::i;:::-;15675:8;::::0;;:12:::1;:40::i;:::-;15653:62:::0;-1:-1:-1;15736:26:0::1;15765:58;15821:1;15765:51;15653:62:::0;15765:51;:9;15779:19;15765:13:::1;:34::i;:58::-;15736:87;;15834:26;15863:44;15895:11;15863:27;15877:12;;15863:9;:13;;:27;;;;:::i;:44::-;15834:73;;15918:21;15942:39;15969:11;15942:22;15956:7;;15942:9;:13;;:22;;;;:::i;:39::-;15918:63;;15992:24;16019:42;16049:11;16019:25;16033:10;;16019:9;:13;;:25;;;;:::i;:42::-;16103:20;::::0;16095:65:::1;::::0;15992:69;;-1:-1:-1;16075:15:0::1;::::0;-1:-1:-1;;;;;16103:20:0;;::::1;::::0;16137:18;;16075:15;16095:65;16075:15;16095:65;16137:18;16103:20;16095:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16195:18:0::1;::::0;16187:61:::1;::::0;16074:86;;-1:-1:-1;;;;;;16195:18:0::1;::::0;16227:16;;16187:61:::1;::::0;;;16227:16;16195:18;16187:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16283:15:0::1;::::0;16275:55:::1;::::0;16171:77;;-1:-1:-1;;;;;;16283:15:0::1;::::0;16312:13;;16275:55:::1;::::0;;;16312:13;16283:15;16275:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16364:5:0::1;::::0;-1:-1:-1;;16385:19:0;;;-1:-1:-1;16382:362:0::1;;16420:6;::::0;16594:21:::1;::::0;16420:244:::1;::::0;-1:-1:-1;;;16420:244:0;;16496:4:::1;16420:244;::::0;::::1;14769:34:1::0;14819:18;;;14812:34;;;16420:6:0::1;14862:18:1::0;;;14855:34;;;14905:18;;;14898:34;-1:-1:-1;;;;;16594:21:0;;::::1;14948:19:1::0;;;14941:44;16634:15:0::1;15001:19:1::0;;;14994:35;16420:6:0;::::1;::::0;:22:::1;::::0;16450:18;;14680:19:1;;16420:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16684:48:0::1;::::0;;15525:25:1;;;15581:2;15566:18;;15559:34;;;16684:48:0::1;::::0;-1:-1:-1;15498:18:1;16684:48:0::1;;;;;;;16382:362;-1:-1:-1::0;;6890:6:0;:14;;-1:-1:-1;;6890:14:0;;;-1:-1:-1;;;;;;;;;;14874:1877:0:o;425:192::-;511:7;547:12;539:6;;;;531:29;;;;-1:-1:-1;;;531:29:0;;;;;;;;:::i;:::-;-1:-1:-1;571:9:0;583:5;587:1;583;:5;:::i;:::-;571:17;425:192;-1:-1:-1;;;;;425:192:0:o;10386:1309::-;10498:6;;10478:4;;10498:6;;10495:63;;;10514:41;10529:6;10537:9;10548:6;10514:14;:41::i;:::-;10507:48;;;;10495:63;-1:-1:-1;;;;;10574:22:0;;;;;;:14;:22;;;;;;;;10573:23;:53;;;;-1:-1:-1;;;;;;10601:25:0;;;;;;:14;:25;;;;;;;;10600:26;10573:53;10570:140;;;10650:11;;-1:-1:-1;;;10650:11:0;;;;10642:43;;;;-1:-1:-1;;;10642:43:0;;15939:2:1;10642:43:0;;;15921:21:1;15978:2;15958:18;;;15951:30;16017:22;15997:18;;;15990:50;16057:18;;10642:43:0;15737:344:1;10642:43:0;-1:-1:-1;;;;;10744:22:0;;;;;;:14;:22;;;;;;;;10743:23;:53;;;;-1:-1:-1;;;;;;10770:26:0;;10791:4;10770:26;;10743:53;:84;;;;-1:-1:-1;10822:4:0;;-1:-1:-1;;;;;10801:26:0;;;10822:4;;10801:26;;10743:84;:105;;;;-1:-1:-1;10844:4:0;;-1:-1:-1;;;;;10831:17:0;;;10844:4;;10831:17;;10743:105;:137;;;;-1:-1:-1;10865:15:0;;-1:-1:-1;;;;;10852:28:0;;;10865:15;;10852:28;;10743:137;:174;;;;-1:-1:-1;10897:20:0;;-1:-1:-1;;;;;10884:33:0;;;10897:20;;10884:33;;10743:174;:205;;;;-1:-1:-1;;;;;;10922:26:0;;;;;;:15;:26;;;;;;;;10921:27;10743:205;10739:397;;;-1:-1:-1;;;;;8537:18:0;;10964;8537;;;:9;:18;;;;;;11053:15;;11029:19;11042:6;8537:18;11029:19;:::i;:::-;11028:40;;11020:114;;;;-1:-1:-1;;;11020:114:0;;16418:2:1;11020:114:0;;;16400:21:1;16457:2;16437:18;;;16430:30;16496:34;16476:18;;;16469:62;16567:32;16547:18;;;16540:60;16617:19;;11020:114:0;16216:426:1;11020:114:0;10949:187;10739:397;11189:28;11202:6;11210;11189:12;:28::i;:::-;11234:16;:14;:16::i;:::-;11231:35;;;11253:10;:8;:10::i;:::-;11346:53;;;;;;;;;;;-1:-1:-1;;;11346:53:0;;;;;;;;-1:-1:-1;;;;;11346:17:0;;-1:-1:-1;11346:17:0;;;:9;:17;;;;;;;;:53;;11368:6;;11346:21;:53::i;:::-;-1:-1:-1;;;;;11326:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11438:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11461:22:0;;;;;;:11;:22;;;;;;;;11438:45;11437:93;;11496:34;11504:6;11512;11520:9;11496:7;:34::i;:::-;11437:93;;;11487:6;11437:93;-1:-1:-1;;;;;11564:20:0;;;;;;:9;:20;;;;;;11412:118;;-1:-1:-1;11564:40:0;;11412:118;11564:24;:40::i;:::-;-1:-1:-1;;;;;11541:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11622:43;;;;;;;;;;11650:14;597:25:1;;585:2;570:18;;451:177;11622:43:0;;;;;;;;-1:-1:-1;11683:4:0;;10386:1309;-1:-1:-1;;;;10386:1309:0:o;283:136::-;341:7;368:43;372:1;375;368:43;;;;;;;;;;;;;;;;;:3;:43::i;96:181::-;154:7;;186:5;190:1;186;:5;:::i;:::-;174:17;;215:1;210;:6;;202:46;;;;-1:-1:-1;;;202:46:0;;16849:2:1;202:46:0;;;16831:21:1;16888:2;16868:18;;;16861:30;16927:29;16907:18;;;16900:57;16974:18;;202:46:0;16647:351:1;1017:189:0;1103:7;1138:12;1131:5;1123:28;;;;-1:-1:-1;;;1123:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1162:9:0;1174:5;1178:1;1174;:5;:::i;11707:330::-;11837:53;;;;;;;;;;;-1:-1:-1;;;11837:53:0;;;;;;;;-1:-1:-1;;;;;11837:17:0;;11800:4;11837:17;;;:9;:17;;;;;;;:53;;11859:6;;11837:21;:53::i;:::-;-1:-1:-1;;;;;11817:17:0;;;;;;;:9;:17;;;;;;:73;;;;11924:20;;;;;;;:32;;11949:6;11924:24;:32::i;:::-;-1:-1:-1;;;;;11901:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11972:35;;;;;;;;;;12000:6;597:25:1;;585:2;570:18;;451:177;11972:35:0;;;;;;;;-1:-1:-1;12025:4:0;11707:330;;;;;:::o;12045:166::-;12142:12;;12132:6;:22;;:49;;;-1:-1:-1;;;;;;12158:23:0;;;;;;:15;:23;;;;;;;;12132:49;12124:79;;;;-1:-1:-1;;;12124:79:0;;17205:2:1;12124:79:0;;;17187:21:1;17244:2;17224:18;;;17217:30;17283:19;17263:18;;;17256:47;17320:18;;12124:79:0;17003:341:1;12124:79:0;12045:166;;:::o;13356:197::-;13443:4;;13405;;-1:-1:-1;;;;;13443:4:0;13429:10;:18;;;;:38;;-1:-1:-1;13461:6:0;;;;13460:7;13429:38;:62;;;;-1:-1:-1;13480:11:0;;-1:-1:-1;;;13480:11:0;;;;13429:62;:116;;;;-1:-1:-1;;13532:13:0;;13522:4;13504:24;;;;:9;:24;;;;;;:41;;;13356:197::o;12341:1007::-;12478:18;;12525:4;;12427:7;;12478:18;-1:-1:-1;;;;;12525:4:0;;;12512:17;;;;12509:154;;-1:-1:-1;12559:14:0;;12509:154;;;12604:4;;-1:-1:-1;;;;;12604:4:0;;;12594:14;;;;12591:72;;-1:-1:-1;12638:13:0;;12591:72;12675:17;12695:62;12736:14;;12753:3;12736:20;;;;:::i;:::-;12695:36;12720:10;12695:20;12706:8;;12695:6;:10;;:20;;;;:::i;:62::-;12675:82;;12768:18;12789:36;12816:8;;12789:22;12803:7;;12789:9;:13;;:22;;;;:::i;:36::-;12768:57;-1:-1:-1;12836:22:0;12861:25;:9;12768:57;12861:13;:25::i;:::-;12944:4;12926:24;;;;:9;:24;;;;;;12836:50;;-1:-1:-1;12926:44:0;;12836:50;12926:28;:44::i;:::-;12917:4;12899:24;;;;:9;:24;;;;;;:71;;;;13020:15;;-1:-1:-1;;;;;13020:15:0;13010:26;;;;:42;;13041:10;13010:30;:42::i;:::-;12991:15;;-1:-1:-1;;;;;12991:15:0;;;12981:26;;;;:9;:26;;;;;;;;;:71;;;;13068:47;597:25:1;;;13093:4:0;;13068:47;;;;;;570:18:1;13068:47:0;;;;;;;13149:14;;13146:154;;13194:12;;:28;;13211:10;13194:16;:28::i;:::-;13179:12;:43;13259:4;;13242:34;;597:25:1;;;-1:-1:-1;;;;;13259:4:0;;;;13242:34;;;;;585:2:1;570:18;13242:34:0;;;;;;;13146:154;13319:21;:6;13330:9;13319:10;:21::i;:::-;13312:28;12341:1007;-1:-1:-1;;;;;;;;12341:1007:0:o;14:118:1:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;137:309;202:6;210;263:2;251:9;242:7;238:23;234:32;231:52;;;279:1;276;269:12;231:52;318:9;305:23;337:28;359:5;337:28;:::i;:::-;384:5;436:2;421:18;;;;408:32;;-1:-1:-1;;;137:309:1:o;633:196::-;701:20;;-1:-1:-1;;;;;750:54:1;;740:65;;730:93;;819:1;816;809:12;730:93;633:196;;;:::o;834:186::-;893:6;946:2;934:9;925:7;921:23;917:32;914:52;;;962:1;959;952:12;914:52;985:29;1004:9;985:29;:::i;1217:423::-;1259:3;1297:5;1291:12;1324:6;1319:3;1312:19;1349:1;1359:162;1373:6;1370:1;1367:13;1359:162;;;1435:4;1491:13;;;1487:22;;1481:29;1463:11;;;1459:20;;1452:59;1388:12;1359:162;;;1363:3;1566:1;1559:4;1550:6;1545:3;1541:16;1537:27;1530:38;1629:4;1622:2;1618:7;1613:2;1605:6;1601:15;1597:29;1592:3;1588:39;1584:50;1577:57;;;1217:423;;;;:::o;1645:220::-;1794:2;1783:9;1776:21;1757:4;1814:45;1855:2;1844:9;1840:18;1832:6;1814:45;:::i;1870:254::-;1938:6;1946;1999:2;1987:9;1978:7;1974:23;1970:32;1967:52;;;2015:1;2012;2005:12;1967:52;2038:29;2057:9;2038:29;:::i;2129:248::-;2197:6;2205;2258:2;2246:9;2237:7;2233:23;2229:32;2226:52;;;2274:1;2271;2264:12;2226:52;-1:-1:-1;;2297:23:1;;;2367:2;2352:18;;;2339:32;;-1:-1:-1;2129:248:1:o;2382:328::-;2459:6;2467;2475;2528:2;2516:9;2507:7;2503:23;2499:32;2496:52;;;2544:1;2541;2534:12;2496:52;2567:29;2586:9;2567:29;:::i;:::-;2557:39;;2615:38;2649:2;2638:9;2634:18;2615:38;:::i;:::-;2605:48;;2700:2;2689:9;2685:18;2672:32;2662:42;;2382:328;;;;;:::o;2904:316::-;2981:6;2989;2997;3050:2;3038:9;3029:7;3025:23;3021:32;3018:52;;;3066:1;3063;3056:12;3018:52;-1:-1:-1;;3089:23:1;;;3159:2;3144:18;;3131:32;;-1:-1:-1;3210:2:1;3195:18;;;3182:32;;2904:316;-1:-1:-1;2904:316:1:o;3225:180::-;3284:6;3337:2;3325:9;3316:7;3312:23;3308:32;3305:52;;;3353:1;3350;3343:12;3305:52;-1:-1:-1;3376:23:1;;3225:180;-1:-1:-1;3225:180:1:o;3410:523::-;3514:6;3522;3530;3538;3546;3554;3607:3;3595:9;3586:7;3582:23;3578:33;3575:53;;;3624:1;3621;3614:12;3575:53;-1:-1:-1;;3647:23:1;;;3717:2;3702:18;;3689:32;;-1:-1:-1;3768:2:1;3753:18;;3740:32;;3819:2;3804:18;;3791:32;;-1:-1:-1;3870:3:1;3855:19;;3842:33;;-1:-1:-1;3922:3:1;3907:19;3894:33;;-1:-1:-1;3410:523:1;-1:-1:-1;3410:523:1:o;4169:127::-;4230:10;4225:3;4221:20;4218:1;4211:31;4261:4;4258:1;4251:15;4285:4;4282:1;4275:15;4301:719;4344:5;4397:3;4390:4;4382:6;4378:17;4374:27;4364:55;;4415:1;4412;4405:12;4364:55;4451:6;4438:20;4477:18;4514:2;4510;4507:10;4504:36;;;4520:18;;:::i;:::-;4595:2;4589:9;4563:2;4649:13;;-1:-1:-1;;4645:22:1;;;4669:2;4641:31;4637:40;4625:53;;;4693:18;;;4713:22;;;4690:46;4687:72;;;4739:18;;:::i;:::-;4779:10;4775:2;4768:22;4814:2;4806:6;4799:18;4860:3;4853:4;4848:2;4840:6;4836:15;4832:26;4829:35;4826:55;;;4877:1;4874;4867:12;4826:55;4941:2;4934:4;4926:6;4922:17;4915:4;4907:6;4903:17;4890:54;4988:1;4981:4;4976:2;4968:6;4964:15;4960:26;4953:37;5008:6;4999:15;;;;;;4301:719;;;;:::o;5025:743::-;5132:6;5140;5148;5201:2;5189:9;5180:7;5176:23;5172:32;5169:52;;;5217:1;5214;5207:12;5169:52;5257:9;5244:23;5286:18;5327:2;5319:6;5316:14;5313:34;;;5343:1;5340;5333:12;5313:34;5366:50;5408:7;5399:6;5388:9;5384:22;5366:50;:::i;:::-;5356:60;;5469:2;5458:9;5454:18;5441:32;5425:48;;5498:2;5488:8;5485:16;5482:36;;;5514:1;5511;5504:12;5482:36;5537:52;5581:7;5570:8;5559:9;5555:24;5537:52;:::i;:::-;5527:62;;5642:2;5631:9;5627:18;5614:32;5598:48;;5671:2;5661:8;5658:16;5655:36;;;5687:1;5684;5677:12;5655:36;;5710:52;5754:7;5743:8;5732:9;5728:24;5710:52;:::i;:::-;5700:62;;;5025:743;;;;;:::o;5773:315::-;5838:6;5846;5899:2;5887:9;5878:7;5874:23;5870:32;5867:52;;;5915:1;5912;5905:12;5867:52;5938:29;5957:9;5938:29;:::i;:::-;5928:39;;6017:2;6006:9;6002:18;5989:32;6030:28;6052:5;6030:28;:::i;:::-;6077:5;6067:15;;;5773:315;;;;;:::o;6093:546::-;6338:2;6327:9;6320:21;6301:4;6364:45;6405:2;6394:9;6390:18;6382:6;6364:45;:::i;:::-;6457:9;6449:6;6445:22;6440:2;6429:9;6425:18;6418:50;6491:33;6517:6;6509;6491:33;:::i;:::-;6477:47;;6572:9;6564:6;6560:22;6555:2;6544:9;6540:18;6533:50;6600:33;6626:6;6618;6600:33;:::i;:::-;6592:41;6093:546;-1:-1:-1;;;;;;6093:546:1:o;6644:484::-;6739:6;6747;6755;6763;6771;6824:3;6812:9;6803:7;6799:23;6795:33;6792:53;;;6841:1;6838;6831:12;6792:53;6864:29;6883:9;6864:29;:::i;:::-;6854:39;;6912:38;6946:2;6935:9;6931:18;6912:38;:::i;:::-;6902:48;;6969:38;7003:2;6992:9;6988:18;6969:38;:::i;:::-;6959:48;;7026:38;7060:2;7049:9;7045:18;7026:38;:::i;:::-;7016:48;;7083:39;7117:3;7106:9;7102:19;7083:39;:::i;:::-;7073:49;;6644:484;;;;;;;;:::o;7133:260::-;7201:6;7209;7262:2;7250:9;7241:7;7237:23;7233:32;7230:52;;;7278:1;7275;7268:12;7230:52;7301:29;7320:9;7301:29;:::i;:::-;7291:39;;7349:38;7383:2;7372:9;7368:18;7349:38;:::i;:::-;7339:48;;7133:260;;;;;:::o;8008:127::-;8069:10;8064:3;8060:20;8057:1;8050:31;8100:4;8097:1;8090:15;8124:4;8121:1;8114:15;8140:217;8180:1;8206;8196:132;;8250:10;8245:3;8241:20;8238:1;8231:31;8285:4;8282:1;8275:15;8313:4;8310:1;8303:15;8196:132;-1:-1:-1;8342:9:1;;8140:217::o;8362:168::-;8435:9;;;8466;;8483:15;;;8477:22;;8463:37;8453:71;;8504:18;;:::i;8535:184::-;8605:6;8658:2;8646:9;8637:7;8633:23;8629:32;8626:52;;;8674:1;8671;8664:12;8626:52;-1:-1:-1;8697:16:1;;8535:184;-1:-1:-1;8535:184:1:o;9026:245::-;9093:6;9146:2;9134:9;9125:7;9121:23;9117:32;9114:52;;;9162:1;9159;9152:12;9114:52;9194:9;9188:16;9213:28;9235:5;9213:28;:::i;9634:380::-;9713:1;9709:12;;;;9756;;;9777:61;;9831:4;9823:6;9819:17;9809:27;;9777:61;9884:2;9876:6;9873:14;9853:18;9850:38;9847:161;;9930:10;9925:3;9921:20;9918:1;9911:31;9965:4;9962:1;9955:15;9993:4;9990:1;9983:15;9847:161;;9634:380;;;:::o;10145:545::-;10247:2;10242:3;10239:11;10236:448;;;10283:1;10308:5;10304:2;10297:17;10353:4;10349:2;10339:19;10423:2;10411:10;10407:19;10404:1;10400:27;10394:4;10390:38;10459:4;10447:10;10444:20;10441:47;;;-1:-1:-1;10482:4:1;10441:47;10537:2;10532:3;10528:12;10525:1;10521:20;10515:4;10511:31;10501:41;;10592:82;10610:2;10603:5;10600:13;10592:82;;;10655:17;;;10636:1;10625:13;10592:82;;10866:1352;10992:3;10986:10;11019:18;11011:6;11008:30;11005:56;;;11041:18;;:::i;:::-;11070:97;11160:6;11120:38;11152:4;11146:11;11120:38;:::i;:::-;11114:4;11070:97;:::i;:::-;11222:4;;11286:2;11275:14;;11303:1;11298:663;;;;12005:1;12022:6;12019:89;;;-1:-1:-1;12074:19:1;;;12068:26;12019:89;-1:-1:-1;;10823:1:1;10819:11;;;10815:24;10811:29;10801:40;10847:1;10843:11;;;10798:57;12121:81;;11268:944;;11298:663;10092:1;10085:14;;;10129:4;10116:18;;-1:-1:-1;;11334:20:1;;;11452:236;11466:7;11463:1;11460:14;11452:236;;;11555:19;;;11549:26;11534:42;;11647:27;;;;11615:1;11603:14;;;;11482:19;;11452:236;;;11456:3;11716:6;11707:7;11704:19;11701:201;;;11777:19;;;11771:26;-1:-1:-1;;11860:1:1;11856:14;;;11872:3;11852:24;11848:37;11844:42;11829:58;11814:74;;11701:201;-1:-1:-1;;;;;11948:1:1;11932:14;;;11928:22;11915:36;;-1:-1:-1;10866:1352:1:o;13032:127::-;13093:10;13088:3;13084:20;13081:1;13074:31;13124:4;13121:1;13114:15;13148:4;13145:1;13138:15;13164:1026;13426:4;13474:3;13463:9;13459:19;13505:6;13494:9;13487:25;13531:2;13569:6;13564:2;13553:9;13549:18;13542:34;13612:3;13607:2;13596:9;13592:18;13585:31;13636:6;13671;13665:13;13702:6;13694;13687:22;13740:3;13729:9;13725:19;13718:26;;13779:2;13771:6;13767:15;13753:29;;13800:1;13810:218;13824:6;13821:1;13818:13;13810:218;;;13889:13;;-1:-1:-1;;;;;13885:62:1;13873:75;;14003:15;;;;13968:12;;;;13846:1;13839:9;13810:218;;;-1:-1:-1;;;;;;;14084:55:1;;;;14079:2;14064:18;;14057:83;-1:-1:-1;;;14171:3:1;14156:19;14149:35;14045:3;13164:1026;-1:-1:-1;;;13164:1026:1:o;15040:306::-;15128:6;15136;15144;15197:2;15185:9;15176:7;15172:23;15168:32;15165:52;;;15213:1;15210;15203:12;15165:52;15242:9;15236:16;15226:26;;15292:2;15281:9;15277:18;15271:25;15261:35;;15336:2;15325:9;15321:18;15315:25;15305:35;;15040:306;;;;;:::o;15604:128::-;15671:9;;;15692:11;;;15689:37;;;15706:18;;:::i;16086:125::-;16151:9;;;16172:10;;;16169:36;;;16185:18;;:::i

Swarm Source

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