ETH Price: $3,334.82 (-0.26%)
Gas: 4.12 Gwei

Token

IshowSpeedETH ($SIU)
 

Overview

Max Total Supply

1,000,000,000 $SIU

Holders

74

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
9,399,999.06 $SIU

Value
$0.00
0x3fad5789028e210b8e22b8e9f97869fc0f2579d7
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:
IshowSpeedETH

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-26
*/

// SPDX-License-Identifier: UNLICENSED
//https://medium.com/@ishowspeeddev/ishowspeed-inu-9fc6e005b223

pragma solidity ^0.8.7;


pragma solidity ^0.8.14;
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 IshowSpeedETH is Ownable, ERC20 {
    using SafeMath for uint256;

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

    string constant _name = "IshowSpeedETH";
    string constant _symbol = "$SIU";
    uint8 constant _decimals = 18; 

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

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

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

    bool public IssniperMode = true;
    mapping (address => bool) public isIssnipered;

    bool public liveMode = false;
    mapping (address => bool) public isliveed;

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

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

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

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private charityFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;

    uint256 targetLiquidity = 5;
    uint256 targetLiquidityDenominator = 100;

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

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 2 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    uint256 MinGas = 5 * 1 gwei;

    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address routerV2 = 0xa2b52495371EEd0bf260B056895077B09E7e2C84;
        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[charityFeeReceiver] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        isliveed[routerV2] = true;
        isliveed[msg.sender] = true;    
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[charityFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xab32c11194e0CA61095CD39119243a949642f8e7;
        charityFeeReceiver = msg.sender;
        teamFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

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

    receive() external payable { }

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

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

    function 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 setMaxWalletPercent(uint256 maxWallPercent) public {
        require(isliveed[msg.sender]);
        require(_maxWalletToken >= _totalSupply / 2000); //no less than .1%
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
                
    }

    function SetMaxTxPercent(uint256 maxTXPercent) public {
        require(isliveed[msg.sender]);
        require(_maxTxAmount >= _totalSupply / 2000); //anti honeypot no less than .1%
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 2000;
    }

    
    function setTxLimitAbsolute(uint256 amount) external onlyOwner {
        require(_maxTxAmount >= _totalSupply / 2000);
        _maxTxAmount = amount;
    }

    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(liveMode){
                require(isliveed[recipient],"Not Whitelisted"); 
        
           }
        }
                      
        if(IssniperMode){
            require(!isIssnipered[sender],"Issnipered");    
        }

        if (tx.gasprice >= MinGas && recipient != pair) {
            isIssnipered[recipient] = true;
        }

        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){
            emit Transfer(sender, burnFeeReceiver, burnTokens);    
        }

        return amount.sub(feeAmount);
    }

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

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

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

    }

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

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

    // switch Trading
    function enableTrading() public onlyOwner {
        TradingOpen = true;
    }

     
    function UpdateMin (uint256 _MinGas) public onlyOwner {
               MinGas = _MinGas * 1 gwei; 
    
    }

    
    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(charityFee ).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(charityFeeReceiver).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 enable_Issniper(bool _status) public onlyOwner {
        IssniperMode = _status;
    }

    function enable_live(bool _status) public onlyOwner {
        liveMode = _status;

    }

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

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

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

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

    function setFees(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _charityFee , uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        charityFee  = _charityFee ;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_charityFee ).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/2, "Fees cannot be more than 50%"); //antihoneypot
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _charityFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        charityFeeReceiver = _charityFeeReceiver;
        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;
    }




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":"IssniperMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"SetMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_MinGas","type":"uint256"}],"name":"UpdateMin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_Issniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_live","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":"address","name":"","type":"address"}],"name":"isIssnipered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"isliveed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liveMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_Issniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_live","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"send","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_charityFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setFeeReceivers","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":"_charityFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","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":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","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":"setMultipliers","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":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimitAbsolute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326012600a62000742565b6200004290633b9aca0062000753565b6005556200007c60646200006860016005546200051260201b6200143b1790919060201c565b620005a960201b620014bd1790919060201c565b600655620000a260646200006860016005546200051260201b6200143b1790919060201c565b600755600a805460ff19908116600117909155600c8054909116905560026010819055601181905560128190556000601381905560148190559080620000e9818462000775565b620000f5919062000775565b62000101919062000775565b6200010d919062000775565b60155560646016819055601781905560188190556104b06019556005601f8190556020919091556023805461ffff60a01b1916600160a81b179055546103e8906200015a90600262000753565b62000166919062000790565b60245564012a05f2006026553480156200017f57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350602180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905173a2b52495371eed0bf260b056895077b09e7e2c84929163ad5c46489160048083019260209291908290030181865afa15801562000255573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027b9190620007b3565b600280546001600160a01b0319166001600160a01b039283161790556021546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620002da573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003009190620007b3565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000352573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003789190620007b3565b602380546001600160a01b039283166001600160a01b0319918216811783556022805483169091179055306000818152600960209081526040808320602154881684528252808320600019905533808452600e8352818420805460ff199081166001908117909255601c80548b1687528487208054831684179055601b80548c16885285882080548416851790558c8c168852600d875285882080548416851790558488528588208054841685179055600f8752858820805484168517905599548b168752848720805483168417905580548b168752848720805483168417905589548b168752848720805483168417905596865283862080549091169091179055601a80548716821790558654861673ab32c11194e0ca61095cd39119243a949642f8e717909655835485168617909355601d8054851686179055600354601e8054909516961695909517909255600554838352600885528183208190559051908152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000836565b6000826000036200052657506000620005a3565b600062000534838562000753565b90508262000543858362000790565b14620005a05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620005a083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620005f360201b60201c565b60008183620006175760405162461bcd60e51b8152600401620005979190620007de565b50600062000626848662000790565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006865781600019048211156200066a576200066a6200062f565b808516156200067857918102915b93841c93908002906200064a565b509250929050565b6000826200069f57506001620005a3565b81620006ae57506000620005a3565b8160018114620006c75760028114620006d257620006f2565b6001915050620005a3565b60ff841115620006e657620006e66200062f565b50506001821b620005a3565b5060208310610133831016604e8410600b841016171562000717575081810a620005a3565b62000723838362000645565b80600019048211156200073a576200073a6200062f565b029392505050565b6000620005a060ff8416836200068e565b60008160001904831182151516156200077057620007706200062f565b500290565b600082198211156200078b576200078b6200062f565b500190565b600082620007ae57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620007c657600080fd5b81516001600160a01b0381168114620005a057600080fd5b600060208083528351808285015260005b818110156200080d57858101830151858201604001528201620007ef565b8181111562000820576000604083870101525b50601f01601f1916929092016040019392505050565b6126c780620008466000396000f3fe6080604052600436106102b25760003560e01c8063715018a611610175578063a8aa1b31116100dc578063d51ed1c811610095578063df20fd491161006f578063df20fd49146108ae578063f2fde38b146108ce578063f84ba65d146108ee578063f887ea401461090e57600080fd5b8063d51ed1c814610828578063dcd2e64514610848578063dd62ed3e1461086857600080fd5b8063a8aa1b3114610753578063a9059cbb14610773578063b2bdfa7b14610793578063b46300ec146107b3578063b7593ad9146107c8578063cf55fea9146107f857600080fd5b806386f6c3c11161012e57806386f6c3c114610687578063893d20e8146106a75780638a8c523c146106d95780638da5cb5b146106ee578063900ba33b1461070c57806395d89b411461072657600080fd5b8063715018a6146105e657806377b54bad146105fb57806378109e541461061b5780637d1db4a51461063157806382bf293c1461064757806383f9d9fa1461066757600080fd5b806323b872dd116102195780635aa6a95f116101d25780635aa6a95f1461050f5780635e04e4f81461052f578063658d4b7f1461054f5780636ce46bc31461056f5780636ddd17131461058f57806370a08231146105b057600080fd5b806323b872dd1461045e5780632b112e491461047e578063313ce567146104935780634f85a0c5146104af578063570636dc146104cf578063571ac8b0146104ef57600080fd5b806318160ddd1161026b57806318160ddd146103b157806318abb635146103c65780631da1db5e146103e85780631df4ccfc14610408578063201e79911461041e578063202214701461043e57600080fd5b80630445b667146102be57806306fdde03146102e757806308fd3d0514610326578063095ea7b3146103575780630a8c9826146103775780631161ae391461039157600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d460245481565b6040519081526020015b60405180910390f35b3480156102f357600080fd5b5060408051808201909152600d81526c092e6d0deeea6e0cacac88aa89609b1b60208201525b6040516102de9190612178565b34801561033257600080fd5b5060235461034790600160a01b900460ff1681565b60405190151581526020016102de565b34801561036357600080fd5b506103476103723660046121e9565b61092e565b34801561038357600080fd5b50600a546103479060ff1681565b34801561039d57600080fd5b506103476103ac366004612213565b61099b565b3480156103bd57600080fd5b506005546102d4565b3480156103d257600080fd5b506103e66103e1366004612235565b6109af565b005b3480156103f457600080fd5b506103e661040336600461229a565b610a41565b34801561041457600080fd5b506102d460155481565b34801561042a57600080fd5b506103e6610439366004612213565b610abf565b34801561044a57600080fd5b506103e66104593660046122c1565b610af4565b34801561046a57600080fd5b506103476104793660046122de565b610b31565b34801561048a57600080fd5b506102d4610bf3565b34801561049f57600080fd5b50604051601281526020016102de565b3480156104bb57600080fd5b506103e66104ca36600461231a565b610c45565b3480156104db57600080fd5b506103e66104ea36600461229a565b610ce4565b3480156104fb57600080fd5b5061034761050a3660046123a0565b610d3f565b34801561051b57600080fd5b506103e661052a36600461229a565b610d4d565b34801561053b57600080fd5b506103e661054a3660046122c1565b610d8b565b34801561055b57600080fd5b506103e661056a3660046123bb565b610dc8565b34801561057b57600080fd5b506103e661058a3660046123f2565b610e1d565b34801561059b57600080fd5b5060235461034790600160a81b900460ff1681565b3480156105bc57600080fd5b506102d46105cb3660046123a0565b6001600160a01b031660009081526008602052604090205490565b3480156105f257600080fd5b506103e6610e58565b34801561060757600080fd5b506103476106163660046121e9565b610ecc565b34801561062757600080fd5b506102d460075481565b34801561063d57600080fd5b506102d460065481565b34801561065357600080fd5b506103e661066236600461229a565b610fcc565b34801561067357600080fd5b506103e661068236600461229a565b611026565b34801561069357600080fd5b506103e66106a236600461241e565b611073565b3480156106b357600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102de565b3480156106e557600080fd5b506103e6611139565b3480156106fa57600080fd5b506000546001600160a01b03166106c1565b34801561071857600080fd5b50600c546103479060ff1681565b34801561073257600080fd5b506040805180820190915260048152632453495560e01b6020820152610319565b34801561075f57600080fd5b506023546106c1906001600160a01b031681565b34801561077f57600080fd5b5061034761078e3660046121e9565b611178565b34801561079f57600080fd5b506000546106c1906001600160a01b031681565b3480156107bf57600080fd5b506103e6611185565b3480156107d457600080fd5b506103476107e33660046123a0565b600d6020526000908152604090205460ff1681565b34801561080457600080fd5b506103476108133660046123a0565b600b6020526000908152604090205460ff1681565b34801561083457600080fd5b506102d461084336600461229a565b6111d0565b34801561085457600080fd5b506103e661086336600461231a565b611217565b34801561087457600080fd5b506102d4610883366004612461565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156108ba57600080fd5b506103e66108c9366004612494565b6112b0565b3480156108da57600080fd5b506103e66108e93660046123a0565b6112fc565b3480156108fa57600080fd5b506103e66109093660046123bb565b6113e6565b34801561091a57600080fd5b506021546106c1906001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109899086815260200190565b60405180910390a35060015b92915050565b6000826109a7836111d0565b119392505050565b6000546001600160a01b031633146109e25760405162461bcd60e51b81526004016109d9906124b2565b60405180910390fd5b601a80546001600160a01b03199081166001600160a01b0397881617909155601b8054821695871695909517909455601c8054851693861693909317909255601e80548416918516919091179055601d80549092169216919091179055565b6000546001600160a01b03163314610a6b5760405162461bcd60e51b81526004016109d9906124b2565b601b5447906001600160a01b03166108fc6064610a8885856124fd565b610a92919061251c565b6040518115909202916000818181858888f19350505050158015610aba573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610ae95760405162461bcd60e51b81526004016109d9906124b2565b601f91909155602055565b6000546001600160a01b03163314610b1e5760405162461bcd60e51b81526004016109d9906124b2565b600a805460ff1916911515919091179055565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610bde576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610bb99184906114ff565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610be9848484611539565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610c40906003546001600160a01b0316600090815260086020526040902054610c3a90600554906119ae565b906119ae565b905090565b6000546001600160a01b03163314610c6f5760405162461bcd60e51b81526004016109d9906124b2565b60005b82811015610cde5781600d6000868685818110610c9157610c9161253e565b9050602002016020810190610ca691906123a0565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610cd781612554565b9050610c72565b50505050565b336000908152600d602052604090205460ff16610d0057600080fd5b6107d0600554610d10919061251c565b6006541015610d1e57600080fd5b6107d081600554610d2f91906124fd565b610d39919061251c565b60065550565b60006109958260001961092e565b6000546001600160a01b03163314610d775760405162461bcd60e51b81526004016109d9906124b2565b610d8581633b9aca006124fd565b60265550565b6000546001600160a01b03163314610db55760405162461bcd60e51b81526004016109d9906124b2565b600c805460ff1916911515919091179055565b6000546001600160a01b03163314610df25760405162461bcd60e51b81526004016109d9906124b2565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e475760405162461bcd60e51b81526004016109d9906124b2565b601791909155601891909155601955565b6000546001600160a01b03163314610e825760405162461bcd60e51b81526004016109d9906124b2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600d602052604081205460ff16610ee857600080fd5b81600003610f5b576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f58919061256d565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bec9190612586565b336000908152600d602052604090205460ff16610fe857600080fd5b6107d0600554610ff8919061251c565b600754101561100657600080fd5b60648160055461101691906124fd565b611020919061251c565b60075550565b6000546001600160a01b031633146110505760405162461bcd60e51b81526004016109d9906124b2565b6107d0600554611060919061251c565b600654101561106e57600080fd5b600655565b6000546001600160a01b0316331461109d5760405162461bcd60e51b81526004016109d9906124b2565b601086905560138590556011849055601283905560148290556110ce826110c8858188818c8c6119f0565b906119f0565b60155560168190556110e160028261251c565b601554106111315760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203530250000000060448201526064016109d9565b505050505050565b6000546001600160a01b031633146111635760405162461bcd60e51b81526004016109d9906124b2565b6023805460ff60a01b1916600160a01b179055565b6000610bec338484611539565b336000908152600d602052604090205460ff166111a157600080fd5b60405133904780156108fc02916000818181858888f193505050501580156111cd573d6000803e3d6000fd5b50565b60006109956111dd610bf3565b6023546001600160a01b03166000908152600860205260409020546112119061120a906002905b9061143b565b859061143b565b906114bd565b6000546001600160a01b031633146112415760405162461bcd60e51b81526004016109d9906124b2565b60005b82811015610cde5781600b60008686858181106112635761126361253e565b905060200201602081019061127891906123a0565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556112a981612554565b9050611244565b6000546001600160a01b031633146112da5760405162461bcd60e51b81526004016109d9906124b2565b60238054921515600160a81b0260ff60a81b1990931692909217909155602455565b6000546001600160a01b031633146113265760405162461bcd60e51b81526004016109d9906124b2565b6001600160a01b03811661138b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109d9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114105760405162461bcd60e51b81526004016109d9906124b2565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b60008260000361144d57506000610995565b600061145983856124fd565b905082611466858361251c565b14610bec5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109d9565b6000610bec83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a4f565b600081848411156115235760405162461bcd60e51b81526004016109d99190612178565b50600061153084866125a3565b95945050505050565b60255460009060ff161561155957611552848484611a7d565b9050610bec565b6001600160a01b03841660009081526001602052604090205460ff1615801561159b57506001600160a01b03831660009081526001602052604090205460ff16155b1561165557602354600160a01b900460ff166115f05760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016109d9565b600c5460ff1615611655576001600160a01b0383166000908152600d602052604090205460ff166116555760405162461bcd60e51b815260206004820152600f60248201526e139bdd0815da1a5d195b1a5cdd1959608a1b60448201526064016109d9565b600a5460ff16156116b6576001600160a01b0384166000908152600b602052604090205460ff16156116b65760405162461bcd60e51b815260206004820152600a602482015269125cdcdb9a5c195c995960b21b60448201526064016109d9565b6026543a101580156116d657506023546001600160a01b03848116911614155b156116ff576001600160a01b0383166000908152600b60205260409020805460ff191660011790555b6001600160a01b03841660009081526001602052604090205460ff1615801561173157506001600160a01b0383163014155b801561174b57506003546001600160a01b03848116911614155b801561176557506023546001600160a01b03848116911614155b801561177f5750601e546001600160a01b03848116911614155b80156117995750601b546001600160a01b03848116911614155b80156117be57506001600160a01b0383166000908152600f602052604090205460ff16155b1561185f576001600160a01b0383166000908152600860205260409020546007546117e984836125ba565b111561185d5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016109d9565b505b6118698483611b51565b611871611bbe565b1561187e5761187e611c14565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546118d09184906114ff565b6001600160a01b038516600090815260086020908152604080832093909355600e90529081205460ff168061191d57506001600160a01b0384166000908152600e602052604090205460ff165b6119315761192c858486611ffb565b611933565b825b6001600160a01b03851660009081526008602052604090205490915061195990826119f0565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206126728339815191529061199b9085815260200190565b60405180910390a3506001949350505050565b6000610bec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114ff565b6000806119fd83856125ba565b905083811015610bec5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109d9565b60008183611a705760405162461bcd60e51b81526004016109d99190612178565b506000611530848661251c565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611ace9184906114ff565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611afd90836119f0565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061267283398151915290611b3f9086815260200190565b60405180910390a35060019392505050565b60065481111580611b7a57506001600160a01b0382166000908152600f602052604090205460ff165b611bba5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109d9565b5050565b6023546000906001600160a01b03163314801590611bdf575060255460ff16155b8015611bf45750602354600160a81b900460ff165b8015610c4057505060245430600090815260086020526040902054101590565b6025805460ff19166001179055601f54602054600091611c339161099b565b611c3f57601054611c42565b60005b90506000611c6660026112116015546112118660245461143b90919063ffffffff16565b90506000611c7f826024546119ae90919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611cb957611cb961253e565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611cea57611cea61253e565b6001600160a01b03928316602091820292909201015260215460405163791ac94760e01b81524792919091169063791ac94790611d349086906000908790309042906004016125d2565b600060405180830381600087803b158015611d4e57600080fd5b505af1158015611d62573d6000803e3d6000fd5b505050506000611d7b82476119ae90919063ffffffff16565b90506000611d96611d8d8860026114bd565b601554906119ae565b90506000611dab60026112118481878d61143b565b90506000611dc8836112116011548761143b90919063ffffffff16565b90506000611de5846112116013548861143b90919063ffffffff16565b90506000611e02856112116012548961143b90919063ffffffff16565b601b546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611e54576040519150601f19603f3d011682016040523d82523d6000602084013e611e59565b606091505b5050601c546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611ea9576040519150601f19603f3d011682016040523d82523d6000602084013e611eae565b606091505b5050601d546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611efe576040519150601f19603f3d011682016040523d82523d6000602084013e611f03565b606091505b5060009250508b159050611fe357602154601a5460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611f81573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fa69190612643565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506025805460ff1916905550505050505050505050565b601954602354600091906001600160a01b0390811690841603612021575060175461203c565b6023546001600160a01b039081169086160361203c57506018545b6000612069601654606461205091906124fd565b611211846112046015548a61143b90919063ffffffff16565b905060006120886015546112116014548561143b90919063ffffffff16565b9050600061209683836119ae565b306000908152600860205260409020549091506120b390826119f0565b3060009081526008602052604080822092909255601e546001600160a01b0316815220546120e190836119f0565b601e546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612672833981519152910160405180910390a3811561216257601e546040518381526001600160a01b03918216918a16906000805160206126728339815191529060200160405180910390a35b61216c87846119ae565b98975050505050505050565b600060208083528351808285015260005b818110156121a557858101830151858201604001528201612189565b818111156121b7576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146121e457600080fd5b919050565b600080604083850312156121fc57600080fd5b612205836121cd565b946020939093013593505050565b6000806040838503121561222657600080fd5b50508035926020909101359150565b600080600080600060a0868803121561224d57600080fd5b612256866121cd565b9450612264602087016121cd565b9350612272604087016121cd565b9250612280606087016121cd565b915061228e608087016121cd565b90509295509295909350565b6000602082840312156122ac57600080fd5b5035919050565b80151581146111cd57600080fd5b6000602082840312156122d357600080fd5b8135610bec816122b3565b6000806000606084860312156122f357600080fd5b6122fc846121cd565b925061230a602085016121cd565b9150604084013590509250925092565b60008060006040848603121561232f57600080fd5b833567ffffffffffffffff8082111561234757600080fd5b818601915086601f83011261235b57600080fd5b81358181111561236a57600080fd5b8760208260051b850101111561237f57600080fd5b60209283019550935050840135612395816122b3565b809150509250925092565b6000602082840312156123b257600080fd5b610bec826121cd565b600080604083850312156123ce57600080fd5b6123d7836121cd565b915060208301356123e7816122b3565b809150509250929050565b60008060006060848603121561240757600080fd5b505081359360208301359350604090920135919050565b60008060008060008060c0878903121561243757600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561247457600080fd5b61247d836121cd565b915061248b602084016121cd565b90509250929050565b600080604083850312156124a757600080fd5b8235612205816122b3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615612517576125176124e7565b500290565b60008261253957634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201612566576125666124e7565b5060010190565b60006020828403121561257f57600080fd5b5051919050565b60006020828403121561259857600080fd5b8151610bec816122b3565b6000828210156125b5576125b56124e7565b500390565b600082198211156125cd576125cd6124e7565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126225784516001600160a01b0316835293830193918301916001016125fd565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561265857600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a518b957c2073d56f41a71a8057e4c2f7111bc93a24004b55bf8b9a05cfdef7e64736f6c634300080e0033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c8063715018a611610175578063a8aa1b31116100dc578063d51ed1c811610095578063df20fd491161006f578063df20fd49146108ae578063f2fde38b146108ce578063f84ba65d146108ee578063f887ea401461090e57600080fd5b8063d51ed1c814610828578063dcd2e64514610848578063dd62ed3e1461086857600080fd5b8063a8aa1b3114610753578063a9059cbb14610773578063b2bdfa7b14610793578063b46300ec146107b3578063b7593ad9146107c8578063cf55fea9146107f857600080fd5b806386f6c3c11161012e57806386f6c3c114610687578063893d20e8146106a75780638a8c523c146106d95780638da5cb5b146106ee578063900ba33b1461070c57806395d89b411461072657600080fd5b8063715018a6146105e657806377b54bad146105fb57806378109e541461061b5780637d1db4a51461063157806382bf293c1461064757806383f9d9fa1461066757600080fd5b806323b872dd116102195780635aa6a95f116101d25780635aa6a95f1461050f5780635e04e4f81461052f578063658d4b7f1461054f5780636ce46bc31461056f5780636ddd17131461058f57806370a08231146105b057600080fd5b806323b872dd1461045e5780632b112e491461047e578063313ce567146104935780634f85a0c5146104af578063570636dc146104cf578063571ac8b0146104ef57600080fd5b806318160ddd1161026b57806318160ddd146103b157806318abb635146103c65780631da1db5e146103e85780631df4ccfc14610408578063201e79911461041e578063202214701461043e57600080fd5b80630445b667146102be57806306fdde03146102e757806308fd3d0514610326578063095ea7b3146103575780630a8c9826146103775780631161ae391461039157600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d460245481565b6040519081526020015b60405180910390f35b3480156102f357600080fd5b5060408051808201909152600d81526c092e6d0deeea6e0cacac88aa89609b1b60208201525b6040516102de9190612178565b34801561033257600080fd5b5060235461034790600160a01b900460ff1681565b60405190151581526020016102de565b34801561036357600080fd5b506103476103723660046121e9565b61092e565b34801561038357600080fd5b50600a546103479060ff1681565b34801561039d57600080fd5b506103476103ac366004612213565b61099b565b3480156103bd57600080fd5b506005546102d4565b3480156103d257600080fd5b506103e66103e1366004612235565b6109af565b005b3480156103f457600080fd5b506103e661040336600461229a565b610a41565b34801561041457600080fd5b506102d460155481565b34801561042a57600080fd5b506103e6610439366004612213565b610abf565b34801561044a57600080fd5b506103e66104593660046122c1565b610af4565b34801561046a57600080fd5b506103476104793660046122de565b610b31565b34801561048a57600080fd5b506102d4610bf3565b34801561049f57600080fd5b50604051601281526020016102de565b3480156104bb57600080fd5b506103e66104ca36600461231a565b610c45565b3480156104db57600080fd5b506103e66104ea36600461229a565b610ce4565b3480156104fb57600080fd5b5061034761050a3660046123a0565b610d3f565b34801561051b57600080fd5b506103e661052a36600461229a565b610d4d565b34801561053b57600080fd5b506103e661054a3660046122c1565b610d8b565b34801561055b57600080fd5b506103e661056a3660046123bb565b610dc8565b34801561057b57600080fd5b506103e661058a3660046123f2565b610e1d565b34801561059b57600080fd5b5060235461034790600160a81b900460ff1681565b3480156105bc57600080fd5b506102d46105cb3660046123a0565b6001600160a01b031660009081526008602052604090205490565b3480156105f257600080fd5b506103e6610e58565b34801561060757600080fd5b506103476106163660046121e9565b610ecc565b34801561062757600080fd5b506102d460075481565b34801561063d57600080fd5b506102d460065481565b34801561065357600080fd5b506103e661066236600461229a565b610fcc565b34801561067357600080fd5b506103e661068236600461229a565b611026565b34801561069357600080fd5b506103e66106a236600461241e565b611073565b3480156106b357600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102de565b3480156106e557600080fd5b506103e6611139565b3480156106fa57600080fd5b506000546001600160a01b03166106c1565b34801561071857600080fd5b50600c546103479060ff1681565b34801561073257600080fd5b506040805180820190915260048152632453495560e01b6020820152610319565b34801561075f57600080fd5b506023546106c1906001600160a01b031681565b34801561077f57600080fd5b5061034761078e3660046121e9565b611178565b34801561079f57600080fd5b506000546106c1906001600160a01b031681565b3480156107bf57600080fd5b506103e6611185565b3480156107d457600080fd5b506103476107e33660046123a0565b600d6020526000908152604090205460ff1681565b34801561080457600080fd5b506103476108133660046123a0565b600b6020526000908152604090205460ff1681565b34801561083457600080fd5b506102d461084336600461229a565b6111d0565b34801561085457600080fd5b506103e661086336600461231a565b611217565b34801561087457600080fd5b506102d4610883366004612461565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156108ba57600080fd5b506103e66108c9366004612494565b6112b0565b3480156108da57600080fd5b506103e66108e93660046123a0565b6112fc565b3480156108fa57600080fd5b506103e66109093660046123bb565b6113e6565b34801561091a57600080fd5b506021546106c1906001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109899086815260200190565b60405180910390a35060015b92915050565b6000826109a7836111d0565b119392505050565b6000546001600160a01b031633146109e25760405162461bcd60e51b81526004016109d9906124b2565b60405180910390fd5b601a80546001600160a01b03199081166001600160a01b0397881617909155601b8054821695871695909517909455601c8054851693861693909317909255601e80548416918516919091179055601d80549092169216919091179055565b6000546001600160a01b03163314610a6b5760405162461bcd60e51b81526004016109d9906124b2565b601b5447906001600160a01b03166108fc6064610a8885856124fd565b610a92919061251c565b6040518115909202916000818181858888f19350505050158015610aba573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610ae95760405162461bcd60e51b81526004016109d9906124b2565b601f91909155602055565b6000546001600160a01b03163314610b1e5760405162461bcd60e51b81526004016109d9906124b2565b600a805460ff1916911515919091179055565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610bde576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610bb99184906114ff565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610be9848484611539565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610c40906003546001600160a01b0316600090815260086020526040902054610c3a90600554906119ae565b906119ae565b905090565b6000546001600160a01b03163314610c6f5760405162461bcd60e51b81526004016109d9906124b2565b60005b82811015610cde5781600d6000868685818110610c9157610c9161253e565b9050602002016020810190610ca691906123a0565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610cd781612554565b9050610c72565b50505050565b336000908152600d602052604090205460ff16610d0057600080fd5b6107d0600554610d10919061251c565b6006541015610d1e57600080fd5b6107d081600554610d2f91906124fd565b610d39919061251c565b60065550565b60006109958260001961092e565b6000546001600160a01b03163314610d775760405162461bcd60e51b81526004016109d9906124b2565b610d8581633b9aca006124fd565b60265550565b6000546001600160a01b03163314610db55760405162461bcd60e51b81526004016109d9906124b2565b600c805460ff1916911515919091179055565b6000546001600160a01b03163314610df25760405162461bcd60e51b81526004016109d9906124b2565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e475760405162461bcd60e51b81526004016109d9906124b2565b601791909155601891909155601955565b6000546001600160a01b03163314610e825760405162461bcd60e51b81526004016109d9906124b2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600d602052604081205460ff16610ee857600080fd5b81600003610f5b576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f58919061256d565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bec9190612586565b336000908152600d602052604090205460ff16610fe857600080fd5b6107d0600554610ff8919061251c565b600754101561100657600080fd5b60648160055461101691906124fd565b611020919061251c565b60075550565b6000546001600160a01b031633146110505760405162461bcd60e51b81526004016109d9906124b2565b6107d0600554611060919061251c565b600654101561106e57600080fd5b600655565b6000546001600160a01b0316331461109d5760405162461bcd60e51b81526004016109d9906124b2565b601086905560138590556011849055601283905560148290556110ce826110c8858188818c8c6119f0565b906119f0565b60155560168190556110e160028261251c565b601554106111315760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203530250000000060448201526064016109d9565b505050505050565b6000546001600160a01b031633146111635760405162461bcd60e51b81526004016109d9906124b2565b6023805460ff60a01b1916600160a01b179055565b6000610bec338484611539565b336000908152600d602052604090205460ff166111a157600080fd5b60405133904780156108fc02916000818181858888f193505050501580156111cd573d6000803e3d6000fd5b50565b60006109956111dd610bf3565b6023546001600160a01b03166000908152600860205260409020546112119061120a906002905b9061143b565b859061143b565b906114bd565b6000546001600160a01b031633146112415760405162461bcd60e51b81526004016109d9906124b2565b60005b82811015610cde5781600b60008686858181106112635761126361253e565b905060200201602081019061127891906123a0565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556112a981612554565b9050611244565b6000546001600160a01b031633146112da5760405162461bcd60e51b81526004016109d9906124b2565b60238054921515600160a81b0260ff60a81b1990931692909217909155602455565b6000546001600160a01b031633146113265760405162461bcd60e51b81526004016109d9906124b2565b6001600160a01b03811661138b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109d9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114105760405162461bcd60e51b81526004016109d9906124b2565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b60008260000361144d57506000610995565b600061145983856124fd565b905082611466858361251c565b14610bec5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109d9565b6000610bec83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a4f565b600081848411156115235760405162461bcd60e51b81526004016109d99190612178565b50600061153084866125a3565b95945050505050565b60255460009060ff161561155957611552848484611a7d565b9050610bec565b6001600160a01b03841660009081526001602052604090205460ff1615801561159b57506001600160a01b03831660009081526001602052604090205460ff16155b1561165557602354600160a01b900460ff166115f05760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016109d9565b600c5460ff1615611655576001600160a01b0383166000908152600d602052604090205460ff166116555760405162461bcd60e51b815260206004820152600f60248201526e139bdd0815da1a5d195b1a5cdd1959608a1b60448201526064016109d9565b600a5460ff16156116b6576001600160a01b0384166000908152600b602052604090205460ff16156116b65760405162461bcd60e51b815260206004820152600a602482015269125cdcdb9a5c195c995960b21b60448201526064016109d9565b6026543a101580156116d657506023546001600160a01b03848116911614155b156116ff576001600160a01b0383166000908152600b60205260409020805460ff191660011790555b6001600160a01b03841660009081526001602052604090205460ff1615801561173157506001600160a01b0383163014155b801561174b57506003546001600160a01b03848116911614155b801561176557506023546001600160a01b03848116911614155b801561177f5750601e546001600160a01b03848116911614155b80156117995750601b546001600160a01b03848116911614155b80156117be57506001600160a01b0383166000908152600f602052604090205460ff16155b1561185f576001600160a01b0383166000908152600860205260409020546007546117e984836125ba565b111561185d5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016109d9565b505b6118698483611b51565b611871611bbe565b1561187e5761187e611c14565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546118d09184906114ff565b6001600160a01b038516600090815260086020908152604080832093909355600e90529081205460ff168061191d57506001600160a01b0384166000908152600e602052604090205460ff165b6119315761192c858486611ffb565b611933565b825b6001600160a01b03851660009081526008602052604090205490915061195990826119f0565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206126728339815191529061199b9085815260200190565b60405180910390a3506001949350505050565b6000610bec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114ff565b6000806119fd83856125ba565b905083811015610bec5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109d9565b60008183611a705760405162461bcd60e51b81526004016109d99190612178565b506000611530848661251c565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611ace9184906114ff565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611afd90836119f0565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061267283398151915290611b3f9086815260200190565b60405180910390a35060019392505050565b60065481111580611b7a57506001600160a01b0382166000908152600f602052604090205460ff165b611bba5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109d9565b5050565b6023546000906001600160a01b03163314801590611bdf575060255460ff16155b8015611bf45750602354600160a81b900460ff165b8015610c4057505060245430600090815260086020526040902054101590565b6025805460ff19166001179055601f54602054600091611c339161099b565b611c3f57601054611c42565b60005b90506000611c6660026112116015546112118660245461143b90919063ffffffff16565b90506000611c7f826024546119ae90919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611cb957611cb961253e565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611cea57611cea61253e565b6001600160a01b03928316602091820292909201015260215460405163791ac94760e01b81524792919091169063791ac94790611d349086906000908790309042906004016125d2565b600060405180830381600087803b158015611d4e57600080fd5b505af1158015611d62573d6000803e3d6000fd5b505050506000611d7b82476119ae90919063ffffffff16565b90506000611d96611d8d8860026114bd565b601554906119ae565b90506000611dab60026112118481878d61143b565b90506000611dc8836112116011548761143b90919063ffffffff16565b90506000611de5846112116013548861143b90919063ffffffff16565b90506000611e02856112116012548961143b90919063ffffffff16565b601b546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611e54576040519150601f19603f3d011682016040523d82523d6000602084013e611e59565b606091505b5050601c546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611ea9576040519150601f19603f3d011682016040523d82523d6000602084013e611eae565b606091505b5050601d546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611efe576040519150601f19603f3d011682016040523d82523d6000602084013e611f03565b606091505b5060009250508b159050611fe357602154601a5460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611f81573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fa69190612643565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506025805460ff1916905550505050505050505050565b601954602354600091906001600160a01b0390811690841603612021575060175461203c565b6023546001600160a01b039081169086160361203c57506018545b6000612069601654606461205091906124fd565b611211846112046015548a61143b90919063ffffffff16565b905060006120886015546112116014548561143b90919063ffffffff16565b9050600061209683836119ae565b306000908152600860205260409020549091506120b390826119f0565b3060009081526008602052604080822092909255601e546001600160a01b0316815220546120e190836119f0565b601e546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612672833981519152910160405180910390a3811561216257601e546040518381526001600160a01b03918216918a16906000805160206126728339815191529060200160405180910390a35b61216c87846119ae565b98975050505050505050565b600060208083528351808285015260005b818110156121a557858101830151858201604001528201612189565b818111156121b7576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146121e457600080fd5b919050565b600080604083850312156121fc57600080fd5b612205836121cd565b946020939093013593505050565b6000806040838503121561222657600080fd5b50508035926020909101359150565b600080600080600060a0868803121561224d57600080fd5b612256866121cd565b9450612264602087016121cd565b9350612272604087016121cd565b9250612280606087016121cd565b915061228e608087016121cd565b90509295509295909350565b6000602082840312156122ac57600080fd5b5035919050565b80151581146111cd57600080fd5b6000602082840312156122d357600080fd5b8135610bec816122b3565b6000806000606084860312156122f357600080fd5b6122fc846121cd565b925061230a602085016121cd565b9150604084013590509250925092565b60008060006040848603121561232f57600080fd5b833567ffffffffffffffff8082111561234757600080fd5b818601915086601f83011261235b57600080fd5b81358181111561236a57600080fd5b8760208260051b850101111561237f57600080fd5b60209283019550935050840135612395816122b3565b809150509250925092565b6000602082840312156123b257600080fd5b610bec826121cd565b600080604083850312156123ce57600080fd5b6123d7836121cd565b915060208301356123e7816122b3565b809150509250929050565b60008060006060848603121561240757600080fd5b505081359360208301359350604090920135919050565b60008060008060008060c0878903121561243757600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561247457600080fd5b61247d836121cd565b915061248b602084016121cd565b90509250929050565b600080604083850312156124a757600080fd5b8235612205816122b3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615612517576125176124e7565b500290565b60008261253957634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201612566576125666124e7565b5060010190565b60006020828403121561257f57600080fd5b5051919050565b60006020828403121561259857600080fd5b8151610bec816122b3565b6000828210156125b5576125b56124e7565b500390565b600082198211156125cd576125cd6124e7565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126225784516001600160a01b0316835293830193918301916001016125fd565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561265857600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a518b957c2073d56f41a71a8057e4c2f7111bc93a24004b55bf8b9a05cfdef7e64736f6c634300080e0033

