ETH Price: $3,101.49 (+1.14%)
Gas: 2 Gwei

Token

Banana (BANANA)
 

Overview

Max Total Supply

1,000,000,000,000 BANANA

Holders

198

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.610713079 BANANA

Value
$0.00
0xb11e5da5bb1c187db569cff7328f01e1692a7587
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:
Banana

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 20 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-30
*/

/* 

_
//\
V  \
 \  \_
  \,'.`-.
   |\ `. `.       
   ( \  `. `-.                        _,.-:\
    \ \   `.  `-._             __..--' ,-';/
     \ `.   `-.   `-..___..---'   _.--' ,'/
      `. `.    `-._        __..--'    ,' /
        `. `-_     ``--..''       _.-' ,'
          `-_ `-.___        __,--'   ,'
             `-.__  `----"""    __.-'
                  `--..____..--'


*/


// SPDX-License-Identifier: Unlicensed


pragma solidity 0.8.19;

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

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

    string constant _name = "Banana";
    string constant _symbol = "BANANA";
    uint8 constant _decimals = 9; 
  

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

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

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

    
    mapping (address => bool) isFeeexempt;
    mapping (address => bool) isTxLimitexempt;

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

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

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;
    
    uint256 targetLiquidity = 30;
    uint256 targetLiquidityDenominator = 100;

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

    bool public launchMode = false;
    mapping (address => bool) public islaunched;   

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

        isFeeexempt[msg.sender] = true;
        isFeeexempt[devFeeReceiver] = true;
            
        isTxLimitexempt[msg.sender] = true;
        isTxLimitexempt[pair] = true;
        isTxLimitexempt[devFeeReceiver] = true;
        isTxLimitexempt[marketingFeeReceiver] = true;
        isTxLimitexempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xad1c6A67B6910e485003dDf8570D7d39E758334e;
        devFeeReceiver = 0x7666b460007DFd74595BE04b6e729116E7715ab7;
        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 approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

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

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

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

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");
        
             if(launchMode){
                require(islaunched[recipient],"Not launched"); 
          }
        }
               
        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 manualswapback() external onlyOwner {
           swapBack();
    
    }

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

    }

    function manualSend() external { 
             payable(autoLiquidityReceiver).transfer(address(this).balance);

    }

    function clearForeignToken(address tokenAddress, uint256 tokens) public returns (bool) {
               if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
    }

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

     function enableWL(bool _status) public onlyOwner {
        launchMode = _status;
    }

    function manageWL(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            islaunched[addresses[i]] = status;
        }
    }

    function letHerRip() public onlyOwner {
        TradingOpen = true;
        buyMultiplier = 400;
        sellMultiplier = 900;
        transferMultiplier = 1500;
    }

        
           
    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 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (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 setTeamAddress(address holder, bool exempt) external onlyOwner {
        isFeeexempt[holder] = exempt;
        isTxLimitexempt[holder] = exempt;
    }

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

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

    function updateFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

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

    function setTargetLiquidity(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;
    }

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

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

    uint256 MVPC = 0;

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

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

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


event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearForeignToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWL","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":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"islaunched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"letHerRip","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageWL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"noLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","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":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTeamAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setisTXLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"updateFees","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":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006d5565b620000439064e8d4a51000620006e6565b600581905562000064906064906200005d906001620004a5565b906200053c565b6006556005546200007f906064906200005d906001620004a5565b6007556001600c556003600d556001600e556001600f556000601055601054600e54600c54600d54600f54620000b6919062000700565b620000c2919062000700565b620000ce919062000700565b620000da919062000700565b60115560646012819055601381905560148190556015819055601e601b55601c55601f805461ffff60a01b191690556021805460ff191660011790556005546103e8906200012a906019620006e6565b62000136919062000716565b6022553480156200014657600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000206573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022c919062000739565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200028b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b1919062000739565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000303573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000329919062000739565b601f80546001600160a01b039283166001600160a01b031991821681178355601e805483169091179055306000818152600960209081526040808320601d54881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b168752848720805483168417905596865283862080549091169091179055601680548716821790558454861673ad1c6a67b6910e485003ddf8570d7d39e758334e1790945585548516737666b460007dfd74595be04b6e729116e7715ab71790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007b4565b600082600003620004b95750600062000536565b6000620004c78385620006e6565b905082620004d6858362000716565b14620005335760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200053383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200058660201b60201c565b60008183620005aa5760405162461bcd60e51b81526004016200052a919062000764565b506000620005b9848662000716565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000619578160001904821115620005fd57620005fd620005c2565b808516156200060b57918102915b93841c9390800290620005dd565b509250929050565b600082620006325750600162000536565b81620006415750600062000536565b81600181146200065a5760028114620006655762000685565b600191505062000536565b60ff841115620006795762000679620005c2565b50506001821b62000536565b5060208310610133831016604e8410600b8410161715620006aa575081810a62000536565b620006b68383620005d8565b8060001904821115620006cd57620006cd620005c2565b029392505050565b60006200053360ff84168362000621565b8082028115828204841417620005365762000536620005c2565b80820180821115620005365762000536620005c2565b6000826200073457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200074c57600080fd5b81516001600160a01b03811681146200053357600080fd5b600060208083528351808285015260005b81811015620007935785810183015185820160400152820162000775565b506000604082860101526040601f19601f8301168501019250505092915050565b61268e80620007c46000396000f3fe6080604052600436106102215760003560e01c8063715018a61161011f578063715018a61461051057806378109e54146105255780637d1db4a51461053b578063893d20e8146105515780638cc5510f146105735780638da5cb5b1461059357806395d89b41146105a8578063992c58e4146105d7578063a8aa1b31146105f7578063a9059cbb14610617578063aba1193d14610637578063b2bdfa7b14610657578063b37dd69014610677578063b78e7edb14610698578063d51ed1c8146106b8578063d78e139d146106d8578063dd62ed3e146106f8578063e240c57f1461073e578063f0a9e3651461075e578063f2fde38b1461077e578063f42938901461079e578063f887ea40146107b3578063fc3843ef146107d357600080fd5b8063014667601461022d5780630445b6671461024457806306fdde031461026d57806308fd3d05146102a5578063095ea7b3146102d65780631161ae39146102f657806318160ddd146103165780631df4ccfc1461032b578063201e799114610341578063224290851461036157806323b872dd146103815780632ad75672146103a15780632b112e49146103c15780632ce35e9d146103d6578063313ce567146103eb57806331c87b2e14610407578063333c39a514610427578063456d5f5914610447578063571ac8b0146104675780635d0044ca146104875780636ddd1713146104a75780637007546b146104c157806370a08231146104f057600080fd5b3661022857005b600080fd5b34801561023957600080fd5b506102426107e8565b005b34801561025057600080fd5b5061025a60225481565b6040519081526020015b60405180910390f35b34801561027957600080fd5b5060408051808201909152600681526542616e616e6160d01b60208201525b60405161026491906120a8565b3480156102b157600080fd5b50601f546102c690600160a01b900460ff1681565b6040519015158152602001610264565b3480156102e257600080fd5b506102c66102f1366004612112565b610828565b34801561030257600080fd5b506102c661031136600461213c565b610895565b34801561032257600080fd5b5060055461025a565b34801561033757600080fd5b5061025a60115481565b34801561034d57600080fd5b5061024261035c36600461213c565b6108a9565b34801561036d57600080fd5b5061024261037c36600461215e565b6108de565b34801561038d57600080fd5b506102c661039c36600461218a565b610919565b3480156103ad57600080fd5b506102426103bc3660046121c6565b6109db565b3480156103cd57600080fd5b5061025a610a64565b3480156103e257600080fd5b50610242610aad565b3480156103f757600080fd5b5060405160098152602001610264565b34801561041357600080fd5b50610242610422366004612239565b610afe565b34801561043357600080fd5b50610242610442366004612256565b610b46565b34801561045357600080fd5b5061024261046236600461226f565b610baf565b34801561047357600080fd5b506102c66104823660046122a6565b610c04565b34801561049357600080fd5b506102426104a2366004612256565b610c12565b3480156104b357600080fd5b506021546102c69060ff1681565b3480156104cd57600080fd5b506102c66104dc3660046122a6565b602080526000908152604090205460ff1681565b3480156104fc57600080fd5b5061025a61050b3660046122a6565b610c7b565b34801561051c57600080fd5b50610242610c96565b34801561053157600080fd5b5061025a60075481565b34801561054757600080fd5b5061025a60065481565b34801561055d57600080fd5b50610566610d0a565b60405161026491906122c1565b34801561057f57600080fd5b5061024261058e36600461226f565b610d14565b34801561059f57600080fd5b50610566610d7c565b3480156105b457600080fd5b5060408051808201909152600681526542414e414e4160d01b6020820152610298565b3480156105e357600080fd5b506102426105f23660046122d5565b610d8b565b34801561060357600080fd5b50601f54610566906001600160a01b031681565b34801561062357600080fd5b506102c6610632366004612112565b610e51565b34801561064357600080fd5b50610242610652366004612318565b610e5e565b34801561066357600080fd5b50600054610566906001600160a01b031681565b34801561068357600080fd5b50601f546102c690600160a81b900460ff1681565b3480156106a457600080fd5b506102426106b3366004612381565b610e9f565b3480156106c457600080fd5b5061025a6106d3366004612256565b61109b565b3480156106e457600080fd5b506102426106f3366004612256565b6110db565b34801561070457600080fd5b5061025a610713366004612401565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561074a57600080fd5b50610242610759366004612434565b61112f565b34801561076a57600080fd5b506102c6610779366004612112565b6111ce565b34801561078a57600080fd5b506102426107993660046122a6565b6112bf565b3480156107aa57600080fd5b506102426113a9565b3480156107bf57600080fd5b50601d54610566906001600160a01b031681565b3480156107df57600080fd5b506102426113e5565b6000546001600160a01b0316331461081b5760405162461bcd60e51b81526004016108129061248a565b60405180910390fd5b6005546007819055600655565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108839086815260200190565b60405180910390a35060015b92915050565b6000826108a18361109b565b119392505050565b6000546001600160a01b031633146108d35760405162461bcd60e51b81526004016108129061248a565b601b91909155601c55565b6000546001600160a01b031633146109085760405162461bcd60e51b81526004016108129061248a565b601391909155601491909155601555565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146109c6576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546109a1918490611419565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109d1848484611453565b90505b9392505050565b6000546001600160a01b03163314610a055760405162461bcd60e51b81526004016108129061248a565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b600454600090610aa890610a80906001600160a01b0316610c7b565b600354610aa290610a99906001600160a01b0316610c7b565b60055490611816565b90611816565b905090565b6000546001600160a01b03163314610ad75760405162461bcd60e51b81526004016108129061248a565b601f805460ff60a01b1916600160a01b1790556101906014556103846013556105dc601555565b6000546001600160a01b03163314610b285760405162461bcd60e51b81526004016108129061248a565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b03163314610b705760405162461bcd60e51b81526004016108129061248a565b6103e8600554610b8091906124d5565b6006541015610b8e57600080fd5b6103e881600554610b9f91906124f7565b610ba991906124d5565b60065550565b6000546001600160a01b03163314610bd95760405162461bcd60e51b81526004016108129061248a565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b600061088f82600019610828565b6000546001600160a01b03163314610c3c5760405162461bcd60e51b81526004016108129061248a565b6103e8600554610c4c91906124d5565b6007541015610c5a57600080fd5b6103e881600554610c6b91906124f7565b610c7591906124d5565b60075550565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610cc05760405162461bcd60e51b81526004016108129061248a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610aa8610d7c565b6000546001600160a01b03163314610d3e5760405162461bcd60e51b81526004016108129061248a565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b031690565b6000546001600160a01b03163314610db55760405162461bcd60e51b81526004016108129061248a565b600c869055600f859055600d849055600e8390556010829055610de682610de0858188818c8c611858565b90611858565b6011556012819055610df96005826124d5565b60115410610e495760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e203230250000006044820152606401610812565b505050505050565b60006109d4338484611453565b6000546001600160a01b03163314610e885760405162461bcd60e51b81526004016108129061248a565b6021805460ff191692151592909217909155602255565b6000546001600160a01b03163314610ec95760405162461bcd60e51b81526004016108129061248a565b6101f58310610f305760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610812565b828114610f905760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610812565b6000805b84811015610fd457838382818110610fae57610fae61250e565b9050602002013582610fc09190612524565b915080610fcc81612537565b915050610f94565b5080610fdf87610c7b565b101561102b5760405162461bcd60e51b815260206004820152601b60248201527a139bdd08195b9bdd59da081d1bdad95b9cc81a5b881dd85b1b195d602a1b6044820152606401610812565b60005b848110156110925761107f8787878481811061104c5761104c61250e565b905060200201602081019061106191906122a6565b8686858181106110735761107361250e565b905060200201356118b5565b508061108a81612537565b91505061102e565b50505050505050565b600061088f6110a8610a64565b601f546110d5906110ce906002906110c8906001600160a01b0316610c7b565b90611989565b8590611989565b90611a0b565b60195447906001600160a01b03166108fc60646110f885856124f7565b61110291906124d5565b6040518115909202916000818181858888f1935050505015801561112a573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146111595760405162461bcd60e51b81526004016108129061248a565b60005b828110156111c857816020600086868581811061117b5761117b61250e565b905060200201602081019061119091906122a6565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556111c181612537565b905061115c565b50505050565b600081600003611248576040516370a0823160e01b81526001600160a01b038416906370a08231906112049030906004016122c1565b602060405180830381865afa158015611221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112459190612550565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af115801561129b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d49190612569565b6000546001600160a01b031633146112e95760405162461bcd60e51b81526004016108129061248a565b6001600160a01b03811661134e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610812565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156113e2573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461140f5760405162461bcd60e51b81526004016108129061248a565b611417611a4a565b565b6000818484111561143d5760405162461bcd60e51b815260040161081291906120a8565b50600061144a8486612586565b95945050505050565b60235460009060ff16156114735761146c8484846118b5565b90506109d4565b6001600160a01b03841660009081526001602052604090205460ff161580156114b557506001600160a01b03831660009081526001602052604090205460ff16155b1561157257601f54600160a01b900460ff1661150a5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610812565b601f54600160a81b900460ff1615611572576001600160a01b038316600090815260208052604090205460ff166115725760405162461bcd60e51b815260206004820152600c60248201526b139bdd081b185d5b98da195960a21b6044820152606401610812565b6001600160a01b03841660009081526001602052604090205460ff161580156115a457506001600160a01b0383163014155b80156115be57506003546001600160a01b03848116911614155b80156115d85750601f546001600160a01b03848116911614155b80156115f25750601a546001600160a01b03848116911614155b801561160c57506017546001600160a01b03848116911614155b801561163157506001600160a01b0383166000908152600b602052604090205460ff16155b156116c757600061164184610c7b565b6007549091506116518483612524565b11156116c55760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610812565b505b6116d18483611e31565b6116d9611e9e565b156116e6576116e6611a4a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611738918490611419565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061178557506001600160a01b0384166000908152600a602052604090205460ff165b61179957611794858486611eed565b61179b565b825b6001600160a01b0385166000908152600860205260409020549091506117c19082611858565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020612639833981519152906118039085815260200190565b60405180910390a3506001949350505050565b60006109d483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611419565b6000806118658385612524565b9050838110156109d45760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b6044820152606401610812565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611906918490611419565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119359083611858565b6001600160a01b038085166000818152600860205260409081902093909355915190861690600080516020612639833981519152906119779086815260200190565b60405180910390a35060019392505050565b60008260000361199b5750600061088f565b60006119a783856124f7565b9050826119b485836124d5565b146109d45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610812565b60006109d483836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b81525061207a565b6023805460ff19166001179055601b54601c54600091611a6991610895565b611a7557600c54611a78565b60005b90506000611a9c60026110d56011546110d58660225461198990919063ffffffff16565b90506000611ab58260225461181690919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611aef57611aef61250e565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611b2057611b2061250e565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac94790611b6a908690600090879030904290600401612599565b600060405180830381600087803b158015611b8457600080fd5b505af1158015611b98573d6000803e3d6000fd5b505050506000611bb1824761181690919063ffffffff16565b90506000611bcc611bc3886002611a0b565b60115490611816565b90506000611be160026110d58481878d611989565b90506000611bfe836110d5600d548761198990919063ffffffff16565b90506000611c1b846110d5600f548861198990919063ffffffff16565b90506000611c38856110d5600e548961198990919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611c8a576040519150601f19603f3d011682016040523d82523d6000602084013e611c8f565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611cdf576040519150601f19603f3d011682016040523d82523d6000602084013e611ce4565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611d34576040519150601f19603f3d011682016040523d82523d6000602084013e611d39565b606091505b5060009250508b159050611e1957601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611db7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ddc919061260a565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b60065481111580611e5a57506001600160a01b0382166000908152600b602052604090205460ff165b611e9a5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610812565b5050565b601f546000906001600160a01b03163314801590611ebf575060235460ff16155b8015611ecd575060215460ff165b8015610aa857505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611f135750601354611f2e565b601f546001600160a01b0390811690861603611f2e57506014545b6000611f5b6012546064611f4291906124f7565b6110d5846110c86011548a61198990919063ffffffff16565b90506000611f7a6011546110d56010548561198990919063ffffffff16565b90506000611f888383611816565b30600090815260086020526040902054909150611fa59082611858565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611fd39083611858565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612639833981519152910160405180910390a381156120645760055461202d9083611816565b6005556004546040518381526001600160a01b03918216918a16906000805160206126398339815191529060200160405180910390a35b61206e8784611816565b98975050505050505050565b6000818361209b5760405162461bcd60e51b815260040161081291906120a8565b50600061144a84866124d5565b600060208083528351808285015260005b818110156120d5578581018301518582016040015282016120b9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461210d57600080fd5b919050565b6000806040838503121561212557600080fd5b61212e836120f6565b946020939093013593505050565b6000806040838503121561214f57600080fd5b50508035926020909101359150565b60008060006060848603121561217357600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561219f57600080fd5b6121a8846120f6565b92506121b6602085016120f6565b9150604084013590509250925092565b600080600080600060a086880312156121de57600080fd5b6121e7866120f6565b94506121f5602087016120f6565b9350612203604087016120f6565b9250612211606087016120f6565b915061221f608087016120f6565b90509295509295909350565b80151581146113e257600080fd5b60006020828403121561224b57600080fd5b81356109d48161222b565b60006020828403121561226857600080fd5b5035919050565b6000806040838503121561228257600080fd5b61228b836120f6565b9150602083013561229b8161222b565b809150509250929050565b6000602082840312156122b857600080fd5b6109d4826120f6565b6001600160a01b0391909116815260200190565b60008060008060008060c087890312156122ee57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561232b57600080fd5b823561212e8161222b565b60008083601f84011261234857600080fd5b5081356001600160401b0381111561235f57600080fd5b6020830191508360208260051b850101111561237a57600080fd5b9250929050565b60008060008060006060868803121561239957600080fd5b6123a2866120f6565b945060208601356001600160401b03808211156123be57600080fd5b6123ca89838a01612336565b909650945060408801359150808211156123e357600080fd5b506123f088828901612336565b969995985093965092949392505050565b6000806040838503121561241457600080fd5b61241d836120f6565b915061242b602084016120f6565b90509250929050565b60008060006040848603121561244957600080fd5b83356001600160401b0381111561245f57600080fd5b61246b86828701612336565b909450925050602084013561247f8161222b565b809150509250925092565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000826124f257634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761088f5761088f6124bf565b634e487b7160e01b600052603260045260246000fd5b8082018082111561088f5761088f6124bf565b600060018201612549576125496124bf565b5060010190565b60006020828403121561256257600080fd5b5051919050565b60006020828403121561257b57600080fd5b81516109d48161222b565b8181038181111561088f5761088f6124bf565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125e95784516001600160a01b0316835293830193918301916001016125c4565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561261f57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212208635f347e02d4e8ca3267a064df2294c74eee533f1ca2355002dfc4432009f8f64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102215760003560e01c8063715018a61161011f578063715018a61461051057806378109e54146105255780637d1db4a51461053b578063893d20e8146105515780638cc5510f146105735780638da5cb5b1461059357806395d89b41146105a8578063992c58e4146105d7578063a8aa1b31146105f7578063a9059cbb14610617578063aba1193d14610637578063b2bdfa7b14610657578063b37dd69014610677578063b78e7edb14610698578063d51ed1c8146106b8578063d78e139d146106d8578063dd62ed3e146106f8578063e240c57f1461073e578063f0a9e3651461075e578063f2fde38b1461077e578063f42938901461079e578063f887ea40146107b3578063fc3843ef146107d357600080fd5b8063014667601461022d5780630445b6671461024457806306fdde031461026d57806308fd3d05146102a5578063095ea7b3146102d65780631161ae39146102f657806318160ddd146103165780631df4ccfc1461032b578063201e799114610341578063224290851461036157806323b872dd146103815780632ad75672146103a15780632b112e49146103c15780632ce35e9d146103d6578063313ce567146103eb57806331c87b2e14610407578063333c39a514610427578063456d5f5914610447578063571ac8b0146104675780635d0044ca146104875780636ddd1713146104a75780637007546b146104c157806370a08231146104f057600080fd5b3661022857005b600080fd5b34801561023957600080fd5b506102426107e8565b005b34801561025057600080fd5b5061025a60225481565b6040519081526020015b60405180910390f35b34801561027957600080fd5b5060408051808201909152600681526542616e616e6160d01b60208201525b60405161026491906120a8565b3480156102b157600080fd5b50601f546102c690600160a01b900460ff1681565b6040519015158152602001610264565b3480156102e257600080fd5b506102c66102f1366004612112565b610828565b34801561030257600080fd5b506102c661031136600461213c565b610895565b34801561032257600080fd5b5060055461025a565b34801561033757600080fd5b5061025a60115481565b34801561034d57600080fd5b5061024261035c36600461213c565b6108a9565b34801561036d57600080fd5b5061024261037c36600461215e565b6108de565b34801561038d57600080fd5b506102c661039c36600461218a565b610919565b3480156103ad57600080fd5b506102426103bc3660046121c6565b6109db565b3480156103cd57600080fd5b5061025a610a64565b3480156103e257600080fd5b50610242610aad565b3480156103f757600080fd5b5060405160098152602001610264565b34801561041357600080fd5b50610242610422366004612239565b610afe565b34801561043357600080fd5b50610242610442366004612256565b610b46565b34801561045357600080fd5b5061024261046236600461226f565b610baf565b34801561047357600080fd5b506102c66104823660046122a6565b610c04565b34801561049357600080fd5b506102426104a2366004612256565b610c12565b3480156104b357600080fd5b506021546102c69060ff1681565b3480156104cd57600080fd5b506102c66104dc3660046122a6565b602080526000908152604090205460ff1681565b3480156104fc57600080fd5b5061025a61050b3660046122a6565b610c7b565b34801561051c57600080fd5b50610242610c96565b34801561053157600080fd5b5061025a60075481565b34801561054757600080fd5b5061025a60065481565b34801561055d57600080fd5b50610566610d0a565b60405161026491906122c1565b34801561057f57600080fd5b5061024261058e36600461226f565b610d14565b34801561059f57600080fd5b50610566610d7c565b3480156105b457600080fd5b5060408051808201909152600681526542414e414e4160d01b6020820152610298565b3480156105e357600080fd5b506102426105f23660046122d5565b610d8b565b34801561060357600080fd5b50601f54610566906001600160a01b031681565b34801561062357600080fd5b506102c6610632366004612112565b610e51565b34801561064357600080fd5b50610242610652366004612318565b610e5e565b34801561066357600080fd5b50600054610566906001600160a01b031681565b34801561068357600080fd5b50601f546102c690600160a81b900460ff1681565b3480156106a457600080fd5b506102426106b3366004612381565b610e9f565b3480156106c457600080fd5b5061025a6106d3366004612256565b61109b565b3480156106e457600080fd5b506102426106f3366004612256565b6110db565b34801561070457600080fd5b5061025a610713366004612401565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561074a57600080fd5b50610242610759366004612434565b61112f565b34801561076a57600080fd5b506102c6610779366004612112565b6111ce565b34801561078a57600080fd5b506102426107993660046122a6565b6112bf565b3480156107aa57600080fd5b506102426113a9565b3480156107bf57600080fd5b50601d54610566906001600160a01b031681565b3480156107df57600080fd5b506102426113e5565b6000546001600160a01b0316331461081b5760405162461bcd60e51b81526004016108129061248a565b60405180910390fd5b6005546007819055600655565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108839086815260200190565b60405180910390a35060015b92915050565b6000826108a18361109b565b119392505050565b6000546001600160a01b031633146108d35760405162461bcd60e51b81526004016108129061248a565b601b91909155601c55565b6000546001600160a01b031633146109085760405162461bcd60e51b81526004016108129061248a565b601391909155601491909155601555565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146109c6576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546109a1918490611419565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109d1848484611453565b90505b9392505050565b6000546001600160a01b03163314610a055760405162461bcd60e51b81526004016108129061248a565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b600454600090610aa890610a80906001600160a01b0316610c7b565b600354610aa290610a99906001600160a01b0316610c7b565b60055490611816565b90611816565b905090565b6000546001600160a01b03163314610ad75760405162461bcd60e51b81526004016108129061248a565b601f805460ff60a01b1916600160a01b1790556101906014556103846013556105dc601555565b6000546001600160a01b03163314610b285760405162461bcd60e51b81526004016108129061248a565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b03163314610b705760405162461bcd60e51b81526004016108129061248a565b6103e8600554610b8091906124d5565b6006541015610b8e57600080fd5b6103e881600554610b9f91906124f7565b610ba991906124d5565b60065550565b6000546001600160a01b03163314610bd95760405162461bcd60e51b81526004016108129061248a565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b600061088f82600019610828565b6000546001600160a01b03163314610c3c5760405162461bcd60e51b81526004016108129061248a565b6103e8600554610c4c91906124d5565b6007541015610c5a57600080fd5b6103e881600554610c6b91906124f7565b610c7591906124d5565b60075550565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610cc05760405162461bcd60e51b81526004016108129061248a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610aa8610d7c565b6000546001600160a01b03163314610d3e5760405162461bcd60e51b81526004016108129061248a565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b031690565b6000546001600160a01b03163314610db55760405162461bcd60e51b81526004016108129061248a565b600c869055600f859055600d849055600e8390556010829055610de682610de0858188818c8c611858565b90611858565b6011556012819055610df96005826124d5565b60115410610e495760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e203230250000006044820152606401610812565b505050505050565b60006109d4338484611453565b6000546001600160a01b03163314610e885760405162461bcd60e51b81526004016108129061248a565b6021805460ff191692151592909217909155602255565b6000546001600160a01b03163314610ec95760405162461bcd60e51b81526004016108129061248a565b6101f58310610f305760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610812565b828114610f905760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610812565b6000805b84811015610fd457838382818110610fae57610fae61250e565b9050602002013582610fc09190612524565b915080610fcc81612537565b915050610f94565b5080610fdf87610c7b565b101561102b5760405162461bcd60e51b815260206004820152601b60248201527a139bdd08195b9bdd59da081d1bdad95b9cc81a5b881dd85b1b195d602a1b6044820152606401610812565b60005b848110156110925761107f8787878481811061104c5761104c61250e565b905060200201602081019061106191906122a6565b8686858181106110735761107361250e565b905060200201356118b5565b508061108a81612537565b91505061102e565b50505050505050565b600061088f6110a8610a64565b601f546110d5906110ce906002906110c8906001600160a01b0316610c7b565b90611989565b8590611989565b90611a0b565b60195447906001600160a01b03166108fc60646110f885856124f7565b61110291906124d5565b6040518115909202916000818181858888f1935050505015801561112a573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146111595760405162461bcd60e51b81526004016108129061248a565b60005b828110156111c857816020600086868581811061117b5761117b61250e565b905060200201602081019061119091906122a6565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556111c181612537565b905061115c565b50505050565b600081600003611248576040516370a0823160e01b81526001600160a01b038416906370a08231906112049030906004016122c1565b602060405180830381865afa158015611221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112459190612550565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af115801561129b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d49190612569565b6000546001600160a01b031633146112e95760405162461bcd60e51b81526004016108129061248a565b6001600160a01b03811661134e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610812565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156113e2573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461140f5760405162461bcd60e51b81526004016108129061248a565b611417611a4a565b565b6000818484111561143d5760405162461bcd60e51b815260040161081291906120a8565b50600061144a8486612586565b95945050505050565b60235460009060ff16156114735761146c8484846118b5565b90506109d4565b6001600160a01b03841660009081526001602052604090205460ff161580156114b557506001600160a01b03831660009081526001602052604090205460ff16155b1561157257601f54600160a01b900460ff1661150a5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610812565b601f54600160a81b900460ff1615611572576001600160a01b038316600090815260208052604090205460ff166115725760405162461bcd60e51b815260206004820152600c60248201526b139bdd081b185d5b98da195960a21b6044820152606401610812565b6001600160a01b03841660009081526001602052604090205460ff161580156115a457506001600160a01b0383163014155b80156115be57506003546001600160a01b03848116911614155b80156115d85750601f546001600160a01b03848116911614155b80156115f25750601a546001600160a01b03848116911614155b801561160c57506017546001600160a01b03848116911614155b801561163157506001600160a01b0383166000908152600b602052604090205460ff16155b156116c757600061164184610c7b565b6007549091506116518483612524565b11156116c55760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610812565b505b6116d18483611e31565b6116d9611e9e565b156116e6576116e6611a4a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611738918490611419565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061178557506001600160a01b0384166000908152600a602052604090205460ff165b61179957611794858486611eed565b61179b565b825b6001600160a01b0385166000908152600860205260409020549091506117c19082611858565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020612639833981519152906118039085815260200190565b60405180910390a3506001949350505050565b60006109d483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611419565b6000806118658385612524565b9050838110156109d45760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b6044820152606401610812565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611906918490611419565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119359083611858565b6001600160a01b038085166000818152600860205260409081902093909355915190861690600080516020612639833981519152906119779086815260200190565b60405180910390a35060019392505050565b60008260000361199b5750600061088f565b60006119a783856124f7565b9050826119b485836124d5565b146109d45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610812565b60006109d483836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b81525061207a565b6023805460ff19166001179055601b54601c54600091611a6991610895565b611a7557600c54611a78565b60005b90506000611a9c60026110d56011546110d58660225461198990919063ffffffff16565b90506000611ab58260225461181690919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611aef57611aef61250e565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611b2057611b2061250e565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac94790611b6a908690600090879030904290600401612599565b600060405180830381600087803b158015611b8457600080fd5b505af1158015611b98573d6000803e3d6000fd5b505050506000611bb1824761181690919063ffffffff16565b90506000611bcc611bc3886002611a0b565b60115490611816565b90506000611be160026110d58481878d611989565b90506000611bfe836110d5600d548761198990919063ffffffff16565b90506000611c1b846110d5600f548861198990919063ffffffff16565b90506000611c38856110d5600e548961198990919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611c8a576040519150601f19603f3d011682016040523d82523d6000602084013e611c8f565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611cdf576040519150601f19603f3d011682016040523d82523d6000602084013e611ce4565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611d34576040519150601f19603f3d011682016040523d82523d6000602084013e611d39565b606091505b5060009250508b159050611e1957601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611db7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ddc919061260a565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b60065481111580611e5a57506001600160a01b0382166000908152600b602052604090205460ff165b611e9a5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610812565b5050565b601f546000906001600160a01b03163314801590611ebf575060235460ff16155b8015611ecd575060215460ff165b8015610aa857505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611f135750601354611f2e565b601f546001600160a01b0390811690861603611f2e57506014545b6000611f5b6012546064611f4291906124f7565b6110d5846110c86011548a61198990919063ffffffff16565b90506000611f7a6011546110d56010548561198990919063ffffffff16565b90506000611f888383611816565b30600090815260086020526040902054909150611fa59082611858565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611fd39083611858565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612639833981519152910160405180910390a381156120645760055461202d9083611816565b6005556004546040518381526001600160a01b03918216918a16906000805160206126398339815191529060200160405180910390a35b61206e8784611816565b98975050505050505050565b6000818361209b5760405162461bcd60e51b815260040161081291906120a8565b50600061144a84866124d5565b600060208083528351808285015260005b818110156120d5578581018301518582016040015282016120b9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461210d57600080fd5b919050565b6000806040838503121561212557600080fd5b61212e836120f6565b946020939093013593505050565b6000806040838503121561214f57600080fd5b50508035926020909101359150565b60008060006060848603121561217357600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561219f57600080fd5b6121a8846120f6565b92506121b6602085016120f6565b9150604084013590509250925092565b600080600080600060a086880312156121de57600080fd5b6121e7866120f6565b94506121f5602087016120f6565b9350612203604087016120f6565b9250612211606087016120f6565b915061221f608087016120f6565b90509295509295909350565b80151581146113e257600080fd5b60006020828403121561224b57600080fd5b81356109d48161222b565b60006020828403121561226857600080fd5b5035919050565b6000806040838503121561228257600080fd5b61228b836120f6565b9150602083013561229b8161222b565b809150509250929050565b6000602082840312156122b857600080fd5b6109d4826120f6565b6001600160a01b0391909116815260200190565b60008060008060008060c087890312156122ee57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561232b57600080fd5b823561212e8161222b565b60008083601f84011261234857600080fd5b5081356001600160401b0381111561235f57600080fd5b6020830191508360208260051b850101111561237a57600080fd5b9250929050565b60008060008060006060868803121561239957600080fd5b6123a2866120f6565b945060208601356001600160401b03808211156123be57600080fd5b6123ca89838a01612336565b909650945060408801359150808211156123e357600080fd5b506123f088828901612336565b969995985093965092949392505050565b6000806040838503121561241457600080fd5b61241d836120f6565b915061242b602084016120f6565b90509250929050565b60008060006040848603121561244957600080fd5b83356001600160401b0381111561245f57600080fd5b61246b86828701612336565b909450925050602084013561247f8161222b565b809150509250925092565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000826124f257634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761088f5761088f6124bf565b634e487b7160e01b600052603260045260246000fd5b8082018082111561088f5761088f6124bf565b600060018201612549576125496124bf565b5060010190565b60006020828403121561256257600080fd5b5051919050565b60006020828403121561257b57600080fd5b81516109d48161222b565b8181038181111561088f5761088f6124bf565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125e95784516001600160a01b0316835293830193918301916001016125c4565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561261f57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212208635f347e02d4e8ca3267a064df2294c74eee533f1ca2355002dfc4432009f8f64736f6c63430008130033

Deployed Bytecode Sourcemap

5390:14632:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14052:129;;;;;;;;;;;;;:::i;:::-;;7178:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7178:55:0;;;;;;;;8712:80;;;;;;;;;;-1:-1:-1;8784:5:0;;;;;;;;;;;;-1:-1:-1;;;8784:5:0;;;;8712:80;;;;;;;:::i;7008:31::-;;;;;;;;;;-1:-1:-1;7008:31:0;;;;-1:-1:-1;;;7008:31:0;;;;;;;;;914:14:1;;907:22;889:41;;877:2;862:18;7008:31:0;749:187:1;9134:216:0;;;;;;;;;;-1:-1:-1;9134:216:0;;;;;:::i;:::-;;:::i;19201:150::-;;;;;;;;;;-1:-1:-1;19201:150:0;;;;;:::i;:::-;;:::i;8442:88::-;;;;;;;;;;-1:-1:-1;8515:12:0;;8442:88;;6362:90;;;;;;;;;;;;;;;;18682:182;;;;;;;;;;-1:-1:-1;18682:182:0;;;;;:::i;:::-;;:::i;14609:210::-;;;;;;;;;;-1:-1:-1;14609:210:0;;;;;:::i;:::-;;:::i;9652:370::-;;;;;;;;;;-1:-1:-1;9652:370:0;;;;;:::i;:::-;;:::i;18071:440::-;;;;;;;;;;-1:-1:-1;18071:440:0;;;;;:::i;:::-;;:::i;18876:142::-;;;;;;;;;;;;;:::i;15131:172::-;;;;;;;;;;;;;:::i;8536:80::-;;;;;;;;;;-1:-1:-1;8536:80:0;;5728:1;2916:36:1;;2904:2;2889:18;8536:80:0;2774:184:1;14828:88:0;;;;;;;;;;-1:-1:-1;14828:88:0;;;;;:::i;:::-;;:::i;10261:187::-;;;;;;;;;;-1:-1:-1;10261:187:0;;;;;:::i;:::-;;:::i;17373:127::-;;;;;;;;;;-1:-1:-1;17373:127:0;;;;;:::i;:::-;;:::i;9358:122::-;;;;;;;;;;-1:-1:-1;9358:122:0;;;;;:::i;:::-;;:::i;10034:219::-;;;;;;;;;;-1:-1:-1;10034:219:0;;;;;:::i;:::-;;:::i;7141:30::-;;;;;;;;;;-1:-1:-1;7141:30:0;;;;;;;;7086:43;;;;;;;;;;-1:-1:-1;7086:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8882:105;;;;;;;;;;-1:-1:-1;8882:105:0;;;;;:::i;:::-;;:::i;3447:148::-;;;;;;;;;;;;;:::i;5866:61::-;;;;;;;;;;;;;;;;5801:58;;;;;;;;;;;;;;;;8798:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;17203:162::-;;;;;;;;;;-1:-1:-1;17203:162:0;;;;;:::i;:::-;;:::i;3233:79::-;;;;;;;;;;;;;:::i;8622:84::-;;;;;;;;;;-1:-1:-1;8696:7:0;;;;;;;;;;;;-1:-1:-1;;;8696:7:0;;;;8622:84;;17508:555;;;;;;;;;;-1:-1:-1;17508:555:0;;;;;:::i;:::-;;:::i;6976:19::-;;;;;;;;;;-1:-1:-1;6976:19:0;;;;-1:-1:-1;;;;;6976:19:0;;;9488:156;;;;;;;;;;-1:-1:-1;9488:156:0;;;;;:::i;:::-;;:::i;18519:155::-;;;;;;;;;;-1:-1:-1;18519:155:0;;;;;:::i;:::-;;:::i;2853:21::-;;;;;;;;;;-1:-1:-1;2853:21:0;;;;-1:-1:-1;;;;;2853:21:0;;;7049:30;;;;;;;;;;-1:-1:-1;7049:30:0;;;;-1:-1:-1;;;7049:30:0;;;;;;19355:593;;;;;;;;;;-1:-1:-1;19355:593:0;;;;;:::i;:::-;;:::i;19026:167::-;;;;;;;;;;-1:-1:-1;19026:167:0;;;;;:::i;:::-;;:::i;13754:198::-;;;;;;;;;;-1:-1:-1;13754:198:0;;;;;:::i;:::-;;:::i;8993:133::-;;;;;;;;;;-1:-1:-1;8993:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9095:19:0;;;9077:7;9095:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8993:133;14924:199;;;;;;;;;;-1:-1:-1;14924:199:0;;;;;:::i;:::-;;:::i;14317:284::-;;;;;;;;;;-1:-1:-1;14317:284:0;;;;;:::i;:::-;;:::i;3603:244::-;;;;;;;;;;-1:-1:-1;3603:244:0;;;;;:::i;:::-;;:::i;14189:120::-;;;;;;;;;;;;;:::i;6906:24::-;;;;;;;;;;-1:-1:-1;6906:24:0;;;;-1:-1:-1;;;;;6906:24:0;;;13961:83;;;;;;;;;;;;;:::i;14052:129::-;3360:6;;-1:-1:-1;;;;;3360:6:0;2670:10;3360:22;3352:67;;;;-1:-1:-1;;;3352:67:0;;;;;;;:::i;:::-;;;;;;;;;14121:12:::1;::::0;14103:15:::1;:30:::0;;;14144:12:::1;:27:::0;14052:129::o;9134:216::-;9238:10;9209:4;9226:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9226:32:0;;;;;;;;;;:41;;;9283:37;9209:4;;9226:32;;9283:37;;;;9261:6;160:25:1;;148:2;133:18;;14:177;9283:37:0;;;;;;;;-1:-1:-1;9338:4:0;9134:216;;;;;:::o;19201:150::-;19281:4;19337:6;19305:29;19325:8;19305:19;:29::i;:::-;:38;;19201:150;-1:-1:-1;;;19201:150:0:o;18682:182::-;3360:6;;-1:-1:-1;;;;;3360:6:0;2670:10;3360:22;3352:67;;;;-1:-1:-1;;;3352:67:0;;;;;;;:::i;:::-;18779:15:::1;:25:::0;;;;18815:26:::1;:41:::0;18682:182::o;14609:210::-;3360:6;;-1:-1:-1;;;;;3360:6:0;2670:10;3360:22;3352:67;;;;-1:-1:-1;;;3352:67:0;;;;;;;:::i;:::-;14704:14:::1;:22:::0;;;;14737:13:::1;:20:::0;;;;14768:18:::1;:27:::0;14609:210::o;9652:370::-;-1:-1:-1;;;;;9772:19:0;;9752:4;9772:19;;;:11;:19;;;;;;;;9792:10;9772:31;;;;;;;;-1:-1:-1;;9772:52:0;9769:186;;9874:69;;;;;;;;;;;-1:-1:-1;;;9874:69:0;;;;;;;;-1:-1:-1;;;;;9874:19:0;;-1:-1:-1;9874:19:0;;;:11;:19;;;;;9894:10;9874:31;;;;;;;;;;:69;;9910:6;;9874:35;:69::i;:::-;-1:-1:-1;;;;;9840:19:0;;;;;;:11;:19;;;;;;;;9860:10;9840:31;;;;;;;:103;9769:186;9974:40;9988:6;9996:9;10007:6;9974:13;:40::i;:::-;9967:47;;9652:370;;;;;;:::o;18071:440::-;3360:6;;-1:-1:-1;;;;;3360:6:0;2670:10;3360:22;3352:67;;;;-1:-1:-1;;;3352:67:0;;;;;;;:::i;:::-;18269:21:::1;:46:::0;;-1:-1:-1;;;;;;18269:46:0;;::::1;-1:-1:-1::0;;;;;18269:46:0;;::::1;;::::0;;;18326:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18381:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18424:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18469:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;18071:440::o;18876:142::-;19004:4;;18929:7;;18956:54;;18994:15;;-1:-1:-1;;;;;19004:4:0;18994:9;:15::i;:::-;18983:4;;18956:33;;18973:15;;-1:-1:-1;;;;;18983:4:0;18973:9;:15::i;:::-;18956:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18949:61;;18876:142;:::o;15131:172::-;3360:6;;-1:-1:-1;;;;;3360:6:0;2670:10;3360:22;3352:67;;;;-1:-1:-1;;;3352:67:0;;;;;;;:::i;:::-;15180:11:::1;:18:::0;;-1:-1:-1;;;;15180:18:0::1;-1:-1:-1::0;;;15180:18:0::1;::::0;;15225:3:::1;15180:11;15209:19:::0;15256:3:::1;15239:14;:20:::0;15291:4:::1;15270:18;:25:::0;15131:172::o;14828:88::-;3360:6;;-1:-1:-1;;;;;3360:6:0;2670:10;3360:22;3352:67;;;;-1:-1:-1;;;3352:67:0;;;;;;;:::i;:::-;14888:10:::1;:20:::0;;;::::1;;-1:-1:-1::0;;;14888:20:0::1;-1:-1:-1::0;;;;14888:20:0;;::::1;::::0;;;::::1;::::0;;14828:88::o;10261:187::-;3360:6;;-1:-1:-1;;;;;3360:6:0;2670:10;3360:22;3352:67;;;;-1:-1:-1;;;3352:67:0;;;;;;;:::i;:::-;10371:4:::1;10356:12;;:19;;;;:::i;:::-;10340:12;;:35;;10332:44;;;::::0;::::1;;10436:4;10419:12;10404;;:27;;;;:::i;:::-;10403:37;;;;:::i;:::-;10388:12;:52:::0;-1:-1:-1;10261:187:0:o;17373:127::-;3360:6;;-1:-1:-1;;;;;3360:6:0;2670:10;3360:22;3352:67;;;;-1:-1:-1;;;3352:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17460:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17460:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17373:127::o;9358:122::-;9413:4;9437:35;9445:7;-1:-1:-1;;9437:7:0;:35::i;10034:219::-;3360:6;;-1:-1:-1;;;;;3360:6:0;2670:10;3360:22;3352:67;;;;-1:-1:-1;;;3352:67:0;;;;;;;:::i;:::-;10153:4:::1;10138:12;;:19;;;;:::i;:::-;10119:15;;:38;;10111:47;;;::::0;::::1;;10223:4;10204:14;10189:12;;:29;;;;:::i;:::-;10188:39;;;;:::i;:::-;10170:15;:57:::0;-1:-1:-1;10034:219:0:o;8882:105::-;-1:-1:-1;;;;;8966:18:0;8948:7;8966:18;;;:9;:18;;;;;;;8882:105::o;3447:148::-;3360:6;;-1:-1:-1;;;;;3360:6:0;2670:10;3360:22;3352:67;;;;-1:-1:-1;;;3352:67:0;;;;;;;:::i;:::-;3554:1:::1;3538:6:::0;;3517:40:::1;::::0;-1:-1:-1;;;;;3538:6:0;;::::1;::::0;3517:40:::1;::::0;3554:1;;3517:40:::1;3585:1;3568:19:::0;;-1:-1:-1;;;;;;3568:19:0::1;::::0;;3447:148::o;8798:78::-;8850:7;8867;:5;:7::i;17203:162::-;3360:6;;-1:-1:-1;;;;;3360:6:0;2670:10;3360:22;3352:67;;;;-1:-1:-1;;;3352:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17286:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;17286:28:0;;::::1;::::0;::::1;::::0;;;17325:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;17203:162::o;3233:79::-;3271:7;3298:6;-1:-1:-1;;;;;3298:6:0;;3233:79::o;17508:555::-;3360:6;;-1:-1:-1;;;;;3360:6:0;2670:10;3360:22;3352:67;;;;-1:-1:-1;;;3352:67:0;;;;;;;:::i;:::-;17682:12:::1;:28:::0;;;17721:7:::1;:18:::0;;;17750:12:::1;:28:::0;;;17789:6:::1;:16:::0;;;17816:7:::1;:18:::0;;;17856:73:::1;17826:8:::0;17856:59:::1;17798:7:::0;17856:59;17765:13;17856:59;17697:13;17731:8;17856:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:73::-;17845:8;:84:::0;17940:14:::1;:32:::0;;;18002:18:::1;18019:1;17957:15:::0;18002:18:::1;:::i;:::-;17991:8;;:29;17983:71;;;::::0;-1:-1:-1;;;17983:71:0;;8454:2:1;17983:71:0::1;::::0;::::1;8436:21:1::0;8493:2;8473:18;;;8466:30;8532:31;8512:18;;;8505:59;8581:18;;17983:71:0::1;8252:353:1::0;17983:71:0::1;17508:555:::0;;;;;;:::o;9488:156::-;9568:4;9592:44;9606:10;9618:9;9629:6;9592:13;:44::i;18519:155::-;3360:6;;-1:-1:-1;;;;;3360:6:0;2670:10;3360:22;3352:67;;;;-1:-1:-1;;;3352:67:0;;;;;;;:::i;:::-;18610:11:::1;:22:::0;;-1:-1:-1;;18610:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;18643:13:::1;:23:::0;18519:155::o;19355:593::-;3360:6;;-1:-1:-1;;;;;3360:6:0;2670:10;3360:22;3352:67;;;;-1:-1:-1;;;3352:67:0;;;;;;;:::i;:::-;19503:3:::1;19484:22:::0;::::1;19476:79;;;::::0;-1:-1:-1;;;19476:79:0;;8812:2:1;19476:79:0::1;::::0;::::1;8794:21:1::0;8851:2;8831:18;;;8824:30;8890:34;8870:18;;;8863:62;-1:-1:-1;;;8941:18:1;;;8934:43;8994:19;;19476:79:0::1;8610:409:1::0;19476:79:0::1;19570:33:::0;;::::1;19562:85;;;::::0;-1:-1:-1;;;19562:85:0;;9226:2:1;19562:85:0::1;::::0;::::1;9208:21:1::0;9265:2;9245:18;;;9238:30;9304:34;9284:18;;;9277:62;-1:-1:-1;;;9355:18:1;;;9348:38;9403:19;;19562:85:0::1;9024:404:1::0;19562:85:0::1;19656:12;19685:6:::0;19681:82:::1;19695:20:::0;;::::1;19681:82;;;19746:6;;19753:1;19746:9;;;;;;;:::i;:::-;;;;;;;19739:4;:16;;;;:::i;:::-;19732:23:::0;-1:-1:-1;19717:3:0;::::1;::::0;::::1;:::i;:::-;;;;19681:82;;;;19798:4;19779:15;19789:4;19779:9;:15::i;:::-;:23;;19771:63;;;::::0;-1:-1:-1;;;19771:63:0;;10037:2:1;19771:63:0::1;::::0;::::1;10019:21:1::0;10076:2;10056:18;;;10049:30;-1:-1:-1;;;10095:18:1;;;10088:57;10162:18;;19771:63:0::1;9835:351:1::0;19771:63:0::1;19847:6;19843:102;19857:20:::0;;::::1;19843:102;;;19894:43;19909:4;19914:9;;19924:1;19914:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;19927:6;;19934:1;19927:9;;;;;;;:::i;:::-;;;;;;;19894:14;:43::i;:::-;-1:-1:-1::0;19879:3:0;::::1;::::0;::::1;:::i;:::-;;;;19843:102;;;;19467:481;19355:593:::0;;;;;:::o;19026:167::-;19094:7;19121:64;19162:22;:20;:22::i;:::-;19144:4;;19121:36;;19134:22;;19154:1;;19134:15;;-1:-1:-1;;;;;19144:4:0;19134:9;:15::i;:::-;:19;;:22::i;:::-;19121:8;;:12;:36::i;:::-;:40;;:64::i;13754:198::-;13883:15;;13843:21;;-1:-1:-1;;;;;13883:15:0;13875:69;13940:3;13909:28;13921:16;13843:21;13909:28;:::i;:::-;:34;;;;:::i;:::-;13875:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13812:140;13754:198;:::o;14924:199::-;3360:6;;-1:-1:-1;;;;;3360:6:0;2670:10;3360:22;3352:67;;;;-1:-1:-1;;;3352:67:0;;;;;;;:::i;:::-;15018:9:::1;15013:103;15029:20:::0;;::::1;15013:103;;;15098:6;15071:10;:24;15082:9;;15092:1;15082:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15071:24:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15071:24:0;:33;;-1:-1:-1;;15071:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15051:3:::1;::::0;::::1;:::i;:::-;;;15013:103;;;;14924:199:::0;;;:::o;14317:284::-;14398:4;14425:6;14435:1;14425:11;14422:95;;14461:44;;-1:-1:-1;;;14461:44:0;;-1:-1:-1;;;;;14461:29:0;;;;;:44;;14499:4;;14461:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14452:53;;14422:95;14563:21;;14534:59;;-1:-1:-1;;;14534:59:0;;-1:-1:-1;;;;;14563:21:0;;;14534:59;;;10554:51:1;10621:18;;;10614:34;;;14534:28:0;;;;;;10527:18:1;;14534:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3603:244::-;3360:6;;-1:-1:-1;;;;;3360:6:0;2670:10;3360:22;3352:67;;;;-1:-1:-1;;;3352:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3692:22:0;::::1;3684:73;;;::::0;-1:-1:-1;;;3684:73:0;;11111:2:1;3684:73:0::1;::::0;::::1;11093:21:1::0;11150:2;11130:18;;;11123:30;11189:34;11169:18;;;11162:62;-1:-1:-1;;;11240:18:1;;;11233:36;11286:19;;3684:73:0::1;10909:402:1::0;3684:73:0::1;3794:6;::::0;;3773:38:::1;::::0;-1:-1:-1;;;;;3773:38:0;;::::1;::::0;3794:6;::::1;::::0;3773:38:::1;::::0;::::1;3822:6;:17:::0;;-1:-1:-1;;;;;;3822:17:0::1;-1:-1:-1::0;;;;;3822:17:0;;;::::1;::::0;;;::::1;::::0;;3603:244::o;14189:120::-;14245:21;;14237:62;;-1:-1:-1;;;;;14245:21:0;;;;14277;14237:62;;;;;14245:21;14237:62;14245:21;14237:62;14277:21;14245;14237:62;;;;;;;;;;;;;;;;;;;;;14189:120::o;13961:83::-;3360:6;;-1:-1:-1;;;;;3360:6:0;2670:10;3360:22;3352:67;;;;-1:-1:-1;;;3352:67:0;;;;;;;:::i;:::-;14020:10:::1;:8;:10::i;:::-;13961:83::o:0;834:192::-;920:7;956:12;948:6;;;;940:29;;;;-1:-1:-1;;;940:29:0;;;;;;;;:::i;:::-;-1:-1:-1;980:9:0;992:5;996:1;992;:5;:::i;:::-;980:17;834:192;-1:-1:-1;;;;;834:192:0:o;10464:1424::-;10576:6;;10556:4;;10576:6;;10573:63;;;10592:41;10607:6;10615:9;10626:6;10592:14;:41::i;:::-;10585:48;;;;10573:63;-1:-1:-1;;;;;10652:22:0;;;;;;:14;:22;;;;;;;;10651:23;:53;;;;-1:-1:-1;;;;;;10679:25:0;;;;;;:14;:25;;;;;;;;10678:26;10651:53;10648:245;;;10728:11;;-1:-1:-1;;;10728:11:0;;;;10720:43;;;;-1:-1:-1;;;10720:43:0;;11651:2:1;10720:43:0;;;11633:21:1;11690:2;11670:18;;;11663:30;-1:-1:-1;;;11709:18:1;;;11702:50;11769:18;;10720:43:0;11449:344:1;10720:43:0;10792:10;;-1:-1:-1;;;10792:10:0;;;;10789:93;;;-1:-1:-1;;;;;10830:21:0;;;;;;:10;:21;;;;;;;;10822:45;;;;-1:-1:-1;;;10822:45:0;;12000:2:1;10822:45:0;;;11982:21:1;12039:2;12019:18;;;12012:30;-1:-1:-1;;;12058:18:1;;;12051:42;12110:18;;10822:45:0;11798:336:1;10822:45:0;-1:-1:-1;;;;;10925:22:0;;;;;;:14;:22;;;;;;;;10924:23;:53;;;;-1:-1:-1;;;;;;10951:26:0;;10972:4;10951:26;;10924:53;:84;;;;-1:-1:-1;11003:4:0;;-1:-1:-1;;;;;10982:26:0;;;11003:4;;10982:26;;10924:84;:105;;;;-1:-1:-1;11025:4:0;;-1:-1:-1;;;;;11012:17:0;;;11025:4;;11012:17;;10924:105;:137;;;;-1:-1:-1;11046:15:0;;-1:-1:-1;;;;;11033:28:0;;;11046:15;;11033:28;;10924:137;:174;;;;-1:-1:-1;11078:20:0;;-1:-1:-1;;;;;11065:33:0;;;11078:20;;11065:33;;10924:174;:205;;;;-1:-1:-1;;;;;;11103:26:0;;;;;;:15;:26;;;;;;;;11102:27;10924:205;10920:397;;;11145:18;11166:20;11176:9;11166;:20::i;:::-;11234:15;;11145:41;;-1:-1:-1;11210:19:0;11223:6;11145:41;11210:19;:::i;:::-;11209:40;;11201:114;;;;-1:-1:-1;;;11201:114:0;;12341:2:1;11201:114:0;;;12323:21:1;12380:2;12360:18;;;12353:30;12419:34;12399:18;;;12392:62;12490:32;12470:18;;;12463:60;12540:19;;11201:114:0;12139:426:1;11201:114:0;11130:187;10920:397;11382:28;11395:6;11403;11382:12;:28::i;:::-;11427:16;:14;:16::i;:::-;11424:35;;;11446:10;:8;:10::i;:::-;11539:53;;;;;;;;;;;-1:-1:-1;;;11539:53:0;;;;;;;;-1:-1:-1;;;;;11539:17:0;;-1:-1:-1;11539:17:0;;;:9;:17;;;;;;;;:53;;11561:6;;11539:21;:53::i;:::-;-1:-1:-1;;;;;11519:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11631:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11654:22:0;;;;;;:11;:22;;;;;;;;11631:45;11630:93;;11689:34;11697:6;11705;11713:9;11689:7;:34::i;:::-;11630:93;;;11680:6;11630:93;-1:-1:-1;;;;;11757:20:0;;;;;;:9;:20;;;;;;11605:118;;-1:-1:-1;11757:40:0;;11605:118;11757:24;:40::i;:::-;-1:-1:-1;;;;;11734:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11815:43;;;;;;-1:-1:-1;;;;;;;;;;;11815:43:0;;;11843:14;160:25:1;;148:2;133:18;;14:177;11815:43:0;;;;;;;;-1:-1:-1;11876:4:0;;10464:1424;-1:-1:-1;;;;10464:1424:0:o;692:136::-;750:7;777:43;781:1;784;777:43;;;;;;;;;;;;;;;;;:3;:43::i;505:181::-;563:7;;595:5;599:1;595;:5;:::i;:::-;583:17;;624:1;619;:6;;611:46;;;;-1:-1:-1;;;611:46:0;;12772:2:1;611:46:0;;;12754:21:1;12811:2;12791:18;;;12784:30;-1:-1:-1;;;12830:18:1;;;12823:57;12897:18;;611:46:0;12570:351:1;11900:330:0;12030:53;;;;;;;;;;;-1:-1:-1;;;12030:53:0;;;;;;;;-1:-1:-1;;;;;12030:17:0;;11993:4;12030:17;;;:9;:17;;;;;;;:53;;12052:6;;12030:21;:53::i;:::-;-1:-1:-1;;;;;12010:17:0;;;;;;;:9;:17;;;;;;:73;;;;12117:20;;;;;;;:32;;12142:6;12117:24;:32::i;:::-;-1:-1:-1;;;;;12094:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12165:35;;;;;;-1:-1:-1;;;;;;;;;;;12165:35:0;;;12193:6;160:25:1;;148:2;133:18;;14:177;12165:35:0;;;;;;;;-1:-1:-1;12218:4:0;11900:330;;;;;:::o;1032:250::-;1090:7;1114:1;1119;1114:6;1110:47;;-1:-1:-1;1144:1:0;1137:8;;1110:47;1169:9;1181:5;1185:1;1181;:5;:::i;:::-;1169:17;-1:-1:-1;1214:1:0;1205:5;1209:1;1169:17;1205:5;:::i;:::-;:10;1197:56;;;;-1:-1:-1;;;1197:56:0;;13128:2:1;1197:56:0;;;13110:21:1;13167:2;13147:18;;;13140:30;13206:34;13186:18;;;13179:62;-1:-1:-1;;;13257:18:1;;;13250:31;13298:19;;1197:56:0;12926:397:1;1288:132:0;1346:7;1373:39;1377:1;1380;1373:39;;;;;;;;;;;;;-1:-1:-1;;;1373:39:0;;;:3;:39::i;15334:1861::-;7281:6;:13;;-1:-1:-1;;7281:13:0;7290:4;7281:13;;;15429:15:::1;::::0;15446:26:::1;::::0;7281:6;;15413:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15480:12;;15413:79;;;15476:1;15413:79;15383:109;;15503:23;15529:59;15586:1;15529:52;15572:8;;15529:38;15547:19;15529:13;;:17;;:38;;;;:::i;:59::-;15503:85;;15599:20;15622:34;15640:15;15622:13;;:17;;:34;;;;:::i;:::-;15693:16;::::0;;15707:1:::1;15693:16:::0;;;;;::::1;::::0;;15599:57;;-1:-1:-1;15669:21:0::1;::::0;15693:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15693:16:0::1;15669:40;;15738:4;15720;15725:1;15720:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15720:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15764:4:::1;::::0;15754:7;;15764:4;::::1;::::0;15754;;15764;;15754:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15754:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15839:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15839:188:0;;15805:21:::1;::::0;15839:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15911:12;;15781:21:::1;::::0;15954:4;;15981::::1;::::0;16001:15:::1;::::0;15839:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16040:17;16060:40;16086:13;16060:21;:25;;:40;;;;:::i;:::-;16040:60:::0;-1:-1:-1;16113:19:0::1;16135:40;16148:26;:19:::0;16172:1:::1;16148:23;:26::i;:::-;16135:8;::::0;;:12:::1;:40::i;:::-;16113:62:::0;-1:-1:-1;16196:26:0::1;16225:58;16281:1;16225:51;16113:62:::0;16225:51;:9;16239:19;16225:13:::1;:34::i;:58::-;16196:87;;16294:26;16323:44;16355:11;16323:27;16337:12;;16323:9;:13;;:27;;;;:::i;:44::-;16294:73;;16378:21;16402:39;16429:11;16402:22;16416:7;;16402:9;:13;;:22;;;;:::i;:39::-;16378:63;;16452:20;16475:38;16501:11;16475:21;16489:6;;16475:9;:13;;:21;;;;:::i;:38::-;16555:20;::::0;16547:65:::1;::::0;16452:61;;-1:-1:-1;16527:15:0::1;::::0;-1:-1:-1;;;;;16555:20:0;;::::1;::::0;16589:18;;16527:15;16547:65;16527:15;16547:65;16589:18;16555:20;16547:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16647:14:0::1;::::0;16639:53:::1;::::0;16526:86;;-1:-1:-1;;;;;;16647:14:0::1;::::0;16675:12;;16639:53:::1;::::0;;;16675:12;16647:14;16639:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16727:15:0::1;::::0;16719:55:::1;::::0;16623:69;;-1:-1:-1;;;;;;16727:15:0::1;::::0;16756:13;;16719:55:::1;::::0;;;16756:13;16727:15;16719:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16808:5:0::1;::::0;-1:-1:-1;;16829:19:0;;;-1:-1:-1;16826:362:0::1;;16864:6;::::0;17038:21:::1;::::0;16864:244:::1;::::0;-1:-1:-1;;;16864:244:0;;16940:4:::1;16864:244;::::0;::::1;14996:34:1::0;15046:18;;;15039:34;;;16864:6:0::1;15089:18:1::0;;;15082:34;;;15132:18;;;15125:34;-1:-1:-1;;;;;17038:21:0;;::::1;15175:19:1::0;;;15168:44;17078:15:0::1;15228:19:1::0;;;15221:35;16864:6:0;::::1;::::0;:22:::1;::::0;16894:18;;14930:19:1;;16864:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17128:48:0::1;::::0;;15752:25:1;;;15808:2;15793:18;;15786:34;;;17128:48:0::1;::::0;-1:-1:-1;15725:18:1;17128:48:0::1;;;;;;;16826:362;-1:-1:-1::0;;7299:6:0;:14;;-1:-1:-1;;7299:14:0;;;-1:-1:-1;;;;;;;;;;15334:1861:0:o;12238:166::-;12335:12;;12325:6;:22;;:49;;;-1:-1:-1;;;;;;12351:23:0;;;;;;:15;:23;;;;;;;;12325:49;12317:79;;;;-1:-1:-1;;;12317:79:0;;16033:2:1;12317:79:0;;;16015:21:1;16072:2;16052:18;;;16045:30;-1:-1:-1;;;16091:18:1;;;16084:47;16148:18;;12317:79:0;15831:341:1;12317:79:0;12238:166;;:::o;13549:197::-;13636:4;;13598;;-1:-1:-1;;;;;13636:4:0;13622:10;:18;;;;:38;;-1:-1:-1;13654:6:0;;;;13653:7;13622:38;:62;;;;-1:-1:-1;13673:11:0;;;;13622:62;:116;;;;-1:-1:-1;;13725:13:0;;13715:4;13697:24;;;;:9;:24;;;;;;:41;;;13549:197::o;12534:1007::-;12671:18;;12718:4;;12620:7;;12671:18;-1:-1:-1;;;;;12718:4:0;;;12705:17;;;;12702:154;;-1:-1:-1;12752:14:0;;12702:154;;;12797:4;;-1:-1:-1;;;;;12797:4:0;;;12787:14;;;;12784:72;;-1:-1:-1;12831:13:0;;12784:72;12868:17;12888:62;12929:14;;12946:3;12929:20;;;;:::i;:::-;12888:36;12913:10;12888:20;12899:8;;12888:6;:10;;:20;;;;:::i;:62::-;12868:82;;12961:18;12982:36;13009:8;;12982:22;12996:7;;12982:9;:13;;:22;;;;:::i;:36::-;12961:57;-1:-1:-1;13029:22:0;13054:25;:9;12961:57;13054:13;:25::i;:::-;13137:4;13119:24;;;;:9;:24;;;;;;13029:50;;-1:-1:-1;13119:44:0;;13029:50;13119:28;:44::i;:::-;13110:4;13092:24;;;;:9;:24;;;;;;:71;;;;13213:15;;-1:-1:-1;;;;;13213:15:0;13203:26;;;;:42;;13234:10;13203:30;:42::i;:::-;13184:15;;-1:-1:-1;;;;;13184:15:0;;;13174:26;;;;:9;:26;;;;;;;;;:71;;;;13261:47;160:25:1;;;13286:4:0;;13261:47;;;;-1:-1:-1;;;;;;;;;;;13261:47:0;133:18:1;13261:47:0;;;;;;;13342:14;;13339:154;;13387:12;;:28;;13404:10;13387:16;:28::i;:::-;13372:12;:43;13452:4;;13435:34;;160:25:1;;;-1:-1:-1;;;;;13452:4:0;;;;13435:34;;;-1:-1:-1;;;;;;;;;;;13435:34:0;148:2:1;133:18;13435:34:0;;;;;;;13339:154;13512:21;:6;13523:9;13512:10;:21::i;:::-;13505:28;12534:1007;-1:-1:-1;;;;;;;;12534:1007:0:o;1426:189::-;1512:7;1547:12;1540:5;1532:28;;;;-1:-1:-1;;;1532:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1571:9:0;1583:5;1587:1;1583;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;941:173::-;1009:20;;-1:-1:-1;;;;;1058:31:1;;1048:42;;1038:70;;1104:1;1101;1094:12;1038:70;941:173;;;:::o;1119:254::-;1187:6;1195;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1287:29;1306:9;1287:29;:::i;:::-;1277:39;1363:2;1348:18;;;;1335:32;;-1:-1:-1;;;1119:254:1:o;1378:248::-;1446:6;1454;1507:2;1495:9;1486:7;1482:23;1478:32;1475:52;;;1523:1;1520;1513:12;1475:52;-1:-1:-1;;1546:23:1;;;1616:2;1601:18;;;1588:32;;-1:-1:-1;1378:248:1:o;1631:316::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;-1:-1:-1;;1816:23:1;;;1886:2;1871:18;;1858:32;;-1:-1:-1;1937:2:1;1922:18;;;1909:32;;1631:316;-1:-1:-1;1631:316:1:o;1952:328::-;2029:6;2037;2045;2098:2;2086:9;2077:7;2073:23;2069:32;2066:52;;;2114:1;2111;2104:12;2066:52;2137:29;2156:9;2137:29;:::i;:::-;2127:39;;2185:38;2219:2;2208:9;2204:18;2185:38;:::i;:::-;2175:48;;2270:2;2259:9;2255:18;2242:32;2232:42;;1952:328;;;;;:::o;2285:484::-;2380:6;2388;2396;2404;2412;2465:3;2453:9;2444:7;2440:23;2436:33;2433:53;;;2482:1;2479;2472:12;2433:53;2505:29;2524:9;2505:29;:::i;:::-;2495:39;;2553:38;2587:2;2576:9;2572:18;2553:38;:::i;:::-;2543:48;;2610:38;2644:2;2633:9;2629:18;2610:38;:::i;:::-;2600:48;;2667:38;2701:2;2690:9;2686:18;2667:38;:::i;:::-;2657:48;;2724:39;2758:3;2747:9;2743:19;2724:39;:::i;:::-;2714:49;;2285:484;;;;;;;;:::o;2963:118::-;3049:5;3042:13;3035:21;3028:5;3025:32;3015:60;;3071:1;3068;3061:12;3086:241;3142:6;3195:2;3183:9;3174:7;3170:23;3166:32;3163:52;;;3211:1;3208;3201:12;3163:52;3250:9;3237:23;3269:28;3291:5;3269:28;:::i;3332:180::-;3391:6;3444:2;3432:9;3423:7;3419:23;3415:32;3412:52;;;3460:1;3457;3450:12;3412:52;-1:-1:-1;3483:23:1;;3332:180;-1:-1:-1;3332:180:1:o;3517:315::-;3582:6;3590;3643:2;3631:9;3622:7;3618:23;3614:32;3611:52;;;3659:1;3656;3649:12;3611:52;3682:29;3701:9;3682:29;:::i;:::-;3672:39;;3761:2;3750:9;3746:18;3733:32;3774:28;3796:5;3774:28;:::i;:::-;3821:5;3811:15;;;3517:315;;;;;:::o;3837:186::-;3896:6;3949:2;3937:9;3928:7;3924:23;3920:32;3917:52;;;3965:1;3962;3955:12;3917:52;3988:29;4007:9;3988:29;:::i;4028:203::-;-1:-1:-1;;;;;4192:32:1;;;;4174:51;;4162:2;4147:18;;4028:203::o;4236:523::-;4340:6;4348;4356;4364;4372;4380;4433:3;4421:9;4412:7;4408:23;4404:33;4401:53;;;4450:1;4447;4440:12;4401:53;-1:-1:-1;;4473:23:1;;;4543:2;4528:18;;4515:32;;-1:-1:-1;4594:2:1;4579:18;;4566:32;;4645:2;4630:18;;4617:32;;-1:-1:-1;4696:3:1;4681:19;;4668:33;;-1:-1:-1;4748:3:1;4733:19;4720:33;;-1:-1:-1;4236:523:1;-1:-1:-1;4236:523:1:o;4764:309::-;4829:6;4837;4890:2;4878:9;4869:7;4865:23;4861:32;4858:52;;;4906:1;4903;4896:12;4858:52;4945:9;4932:23;4964:28;4986:5;4964:28;:::i;5078:367::-;5141:8;5151:6;5205:3;5198:4;5190:6;5186:17;5182:27;5172:55;;5223:1;5220;5213:12;5172:55;-1:-1:-1;5246:20:1;;-1:-1:-1;;;;;5278:30:1;;5275:50;;;5321:1;5318;5311:12;5275:50;5358:4;5350:6;5346:17;5334:29;;5418:3;5411:4;5401:6;5398:1;5394:14;5386:6;5382:27;5378:38;5375:47;5372:67;;;5435:1;5432;5425:12;5372:67;5078:367;;;;;:::o;5450:847::-;5581:6;5589;5597;5605;5613;5666:2;5654:9;5645:7;5641:23;5637:32;5634:52;;;5682:1;5679;5672:12;5634:52;5705:29;5724:9;5705:29;:::i;:::-;5695:39;;5785:2;5774:9;5770:18;5757:32;-1:-1:-1;;;;;5849:2:1;5841:6;5838:14;5835:34;;;5865:1;5862;5855:12;5835:34;5904:70;5966:7;5957:6;5946:9;5942:22;5904:70;:::i;:::-;5993:8;;-1:-1:-1;5878:96:1;-1:-1:-1;6081:2:1;6066:18;;6053:32;;-1:-1:-1;6097:16:1;;;6094:36;;;6126:1;6123;6116:12;6094:36;;6165:72;6229:7;6218:8;6207:9;6203:24;6165:72;:::i;:::-;5450:847;;;;-1:-1:-1;5450:847:1;;-1:-1:-1;6256:8:1;;6139:98;5450:847;-1:-1:-1;;;5450:847:1:o;6302:260::-;6370:6;6378;6431:2;6419:9;6410:7;6406:23;6402:32;6399:52;;;6447:1;6444;6437:12;6399:52;6470:29;6489:9;6470:29;:::i;:::-;6460:39;;6518:38;6552:2;6541:9;6537:18;6518:38;:::i;:::-;6508:48;;6302:260;;;;;:::o;6567:566::-;6659:6;6667;6675;6728:2;6716:9;6707:7;6703:23;6699:32;6696:52;;;6744:1;6741;6734:12;6696:52;6784:9;6771:23;-1:-1:-1;;;;;6809:6:1;6806:30;6803:50;;;6849:1;6846;6839:12;6803:50;6888:70;6950:7;6941:6;6930:9;6926:22;6888:70;:::i;:::-;6977:8;;-1:-1:-1;6862:96:1;-1:-1:-1;;7062:2:1;7047:18;;7034:32;7075:28;7034:32;7075:28;:::i;:::-;7122:5;7112:15;;;6567:566;;;;;:::o;7364:356::-;7566:2;7548:21;;;7585:18;;;7578:30;7644:34;7639:2;7624:18;;7617:62;7711:2;7696:18;;7364:356::o;7725:127::-;7786:10;7781:3;7777:20;7774:1;7767:31;7817:4;7814:1;7807:15;7841:4;7838:1;7831:15;7857:217;7897:1;7923;7913:132;;7967:10;7962:3;7958:20;7955:1;7948:31;8002:4;7999:1;7992:15;8030:4;8027:1;8020:15;7913:132;-1:-1:-1;8059:9:1;;7857:217::o;8079:168::-;8152:9;;;8183;;8200:15;;;8194:22;;8180:37;8170:71;;8221:18;;:::i;9433:127::-;9494:10;9489:3;9485:20;9482:1;9475:31;9525:4;9522:1;9515:15;9549:4;9546:1;9539:15;9565:125;9630:9;;;9651:10;;;9648:36;;;9664:18;;:::i;9695:135::-;9734:3;9755:17;;;9752:43;;9775:18;;:::i;:::-;-1:-1:-1;9822:1:1;9811:13;;9695:135::o;10191:184::-;10261:6;10314:2;10302:9;10293:7;10289:23;10285:32;10282:52;;;10330:1;10327;10320:12;10282:52;-1:-1:-1;10353:16:1;;10191:184;-1:-1:-1;10191:184:1:o;10659:245::-;10726:6;10779:2;10767:9;10758:7;10754:23;10750:32;10747:52;;;10795:1;10792;10785:12;10747:52;10827:9;10821:16;10846:28;10868:5;10846:28;:::i;11316:128::-;11383:9;;;11404:11;;;11401:37;;;11418:18;;:::i;13460:980::-;13722:4;13770:3;13759:9;13755:19;13801:6;13790:9;13783:25;13827:2;13865:6;13860:2;13849:9;13845:18;13838:34;13908:3;13903:2;13892:9;13888:18;13881:31;13932:6;13967;13961:13;13998:6;13990;13983:22;14036:3;14025:9;14021:19;14014:26;;14075:2;14067:6;14063:15;14049:29;;14096:1;14106:195;14120:6;14117:1;14114:13;14106:195;;;14185:13;;-1:-1:-1;;;;;14181:39:1;14169:52;;14276:15;;;;14241:12;;;;14217:1;14135:9;14106:195;;;-1:-1:-1;;;;;;;14357:32:1;;;;14352:2;14337:18;;14330:60;-1:-1:-1;;;14421:3:1;14406:19;14399:35;14318:3;13460:980;-1:-1:-1;;;13460:980:1:o;15267:306::-;15355:6;15363;15371;15424:2;15412:9;15403:7;15399:23;15395:32;15392:52;;;15440:1;15437;15430:12;15392:52;15469:9;15463:16;15453:26;;15519:2;15508:9;15504:18;15498:25;15488:35;;15563:2;15552:9;15548:18;15542:25;15532:35;;15267:306;;;;;:::o

Swarm Source

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