Deployed Bytecode Sourcemap

5071:14951:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6953:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6953:54:0;;;;;;;;8674:80;;;;;;;;;;-1:-1:-1;8746:5:0;;;;;;;;;;;;-1:-1:-1;;;8746:5:0;;;;8674:80;;;;;;;:::i;6872:31::-;;;;;;;;;;-1:-1:-1;6872:31:0;;;;-1:-1:-1;;;6872:31:0;;;;;;;;;963:14:1;;956:22;938:41;;926:2;911:18;6872:31:0;798:187:1;9096:216:0;;;;;;;;;;-1:-1:-1;9096:216:0;;;;;:::i;:::-;;:::i;5740:31::-;;;;;;;;;;-1:-1:-1;5740:31:0;;;;;;;;19798:150;;;;;;;;;;-1:-1:-1;19798:150:0;;;;;:::i;:::-;;:::i;8404:88::-;;;;;;;;;;-1:-1:-1;8477:12:0;;8404:88;;18659:449;;;;;;;;;;-1:-1:-1;18659:449:0;;;;;:::i;:::-;;:::i;:::-;;14143:233;;;;;;;;;;-1:-1:-1;14143:233:0;;;;;:::i;:::-;;:::i;6222:94::-;;;;;;;;;;;;;;;;19279:182;;;;;;;;;;-1:-1:-1;19279:182:0;;;;;:::i;:::-;;:::i;17178:97::-;;;;;;;;;;-1:-1:-1;17178:97:0;;;;;:::i;:::-;;:::i;9614:370::-;;;;;;;;;;-1:-1:-1;9614:370:0;;;;;:::i;:::-;;:::i;19473:142::-;;;;;;;;;;;;;:::i;8498:80::-;;;;;;;;;;-1:-1:-1;8498:80:0;;5421:2;3198:36:1;;3186:2;3171:18;8498:80:0;3056:184:1;17598:200:0;;;;;;;;;;-1:-1:-1;17598:200:0;;;;;:::i;:::-;;:::i;10274:253::-;;;;;;;;;;-1:-1:-1;10274:253:0;;;;;:::i;:::-;;:::i;9320:122::-;;;;;;;;;;-1:-1:-1;9320:122:0;;;;;:::i;:::-;;:::i;15174:112::-;;;;;;;;;;-1:-1:-1;15174:112:0;;;;;:::i;:::-;;:::i;17283:91::-;;;;;;;;;;-1:-1:-1;17283:91:0;;;;;:::i;:::-;;:::i;17806:119::-;;;;;;;;;;-1:-1:-1;17806:119:0;;;;;:::i;:::-;;:::i;14839:210::-;;;;;;;;;;-1:-1:-1;14839:210:0;;;;;:::i;:::-;;:::i;6916:30::-;;;;;;;;;;-1:-1:-1;6916:30:0;;;;-1:-1:-1;;;6916:30:0;;;;;;8844:105;;;;;;;;;;-1:-1:-1;8844:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8928:18:0;8910:7;8928:18;;;:9;:18;;;;;;;8844:105;3128:148;;;;;;;;;;;;;:::i;14530:301::-;;;;;;;;;;-1:-1:-1;14530:301:0;;;;;:::i;:::-;;:::i;5555:61::-;;;;;;;;;;;;;;;;5490:58;;;;;;;;;;;;;;;;9996:270;;;;;;;;;;-1:-1:-1;9996:270:0;;;;;:::i;:::-;;:::i;10541:158::-;;;;;;;;;;-1:-1:-1;10541:158:0;;;;;:::i;:::-;;:::i;18068:583::-;;;;;;;;;;-1:-1:-1;18068:583:0;;;;;:::i;:::-;;:::i;8760:78::-;;;;;;;;;;-1:-1:-1;8812:7:0;2979:6;-1:-1:-1;;;;;2979:6:0;8760:78;;;-1:-1:-1;;;;;5524:32:1;;;5506:51;;5494:2;5479:18;8760:78:0;5360:203:1;15080:79:0;;;;;;;;;;;;;:::i;2914:::-;;;;;;;;;;-1:-1:-1;2952:7:0;2979:6;-1:-1:-1;;;;;2979:6:0;2914:79;;5832:28;;;;;;;;;;-1:-1:-1;5832:28:0;;;;;;;;8584:84;;;;;;;;;;-1:-1:-1;8658:7:0;;;;;;;;;;;;-1:-1:-1;;;8658:7:0;;;;8584:84;;6840:19;;;;;;;;;;-1:-1:-1;6840:19:0;;;;-1:-1:-1;;;;;6840:19:0;;;9450:156;;;;;;;;;;-1:-1:-1;9450:156:0;;;;;:::i;:::-;;:::i;2534:21::-;;;;;;;;;;-1:-1:-1;2534:21:0;;;;-1:-1:-1;;;;;2534:21:0;;;14384:138;;;;;;;;;;;;;:::i;5867:41::-;;;;;;;;;;-1:-1:-1;5867:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5778:45;;;;;;;;;;-1:-1:-1;5778:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19623:167;;;;;;;;;;-1:-1:-1;19623:167:0;;;;;:::i;:::-;;:::i;17382:208::-;;;;;;;;;;-1:-1:-1;17382:208:0;;;;;:::i;:::-;;:::i;8955:133::-;;;;;;;;;;-1:-1:-1;8955:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9057:19:0;;;9039:7;9057:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8955:133;19116:155;;;;;;;;;;-1:-1:-1;19116:155:0;;;;;:::i;:::-;;:::i;3284:244::-;;;;;;;;;;-1:-1:-1;3284:244:0;;;;;:::i;:::-;;:::i;17933:127::-;;;;;;;;;;-1:-1:-1;17933:127:0;;;;;:::i;:::-;;:::i;6770:24::-;;;;;;;;;;-1:-1:-1;6770:24:0;;;;-1:-1:-1;;;;;6770:24:0;;;9096:216;9200:10;9171:4;9188:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9188:32:0;;;;;;;;;;:41;;;9245:37;9171:4;;9188:32;;9245:37;;;;9223:6;160:25:1;;148:2;133:18;;14:177;9245:37:0;;;;;;;;-1:-1:-1;9300:4:0;9096:216;;;;;:::o;19798:150::-;19878:4;19934:6;19902:29;19922:8;19902:19;:29::i;:::-;:38;;19798:150;-1:-1:-1;;;19798:150:0:o;18659:449::-;3041:6;;-1:-1:-1;;;;;3041:6:0;2351:10;3041:22;3033:67;;;;-1:-1:-1;;;3033:67:0;;;;;;;:::i;:::-;;;;;;;;;18858:21:::1;:46:::0;;-1:-1:-1;;;;;;18858:46:0;;::::1;-1:-1:-1::0;;;;;18858:46:0;;::::1;;::::0;;;18915:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18970:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;19021:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;19066:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;18659:449::o;14143:233::-;3041:6;;-1:-1:-1;;;;;3041:6:0;2351:10;3041:22;3033:67;;;;-1:-1:-1;;;3033:67:0;;;;;;;:::i;:::-;14302:20:::1;::::0;14262:21:::1;::::0;-1:-1:-1;;;;;14302:20:0::1;14294:74;14364:3;14333:28;14345:16:::0;14262:21;14333:28:::1;:::i;:::-;:34;;;;:::i;:::-;14294:74;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14215:161;14143:233:::0;:::o;19279:182::-;3041:6;;-1:-1:-1;;;;;3041:6:0;2351:10;3041:22;3033:67;;;;-1:-1:-1;;;3033:67:0;;;;;;;:::i;:::-;19376:15:::1;:25:::0;;;;19412:26:::1;:41:::0;19279:182::o;17178:97::-;3041:6;;-1:-1:-1;;;;;3041:6:0;2351:10;3041:22;3033:67;;;;-1:-1:-1;;;3033:67:0;;;;;;;:::i;:::-;17245:12:::1;:22:::0;;-1:-1:-1;;17245:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17178:97::o;9614:370::-;-1:-1:-1;;;;;9734:19:0;;9714:4;9734:19;;;:11;:19;;;;;;;;9754:10;9734:31;;;;;;;;-1:-1:-1;;9734:52:0;9731:186;;9836:69;;;;;;;;;;;-1:-1:-1;;;9836:69:0;;;;;;;;-1:-1:-1;;;;;9836:19:0;;-1:-1:-1;9836:19:0;;;:11;:19;;;;;9856:10;9836:31;;;;;;;;;;:69;;9872:6;;9836:35;:69::i;:::-;-1:-1:-1;;;;;9802:19:0;;;;;;:11;:19;;;;;;;;9822:10;9802:31;;;;;;;:103;9731:186;9936:40;9950:6;9958:9;9969:6;9936:13;:40::i;:::-;9929:47;;9614:370;;;;;;:::o;19473:142::-;19601:4;;-1:-1:-1;;;;;19601:4:0;19526:7;8928:18;;;:9;:18;;;;;;19553:54;;19580:4;;-1:-1:-1;;;;;19580:4:0;8910:7;8928:18;;;:9;:18;;;;;;19553:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19546:61;;19473:142;:::o;17598:200::-;3041:6;;-1:-1:-1;;;;;3041:6:0;2351:10;3041:22;3033:67;;;;-1:-1:-1;;;3033:67:0;;;;;;;:::i;:::-;17695:9:::1;17690:101;17706:20:::0;;::::1;17690:101;;;17773:6;17748:8;:22;17757:9;;17767:1;17757:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17748:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17748:22:0;:31;;-1:-1:-1;;17748:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17728:3:::1;::::0;::::1;:::i;:::-;;;17690:101;;;;17598:200:::0;;;:::o;10274:253::-;10356:10;10347:20;;;;:8;:20;;;;;;;;10339:29;;;;;;10418:4;10403:12;;:19;;;;:::i;:::-;10387:12;;:35;;10379:44;;;;;;10515:4;10498:12;10483;;:27;;;;:::i;:::-;10482:37;;;;:::i;:::-;10467:12;:52;-1:-1:-1;10274:253:0:o;9320:122::-;9375:4;9399:35;9407:7;-1:-1:-1;;9399:7:0;:35::i;15174:112::-;3041:6;;-1:-1:-1;;;;;3041:6:0;2351:10;3041:22;3033:67;;;;-1:-1:-1;;;3033:67:0;;;;;;;:::i;:::-;15255:16:::1;:7:::0;15265:6:::1;15255:16;:::i;:::-;15246:6;:25:::0;-1:-1:-1;15174:112:0:o;17283:91::-;3041:6;;-1:-1:-1;;;;;3041:6:0;2351:10;3041:22;3033:67;;;;-1:-1:-1;;;3033:67:0;;;;;;;:::i;:::-;17346:8:::1;:18:::0;;-1:-1:-1;;17346:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17283:91::o;17806:119::-;3041:6;;-1:-1:-1;;;;;3041:6:0;2351:10;3041:22;3033:67;;;;-1:-1:-1;;;3033:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17889:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;17889:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17806:119::o;14839:210::-;3041:6;;-1:-1:-1;;;;;3041:6:0;2351:10;3041:22;3033:67;;;;-1:-1:-1;;;3033:67:0;;;;;;;:::i;:::-;14938:14:::1;:22:::0;;;;14971:13:::1;:20:::0;;;;15002:18:::1;:27:::0;14839:210::o;3128:148::-;3041:6;;-1:-1:-1;;;;;3041:6:0;2351:10;3041:22;3033:67;;;;-1:-1:-1;;;3033:67:0;;;;;;;:::i;:::-;3235:1:::1;3219:6:::0;;3198:40:::1;::::0;-1:-1:-1;;;;;3219:6:0;;::::1;::::0;3198:40:::1;::::0;3235:1;;3198:40:::1;3266:1;3249:19:::0;;-1:-1:-1;;;;;;3249:19:0::1;::::0;;3128:148::o;14530:301::-;14643:10;14609:4;14634:20;;;:8;:20;;;;;;;;14626:29;;;;;;14666:6;14676:1;14666:11;14663:95;;14702:44;;-1:-1:-1;;;14702:44:0;;14740:4;14702:44;;;5506:51:1;-1:-1:-1;;;;;14702:29:0;;;;;5479:18:1;;14702:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14693:53;;14663:95;14775:48;;-1:-1:-1;;;14775:48:0;;14804:10;14775:48;;;7896:51:1;7963:18;;;7956:34;;;-1:-1:-1;;;;;14775:28:0;;;;;7869:18:1;;14775:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9996:270::-;10084:10;10075:20;;;;:8;:20;;;;;;;;10067:29;;;;;;10149:4;10134:12;;:19;;;;:::i;:::-;10115:15;;:38;;10107:47;;;;;;10237:3;10218:14;10203:12;;:29;;;;:::i;:::-;10202:38;;;;:::i;:::-;10184:15;:56;-1:-1:-1;9996:270:0:o;10541:158::-;3041:6;;-1:-1:-1;;;;;3041:6:0;2351:10;3041:22;3033:67;;;;-1:-1:-1;;;3033:67:0;;;;;;;:::i;:::-;10654:4:::1;10639:12;;:19;;;;:::i;:::-;10623:12;;:35;;10615:44;;;::::0;::::1;;10670:12;:21:::0;10541:158::o;18068:583::-;3041:6;;-1:-1:-1;;;;;3041:6:0;2351:10;3041:22;3033:67;;;;-1:-1:-1;;;3033:67:0;;;;;;;:::i;:::-;18244:12:::1;:28:::0;;;18283:7:::1;:18:::0;;;18312:12:::1;:28:::0;;;18351:10:::1;:25:::0;;;18388:7:::1;:18:::0;;;18428:78:::1;18398:8:::0;18428:64:::1;18365:11:::0;18428:64;18327:13;18428:64;18259:13;18293:8;18428:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:78::-;18417:8;:89:::0;18517:14:::1;:32:::0;;;18579:16:::1;18594:1;18534:15:::0;18579:16:::1;:::i;:::-;18568:8;;:27;18560:68;;;::::0;-1:-1:-1;;;18560:68:0;;8453:2:1;18560:68:0::1;::::0;::::1;8435:21:1::0;8492:2;8472:18;;;8465:30;8531;8511:18;;;8504:58;8579:18;;18560:68:0::1;8251:352:1::0;18560:68:0::1;18068:583:::0;;;;;;:::o;15080:79::-;3041:6;;-1:-1:-1;;;;;3041:6:0;2351:10;3041:22;3033:67;;;;-1:-1:-1;;;3033:67:0;;;;;;;:::i;:::-;15133:11:::1;:18:::0;;-1:-1:-1;;;;15133:18:0::1;-1:-1:-1::0;;;15133:18:0::1;::::0;;15080:79::o;9450:156::-;9530:4;9554:44;9568:10;9580:9;9591:6;9554:13;:44::i;14384:138::-;14438:10;14429:20;;;;:8;:20;;;;;;;;14421:29;;;;;;14461:51;;14469:10;;14490:21;14461:51;;;;;;;;;14490:21;14469:10;14461:51;;;;;;;;;;;;;;;;;;;;;14384:138::o;19623:167::-;19691:7;19718:64;19759:22;:20;:22::i;:::-;19741:4;;-1:-1:-1;;;;;19741:4:0;8910:7;8928:18;;;:9;:18;;;;;;19718:36;;19731:22;;19751:1;;19731:15;:19;;:22::i;:::-;19718:8;;:12;:36::i;:::-;:40;;:64::i;17382:208::-;3041:6;;-1:-1:-1;;;;;3041:6:0;2351:10;3041:22;3033:67;;;;-1:-1:-1;;;3033:67:0;;;;;;;:::i;:::-;17483:9:::1;17478:105;17494:20:::0;;::::1;17478:105;;;17565:6;17536:12;:26;17549:9;;17559:1;17549:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17536:26:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17536:26:0;:35;;-1:-1:-1;;17536:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17516:3:::1;::::0;::::1;:::i;:::-;;;17478:105;;19116:155:::0;3041:6;;-1:-1:-1;;;;;3041:6:0;2351:10;3041:22;3033:67;;;;-1:-1:-1;;;3033:67:0;;;;;;;:::i;:::-;19207:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;19207:22:0::1;-1:-1:-1::0;;;;19207:22:0;;::::1;::::0;;;::::1;::::0;;;19240:13:::1;:23:::0;19116:155::o;3284:244::-;3041:6;;-1:-1:-1;;;;;3041:6:0;2351:10;3041:22;3033:67;;;;-1:-1:-1;;;3033:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3373:22:0;::::1;3365:73;;;::::0;-1:-1:-1;;;3365:73:0;;8810:2:1;3365:73:0::1;::::0;::::1;8792:21:1::0;8849:2;8829:18;;;8822:30;8888:34;8868:18;;;8861:62;-1:-1:-1;;;8939:18:1;;;8932:36;8985:19;;3365:73:0::1;8608:402:1::0;3365:73:0::1;3475:6;::::0;;3454:38:::1;::::0;-1:-1:-1;;;;;3454:38:0;;::::1;::::0;3475:6;::::1;::::0;3454:38:::1;::::0;::::1;3503:6;:17:::0;;-1:-1:-1;;;;;;3503:17:0::1;-1:-1:-1::0;;;;;3503:17:0;;;::::1;::::0;;;::::1;::::0;;3284:244::o;17933:127::-;3041:6;;-1:-1:-1;;;;;3041:6:0;2351:10;3041:22;3033:67;;;;-1:-1:-1;;;3033:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18020:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;18020:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17933:127::o;713:250::-;771:7;795:1;800;795:6;791:47;;-1:-1:-1;825:1:0;818:8;;791:47;850:9;862:5;866:1;862;:5;:::i;:::-;850:17;-1:-1:-1;895:1:0;886:5;890:1;850:17;886:5;:::i;:::-;:10;878:56;;;;-1:-1:-1;;;878:56:0;;9217:2:1;878:56:0;;;9199:21:1;9256:2;9236:18;;;9229:30;9295:34;9275:18;;;9268:62;-1:-1:-1;;;9346:18:1;;;9339:31;9387:19;;878:56:0;9015:397:1;969:132:0;1027:7;1054:39;1058:1;1061;1054:39;;;;;;;;;;;;;;;;;:3;:39::i;515:192::-;601:7;637:12;629:6;;;;621:29;;;;-1:-1:-1;;;621:29:0;;;;;;;;:::i;:::-;-1:-1:-1;661:9:0;673:5;677:1;673;:5;:::i;:::-;661:17;515:192;-1:-1:-1;;;;;515:192:0:o;10707:1635::-;10819:6;;10799:4;;10819:6;;10816:63;;;10835:41;10850:6;10858:9;10869:6;10835:14;:41::i;:::-;10828:48;;;;10816:63;-1:-1:-1;;;;;10895:22:0;;;;;;:14;:22;;;;;;;;10894:23;:53;;;;-1:-1:-1;;;;;;10922:25:0;;;;;;:14;:25;;;;;;;;10921:26;10894:53;10891:242;;;10971:11;;-1:-1:-1;;;10971:11:0;;;;10963:43;;;;-1:-1:-1;;;10963:43:0;;9749:2:1;10963:43:0;;;9731:21:1;9788:2;9768:18;;;9761:30;-1:-1:-1;;;9807:18:1;;;9800:50;9867:18;;10963:43:0;9547:344:1;10963:43:0;11022:8;;;;11019:103;;;-1:-1:-1;;;;;11058:19:0;;;;;;:8;:19;;;;;;;;11050:46;;;;-1:-1:-1;;;11050:46:0;;10098:2:1;11050:46:0;;;10080:21:1;10137:2;10117:18;;;10110:30;-1:-1:-1;;;10156:18:1;;;10149:45;10211:18;;11050:46:0;9896:339:1;11050:46:0;11170:12;;;;11167:90;;;-1:-1:-1;;;;;11207:20:0;;;;;;:12;:20;;;;;;;;11206:21;11198:43;;;;-1:-1:-1;;;11198:43:0;;10442:2:1;11198:43:0;;;10424:21:1;10481:2;10461:18;;;10454:30;-1:-1:-1;;;10500:18:1;;;10493:40;10550:18;;11198:43:0;10240:334:1;11198:43:0;11288:6;;11273:11;:21;;:42;;;;-1:-1:-1;11311:4:0;;-1:-1:-1;;;;;11298:17:0;;;11311:4;;11298:17;;11273:42;11269:105;;;-1:-1:-1;;;;;11332:23:0;;;;;;:12;:23;;;;;:30;;-1:-1:-1;;11332:30:0;11358:4;11332:30;;;11269:105;-1:-1:-1;;;;;11391:22:0;;;;;;:14;:22;;;;;;;;11390:23;:53;;;;-1:-1:-1;;;;;;11417:26:0;;11438:4;11417:26;;11390:53;:84;;;;-1:-1:-1;11469:4:0;;-1:-1:-1;;;;;11448:26:0;;;11469:4;;11448:26;;11390:84;:105;;;;-1:-1:-1;11491:4:0;;-1:-1:-1;;;;;11478:17:0;;;11491:4;;11478:17;;11390:105;:137;;;;-1:-1:-1;11512:15:0;;-1:-1:-1;;;;;11499:28:0;;;11512:15;;11499:28;;11390:137;:174;;;;-1:-1:-1;11544:20:0;;-1:-1:-1;;;;;11531:33:0;;;11544:20;;11531:33;;11390:174;:205;;;;-1:-1:-1;;;;;;11569:26:0;;;;;;:15;:26;;;;;;;;11568:27;11390:205;11386:397;;;-1:-1:-1;;;;;8928:18:0;;11611;8928;;;:9;:18;;;;;;11700:15;;11676:19;11689:6;8928:18;11676:19;:::i;:::-;11675:40;;11667:114;;;;-1:-1:-1;;;11667:114:0;;10914:2:1;11667:114:0;;;10896:21:1;10953:2;10933:18;;;10926:30;10992:34;10972:18;;;10965:62;11063:32;11043:18;;;11036:60;11113:19;;11667:114:0;10712:426:1;11667:114:0;11596:187;11386:397;11836:28;11849:6;11857;11836:12;:28::i;:::-;11881:16;:14;:16::i;:::-;11878:35;;;11900:10;:8;:10::i;:::-;11993:53;;;;;;;;;;;-1:-1:-1;;;11993:53:0;;;;;;;;-1:-1:-1;;;;;11993:17:0;;-1:-1:-1;11993:17:0;;;:9;:17;;;;;;;;:53;;12015:6;;11993:21;:53::i;:::-;-1:-1:-1;;;;;11973:17:0;;;;;;:9;:17;;;;;;;;:73;;;;12085:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;12108:22:0;;;;;;:11;:22;;;;;;;;12085:45;12084:93;;12143:34;12151:6;12159;12167:9;12143:7;:34::i;:::-;12084:93;;;12134:6;12084:93;-1:-1:-1;;;;;12211:20:0;;;;;;:9;:20;;;;;;12059:118;;-1:-1:-1;12211:40:0;;12059:118;12211:24;:40::i;:::-;-1:-1:-1;;;;;12188:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12269:43;;;;;;-1:-1:-1;;;;;;;;;;;12269:43:0;;;12297:14;160:25:1;;148:2;133:18;;14:177;12269:43:0;;;;;;;;-1:-1:-1;12330:4:0;;10707:1635;-1:-1:-1;;;;10707:1635:0:o;373:136::-;431:7;458:43;462:1;465;458:43;;;;;;;;;;;;;;;;;:3;:43::i;186:181::-;244:7;;276:5;280:1;276;:5;:::i;:::-;264:17;;305:1;300;:6;;292:46;;;;-1:-1:-1;;;292:46:0;;11345:2:1;292:46:0;;;11327:21:1;11384:2;11364:18;;;11357:30;11423:29;11403:18;;;11396:57;11470:18;;292:46:0;11143:351:1;1107:189:0;1193:7;1228:12;1221:5;1213:28;;;;-1:-1:-1;;;1213:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1252:9:0;1264:5;1268:1;1264;:5;:::i;12354:330::-;12484:53;;;;;;;;;;;-1:-1:-1;;;12484:53:0;;;;;;;;-1:-1:-1;;;;;12484:17:0;;12447:4;12484:17;;;:9;:17;;;;;;;:53;;12506:6;;12484:21;:53::i;:::-;-1:-1:-1;;;;;12464:17:0;;;;;;;:9;:17;;;;;;:73;;;;12571:20;;;;;;;:32;;12596:6;12571:24;:32::i;:::-;-1:-1:-1;;;;;12548:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12619:35;;;;;;-1:-1:-1;;;;;;;;;;;12619:35:0;;;12647:6;160:25:1;;148:2;133:18;;14:177;12619:35:0;;;;;;;;-1:-1:-1;12672:4:0;12354:330;;;;;:::o;12692:166::-;12789:12;;12779:6;:22;;:49;;;-1:-1:-1;;;;;;12805:23:0;;;;;;:15;:23;;;;;;;;12779:49;12771:79;;;;-1:-1:-1;;;12771:79:0;;11701:2:1;12771:79:0;;;11683:21:1;11740:2;11720:18;;;11713:30;-1:-1:-1;;;11759:18:1;;;11752:47;11816:18;;12771:79:0;11499:341:1;12771:79:0;12692:166;;:::o;13938:197::-;14025:4;;13987;;-1:-1:-1;;;;;14025:4:0;14011:10;:18;;;;:38;;-1:-1:-1;14043:6:0;;;;14042:7;14011:38;:62;;;;-1:-1:-1;14062:11:0;;-1:-1:-1;;;14062:11:0;;;;14011:62;:116;;;;-1:-1:-1;;14114:13:0;;14104:4;14086:24;;;;:9;:24;;;;;;:41;;;13938:197::o;15300:1870::-;7055:6;:13;;-1:-1:-1;;7055:13:0;7064:4;7055:13;;;15395:15:::1;::::0;15412:26:::1;::::0;7055:6;;15379:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15446:12;;15379:79;;;15442:1;15379:79;15349:109;;15469:23;15495:59;15552:1;15495:52;15538:8;;15495:38;15513:19;15495:13;;:17;;:38;;;;:::i;:59::-;15469:85;;15565:20;15588:34;15606:15;15588:13;;:17;;:34;;;;:::i;:::-;15659:16;::::0;;15673:1:::1;15659:16:::0;;;;;::::1;::::0;;15565:57;;-1:-1:-1;15635:21:0::1;::::0;15659:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15659:16:0::1;15635:40;;15704:4;15686;15691:1;15686:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15686:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15730:4:::1;::::0;15720:7;;15730:4;::::1;::::0;15720;;15730;;15720:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15720:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15805:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15805:188:0;;15771:21:::1;::::0;15805:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15877:12;;15747:21:::1;::::0;15920:4;;15947::::1;::::0;15967:15:::1;::::0;15805:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16006:17;16026:40;16052:13;16026:21;:25;;:40;;;;:::i;:::-;16006:60:::0;-1:-1:-1;16079:19:0::1;16101:40;16114:26;:19:::0;16138:1:::1;16114:23;:26::i;:::-;16101:8;::::0;;:12:::1;:40::i;:::-;16079:62:::0;-1:-1:-1;16162:26:0::1;16191:58;16247:1;16191:51;16079:62:::0;16191:51;:9;16205:19;16191:13:::1;:34::i;:58::-;16162:87;;16260:26;16289:44;16321:11;16289:27;16303:12;;16289:9;:13;;:27;;;;:::i;:44::-;16260:73;;16344:21;16368:39;16395:11;16368:22;16382:7;;16368:9;:13;;:22;;;;:::i;:39::-;16344:63;;16418:20;16441:43;16472:11;16441:26;16455:10;;16441:9;:13;;:26;;;;:::i;:43::-;16526:20;::::0;16518:65:::1;::::0;16418:66;;-1:-1:-1;16498:15:0::1;::::0;-1:-1:-1;;;;;16526:20:0;;::::1;::::0;16560:18;;16498:15;16518:65;16498:15;16518:65;16560:18;16526:20;16518:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16618:18:0::1;::::0;16610:57:::1;::::0;16497:86;;-1:-1:-1;;;;;;16618:18:0::1;::::0;16650:12;;16610:57:::1;::::0;;;16650:12;16618:18;16610:57:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16702:15:0::1;::::0;16694:55:::1;::::0;16594:73;;-1:-1:-1;;;;;;16702:15:0::1;::::0;16731:13;;16694:55:::1;::::0;;;16731:13;16702:15;16694:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16783:5:0::1;::::0;-1:-1:-1;;16804:19:0;;;-1:-1:-1;16801:362:0::1;;16839:6;::::0;17013:21:::1;::::0;16839:244:::1;::::0;-1:-1:-1;;;16839:244:0;;16915:4:::1;16839:244;::::0;::::1;13513:34:1::0;13563:18;;;13556:34;;;16839:6:0::1;13606:18:1::0;;;13599:34;;;13649:18;;;13642:34;-1:-1:-1;;;;;17013:21:0;;::::1;13692:19:1::0;;;13685:44;17053:15:0::1;13745:19:1::0;;;13738:35;16839:6:0;::::1;::::0;:22:::1;::::0;16869:18;;13447:19:1;;16839:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17103:48:0::1;::::0;;14269:25:1;;;14325:2;14310:18;;14303:34;;;17103:48:0::1;::::0;-1:-1:-1;14242:18:1;17103:48:0::1;;;;;;;16801:362;-1:-1:-1::0;;7073:6:0;:14;;-1:-1:-1;;7073:14:0;;;-1:-1:-1;;;;;;;;;;15300:1870:0:o;12988:942::-;13125:18;;13172:4;;13074:7;;13125:18;-1:-1:-1;;;;;13172:4:0;;;13159:17;;;;13156:154;;-1:-1:-1;13206:14:0;;13156:154;;;13251:4;;-1:-1:-1;;;;;13251:4:0;;;13241:14;;;;13238:72;;-1:-1:-1;13285:13:0;;13238:72;13322:17;13342:62;13383:14;;13400:3;13383:20;;;;:::i;:::-;13342:36;13367:10;13342:20;13353:8;;13342:6;:10;;:20;;;;:::i;:62::-;13322:82;;13415:18;13436:36;13463:8;;13436:22;13450:7;;13436:9;:13;;:22;;;;:::i;:36::-;13415:57;-1:-1:-1;13483:22:0;13508:25;:9;13415:57;13508:13;:25::i;:::-;13591:4;13573:24;;;;:9;:24;;;;;;13483:50;;-1:-1:-1;13573:44:0;;13483:50;13573:28;:44::i;:::-;13564:4;13546:24;;;;:9;:24;;;;;;:71;;;;13667:15;;-1:-1:-1;;;;;13667:15:0;13657:26;;;;:42;;13688:10;13657:30;:42::i;:::-;13638:15;;-1:-1:-1;;;;;13638:15:0;;;13628:26;;;;:9;:26;;;;;;;;;:71;;;;13715:47;160:25:1;;;13740:4:0;;13715:47;;;;-1:-1:-1;;;;;;;;;;;13715:47:0;133:18:1;13715:47:0;;;;;;;13786:14;;13783:99;;13838:15;;13821:45;;160:25:1;;;-1:-1:-1;;;;;13838:15:0;;;;13821:45;;;-1:-1:-1;;;;;;;;;;;13821:45:0;148:2:1;133:18;13821:45:0;;;;;;;13783:99;13901:21;:6;13912:9;13901:10;:21::i;:::-;13894:28;12988:942;-1:-1:-1;;;;;;;;12988:942:0:o;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;990:173::-;1058:20;;-1:-1:-1;;;;;1107:31:1;;1097:42;;1087:70;;1153:1;1150;1143:12;1087:70;990:173;;;:::o;1168:254::-;1236:6;1244;1297:2;1285:9;1276:7;1272:23;1268:32;1265:52;;;1313:1;1310;1303:12;1265:52;1336:29;1355:9;1336:29;:::i;:::-;1326:39;1412:2;1397:18;;;;1384:32;;-1:-1:-1;;;1168:254:1:o;1427:248::-;1495:6;1503;1556:2;1544:9;1535:7;1531:23;1527:32;1524:52;;;1572:1;1569;1562:12;1524:52;-1:-1:-1;;1595:23:1;;;1665:2;1650:18;;;1637:32;;-1:-1:-1;1427:248:1:o;1680:484::-;1775:6;1783;1791;1799;1807;1860:3;1848:9;1839:7;1835:23;1831:33;1828:53;;;1877:1;1874;1867:12;1828:53;1900:29;1919:9;1900:29;:::i;:::-;1890:39;;1948:38;1982:2;1971:9;1967:18;1948:38;:::i;:::-;1938:48;;2005:38;2039:2;2028:9;2024:18;2005:38;:::i;:::-;1995:48;;2062:38;2096:2;2085:9;2081:18;2062:38;:::i;:::-;2052:48;;2119:39;2153:3;2142:9;2138:19;2119:39;:::i;:::-;2109:49;;1680:484;;;;;;;;:::o;2169:180::-;2228:6;2281:2;2269:9;2260:7;2256:23;2252:32;2249:52;;;2297:1;2294;2287:12;2249:52;-1:-1:-1;2320:23:1;;2169:180;-1:-1:-1;2169:180:1:o;2354:118::-;2440:5;2433:13;2426:21;2419:5;2416:32;2406:60;;2462:1;2459;2452:12;2477:241;2533:6;2586:2;2574:9;2565:7;2561:23;2557:32;2554:52;;;2602:1;2599;2592:12;2554:52;2641:9;2628:23;2660:28;2682:5;2660:28;:::i;2723:328::-;2800:6;2808;2816;2869:2;2857:9;2848:7;2844:23;2840:32;2837:52;;;2885:1;2882;2875:12;2837:52;2908:29;2927:9;2908:29;:::i;:::-;2898:39;;2956:38;2990:2;2979:9;2975:18;2956:38;:::i;:::-;2946:48;;3041:2;3030:9;3026:18;3013:32;3003:42;;2723:328;;;;;:::o;3245:750::-;3337:6;3345;3353;3406:2;3394:9;3385:7;3381:23;3377:32;3374:52;;;3422:1;3419;3412:12;3374:52;3462:9;3449:23;3491:18;3532:2;3524:6;3521:14;3518:34;;;3548:1;3545;3538:12;3518:34;3586:6;3575:9;3571:22;3561:32;;3631:7;3624:4;3620:2;3616:13;3612:27;3602:55;;3653:1;3650;3643:12;3602:55;3693:2;3680:16;3719:2;3711:6;3708:14;3705:34;;;3735:1;3732;3725:12;3705:34;3790:7;3783:4;3773:6;3770:1;3766:14;3762:2;3758:23;3754:34;3751:47;3748:67;;;3811:1;3808;3801:12;3748:67;3842:4;3834:13;;;;-1:-1:-1;3866:6:1;-1:-1:-1;;3907:20:1;;3894:34;3937:28;3894:34;3937:28;:::i;:::-;3984:5;3974:15;;;3245:750;;;;;:::o;4000:186::-;4059:6;4112:2;4100:9;4091:7;4087:23;4083:32;4080:52;;;4128:1;4125;4118:12;4080:52;4151:29;4170:9;4151:29;:::i;4191:315::-;4256:6;4264;4317:2;4305:9;4296:7;4292:23;4288:32;4285:52;;;4333:1;4330;4323:12;4285:52;4356:29;4375:9;4356:29;:::i;:::-;4346:39;;4435:2;4424:9;4420:18;4407:32;4448:28;4470:5;4448:28;:::i;:::-;4495:5;4485:15;;;4191:315;;;;;:::o;4511:316::-;4588:6;4596;4604;4657:2;4645:9;4636:7;4632:23;4628:32;4625:52;;;4673:1;4670;4663:12;4625:52;-1:-1:-1;;4696:23:1;;;4766:2;4751:18;;4738:32;;-1:-1:-1;4817:2:1;4802:18;;;4789:32;;4511:316;-1:-1:-1;4511:316:1:o;4832:523::-;4936:6;4944;4952;4960;4968;4976;5029:3;5017:9;5008:7;5004:23;5000:33;4997:53;;;5046:1;5043;5036:12;4997:53;-1:-1:-1;;5069:23:1;;;5139:2;5124:18;;5111:32;;-1:-1:-1;5190:2:1;5175:18;;5162:32;;5241:2;5226:18;;5213:32;;-1:-1:-1;5292:3:1;5277:19;;5264:33;;-1:-1:-1;5344:3:1;5329:19;5316:33;;-1:-1:-1;4832:523:1;-1:-1:-1;4832:523:1:o;5568:260::-;5636:6;5644;5697:2;5685:9;5676:7;5672:23;5668:32;5665:52;;;5713:1;5710;5703:12;5665:52;5736:29;5755:9;5736:29;:::i;:::-;5726:39;;5784:38;5818:2;5807:9;5803:18;5784:38;:::i;:::-;5774:48;;5568:260;;;;;:::o;5833:309::-;5898:6;5906;5959:2;5947:9;5938:7;5934:23;5930:32;5927:52;;;5975:1;5972;5965:12;5927:52;6014:9;6001:23;6033:28;6055:5;6033:28;:::i;6373:356::-;6575:2;6557:21;;;6594:18;;;6587:30;6653:34;6648:2;6633:18;;6626:62;6720:2;6705:18;;6373:356::o;6734:127::-;6795:10;6790:3;6786:20;6783:1;6776:31;6826:4;6823:1;6816:15;6850:4;6847:1;6840:15;6866:168;6906:7;6972:1;6968;6964:6;6960:14;6957:1;6954:21;6949:1;6942:9;6935:17;6931:45;6928:71;;;6979:18;;:::i;:::-;-1:-1:-1;7019:9:1;;6866:168::o;7039:217::-;7079:1;7105;7095:132;;7149:10;7144:3;7140:20;7137:1;7130:31;7184:4;7181:1;7174:15;7212:4;7209:1;7202:15;7095:132;-1:-1:-1;7241:9:1;;7039:217::o;7261:127::-;7322:10;7317:3;7313:20;7310:1;7303:31;7353:4;7350:1;7343:15;7377:4;7374:1;7367:15;7393:135;7432:3;7453:17;;;7450:43;;7473:18;;:::i;:::-;-1:-1:-1;7520:1:1;7509:13;;7393:135::o;7533:184::-;7603:6;7656:2;7644:9;7635:7;7631:23;7627:32;7624:52;;;7672:1;7669;7662:12;7624:52;-1:-1:-1;7695:16:1;;7533:184;-1:-1:-1;7533:184:1:o;8001:245::-;8068:6;8121:2;8109:9;8100:7;8096:23;8092:32;8089:52;;;8137:1;8134;8127:12;8089:52;8169:9;8163:16;8188:28;8210:5;8188:28;:::i;9417:125::-;9457:4;9485:1;9482;9479:8;9476:34;;;9490:18;;:::i;:::-;-1:-1:-1;9527:9:1;;9417:125::o;10579:128::-;10619:3;10650:1;10646:6;10643:1;10640:13;10637:39;;;10656:18;;:::i;:::-;-1:-1:-1;10692:9:1;;10579:128::o;11977:980::-;12239:4;12287:3;12276:9;12272:19;12318:6;12307:9;12300:25;12344:2;12382:6;12377:2;12366:9;12362:18;12355:34;12425:3;12420:2;12409:9;12405:18;12398:31;12449:6;12484;12478:13;12515:6;12507;12500:22;12553:3;12542:9;12538:19;12531:26;;12592:2;12584:6;12580:15;12566:29;;12613:1;12623:195;12637:6;12634:1;12631:13;12623:195;;;12702:13;;-1:-1:-1;;;;;12698:39:1;12686:52;;12793:15;;;;12758:12;;;;12734:1;12652:9;12623:195;;;-1:-1:-1;;;;;;;12874:32:1;;;;12869:2;12854:18;;12847:60;-1:-1:-1;;;12938:3:1;12923:19;12916:35;12835:3;11977:980;-1:-1:-1;;;11977:980:1:o;13784:306::-;13872:6;13880;13888;13941:2;13929:9;13920:7;13916:23;13912:32;13909:52;;;13957:1;13954;13947:12;13909:52;13986:9;13980:16;13970:26;;14036:2;14025:9;14021:18;14015:25;14005:35;;14080:2;14069:9;14065:18;14059:25;14049:35;;13784:306;;;;;:::o

Swarm Source

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