ETH Price: $3,153.64 (+1.08%)
Gas: 2 Gwei

Token

Ghost Swap (GHOST)
 

Overview

Max Total Supply

10,000,000 GHOST

Holders

183

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
obamaslastname.eth
Balance
8,391.903308344002869243 GHOST

Value
$0.00
0x646b14a3a0a24038b24b4b13b66d8dfea04e801f
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:
GhostSwap

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-20
*/

// SPDX-License-Identifier: UNLICENSED


pragma solidity ^0.8.7;

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

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

    string constant _name = "Ghost Swap";
    string constant _symbol = "GHOST";
    uint8 constant _decimals = 18; 

    uint256 _totalSupply = 1 * 10**7 * 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 devFee          = 1;
    uint256 private teamFee         = 0; 
    uint256 private burnFee         = 0;
    uint256 public totalFee        = teamFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;

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

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    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[devFeeReceiver] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        isliveed[routerV2] = true;
        isliveed[msg.sender] = true;    
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[devFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xf1d6e68cA4A82eA29FbCc1D84eB0D2B66f817fB5;
        devFeeReceiver = 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 / 1000); //no less than .1%
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
                
    }

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

    
    function setTxLimitAbsolute(uint256 amount) external onlyOwner {
        require(_maxTxAmount >= _totalSupply / 1000);
        _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(devFee).div(totalETHFee);

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

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

    function 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 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/2, "Fees cannot be more than 50%"); //antihoneypot
    }

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

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

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

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

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




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":"_devFeeReceiver","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":"_devFee","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"}]

608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000099919062001179565b62989680620000a99190620012b6565b600555620000e36064620000cf600160055462000dc460201b620026fa1790919060201c565b62000e4860201b620027751790919060201c565b6006556200011d606462000109600160055462000dc460201b620026fa1790919060201c565b62000e4860201b620027751790919060201c565b6007556001600a60006101000a81548160ff0219169083151502179055506000600c60006101000a81548160ff021916908315150217905550600260105560026011556001601255600060135560006014556014546012546010546011546013546200018a919062001089565b62000196919062001089565b620001a2919062001089565b620001ae919062001089565b6015556064601655606460175560646018556104b06019556005601f5560646020556000602360146101000a81548160ff0219169083151502179055506001602360156101000a81548160ff0219169083151502179055506103e860026005546200021a9190620012b6565b620002269190620010e6565b60245564012a05f2006026553480156200023f57600080fd5b5060006200025262000e9a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073a2b52495371eed0bf260b056895077b09e7e2c849050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043f57600080fd5b505afa15801562000454573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047a919062000f21565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200052357600080fd5b505afa15801562000538573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200055e919062000f21565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620005bc92919062000fdd565b602060405180830381600087803b158015620005d757600080fd5b505af1158015620005ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000612919062000f21565b602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f1d6e68ca4a82ea29fbcc1d84eb0d2b66f817fb5601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000db5919062001050565b60405180910390a35062001482565b60008083141562000dd9576000905062000e42565b6000828462000de99190620012b6565b905082848262000dfa9190620010e6565b1462000e3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e34906200102e565b60405180910390fd5b809150505b92915050565b600062000e9283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000ea260201b60201c565b905092915050565b600033905090565b6000808311829062000eec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ee391906200100a565b60405180910390fd5b506000838562000efd9190620010e6565b9050809150509392505050565b60008151905062000f1b8162001468565b92915050565b60006020828403121562000f3a5762000f39620013f6565b5b600062000f4a8482850162000f0a565b91505092915050565b62000f5e8162001317565b82525050565b600062000f71826200106d565b62000f7d818562001078565b935062000f8f81856020860162001362565b62000f9a81620013fb565b840191505092915050565b600062000fb460218362001078565b915062000fc18262001419565b604082019050919050565b62000fd7816200134b565b82525050565b600060408201905062000ff4600083018562000f53565b62001003602083018462000f53565b9392505050565b6000602082019050818103600083015262001026818462000f64565b905092915050565b60006020820190508181036000830152620010498162000fa5565b9050919050565b600060208201905062001067600083018462000fcc565b92915050565b600081519050919050565b600082825260208201905092915050565b600062001096826200134b565b9150620010a3836200134b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620010db57620010da62001398565b5b828201905092915050565b6000620010f3826200134b565b915062001100836200134b565b925082620011135762001112620013c7565b5b828204905092915050565b6000808291508390505b6001851115620011705780860481111562001148576200114762001398565b5b6001851615620011585780820291505b808102905062001168856200140c565b945062001128565b94509492505050565b600062001186826200134b565b9150620011938362001355565b9250620011c27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620011ca565b905092915050565b600082620011dc5760019050620012af565b81620011ec5760009050620012af565b8160018114620012055760028114620012105762001246565b6001915050620012af565b60ff84111562001225576200122462001398565b5b8360020a9150848211156200123f576200123e62001398565b5b50620012af565b5060208310610133831016604e8410600b8410161715620012805782820a9050838111156200127a576200127962001398565b5b620012af565b6200128f84848460016200111e565b92509050818404811115620012a957620012a862001398565b5b81810290505b9392505050565b6000620012c3826200134b565b9150620012d0836200134b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200130c576200130b62001398565b5b828202905092915050565b600062001324826200132b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156200138257808201518184015260208101905062001365565b8381111562001392576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b620014738162001317565b81146200147f57600080fd5b50565b614fe980620014926000396000f3fe6080604052600436106102b25760003560e01c8063715018a611610175578063a8aa1b31116100dc578063d51ed1c811610095578063df20fd491161006f578063df20fd4914610abb578063f2fde38b14610ae4578063f84ba65d14610b0d578063f887ea4014610b36576102b9565b8063d51ed1c814610a18578063dcd2e64514610a55578063dd62ed3e14610a7e576102b9565b8063a8aa1b31146108f4578063a9059cbb1461091f578063b2bdfa7b1461095c578063b46300ec14610987578063b7593ad91461099e578063cf55fea9146109db576102b9565b806386f6c3c11161012e57806386f6c3c114610808578063893d20e8146108315780638a8c523c1461085c5780638da5cb5b14610873578063900ba33b1461089e57806395d89b41146108c9576102b9565b8063715018a61461070c57806377b54bad1461072357806378109e54146107605780637d1db4a51461078b57806382bf293c146107b657806383f9d9fa146107df576102b9565b806323b872dd116102195780635aa6a95f116101d25780635aa6a95f146106005780635e04e4f814610629578063658d4b7f146106525780636ce46bc31461067b5780636ddd1713146106a457806370a08231146106cf576102b9565b806323b872dd146104de5780632b112e491461051b578063313ce567146105465780634f85a0c514610571578063570636dc1461059a578063571ac8b0146105c3576102b9565b806318160ddd1161026b57806318160ddd146103e457806318abb6351461040f5780631da1db5e146104385780631df4ccfc14610461578063201e79911461048c57806320221470146104b5576102b9565b80630445b667146102be57806306fdde03146102e957806308fd3d0514610314578063095ea7b31461033f5780630a8c98261461037c5780631161ae39146103a7576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b61565b6040516102e09190614932565b60405180910390f35b3480156102f557600080fd5b506102fe610b67565b60405161030b91906147d0565b60405180910390f35b34801561032057600080fd5b50610329610ba4565b604051610336919061479a565b60405180910390f35b34801561034b57600080fd5b5061036660048036038101906103619190614140565b610bb7565b604051610373919061479a565b60405180910390f35b34801561038857600080fd5b50610391610ca9565b60405161039e919061479a565b60405180910390f35b3480156103b357600080fd5b506103ce60048036038101906103c991906142d4565b610cbc565b6040516103db919061479a565b60405180910390f35b3480156103f057600080fd5b506103f9610cd1565b6040516104069190614932565b60405180910390f35b34801561041b57600080fd5b5061043660048036038101906104319190614032565b610cdb565b005b34801561044457600080fd5b5061045f600480360381019061045a919061427a565b610ebc565b005b34801561046d57600080fd5b50610476610fda565b6040516104839190614932565b60405180910390f35b34801561049857600080fd5b506104b360048036038101906104ae91906142d4565b610fe0565b005b3480156104c157600080fd5b506104dc60048036038101906104d791906141e0565b611087565b005b3480156104ea57600080fd5b50610505600480360381019061050091906140ad565b611139565b604051610512919061479a565b60405180910390f35b34801561052757600080fd5b50610530611339565b60405161053d9190614932565b60405180910390f35b34801561055257600080fd5b5061055b6113bb565b60405161056891906149d0565b60405180910390f35b34801561057d57600080fd5b5061059860048036038101906105939190614180565b6113c4565b005b3480156105a657600080fd5b506105c160048036038101906105bc919061427a565b6114fc565b005b3480156105cf57600080fd5b506105ea60048036038101906105e59190613fc5565b611594565b6040516105f7919061479a565b60405180910390f35b34801561060c57600080fd5b506106276004803603810190610622919061427a565b6115c7565b005b34801561063557600080fd5b50610650600480360381019061064b91906141e0565b611675565b005b34801561065e57600080fd5b5061067960048036038101906106749190614100565b611727565b005b34801561068757600080fd5b506106a2600480360381019061069d9190614314565b611817565b005b3480156106b057600080fd5b506106b96118c6565b6040516106c6919061479a565b60405180910390f35b3480156106db57600080fd5b506106f660048036038101906106f19190613fc5565b6118d9565b6040516107039190614932565b60405180910390f35b34801561071857600080fd5b50610721611922565b005b34801561072f57600080fd5b5061074a60048036038101906107459190614140565b611a75565b604051610757919061479a565b60405180910390f35b34801561076c57600080fd5b50610775611bf7565b6040516107829190614932565b60405180910390f35b34801561079757600080fd5b506107a0611bfd565b6040516107ad9190614932565b60405180910390f35b3480156107c257600080fd5b506107dd60048036038101906107d8919061427a565b611c03565b005b3480156107eb57600080fd5b506108066004803603810190610801919061427a565b611c9a565b005b34801561081457600080fd5b5061082f600480360381019061082a91906143ba565b611d57565b005b34801561083d57600080fd5b50610846611ebf565b60405161085391906146f5565b60405180910390f35b34801561086857600080fd5b50610871611ece565b005b34801561087f57600080fd5b50610888611f80565b60405161089591906146f5565b60405180910390f35b3480156108aa57600080fd5b506108b3611fa9565b6040516108c0919061479a565b60405180910390f35b3480156108d557600080fd5b506108de611fbc565b6040516108eb91906147d0565b60405180910390f35b34801561090057600080fd5b50610909611ff9565b60405161091691906146f5565b60405180910390f35b34801561092b57600080fd5b5061094660048036038101906109419190614140565b61201f565b604051610953919061479a565b60405180910390f35b34801561096857600080fd5b50610971612034565b60405161097e91906146f5565b60405180910390f35b34801561099357600080fd5b5061099c612058565b005b3480156109aa57600080fd5b506109c560048036038101906109c09190613fc5565b6120f7565b6040516109d2919061479a565b60405180910390f35b3480156109e757600080fd5b50610a0260048036038101906109fd9190613fc5565b612117565b604051610a0f919061479a565b60405180910390f35b348015610a2457600080fd5b50610a3f6004803603810190610a3a919061427a565b612137565b604051610a4c9190614932565b60405180910390f35b348015610a6157600080fd5b50610a7c6004803603810190610a779190614180565b6121a9565b005b348015610a8a57600080fd5b50610aa56004803603810190610aa09190613ff2565b6122e1565b604051610ab29190614932565b60405180910390f35b348015610ac757600080fd5b50610ae26004803603810190610add919061423a565b612368565b005b348015610af057600080fd5b50610b0b6004803603810190610b069190613fc5565b612422565b005b348015610b1957600080fd5b50610b346004803603810190610b2f9190614100565b6125e4565b005b348015610b4257600080fd5b50610b4b6126d4565b604051610b5891906147b5565b60405180910390f35b60245481565b60606040518060400160405280600a81526020017f47686f7374205377617000000000000000000000000000000000000000000000815250905090565b602360149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c979190614932565b60405180910390a36001905092915050565b600a60009054906101000a900460ff1681565b600082610cc883612137565b11905092915050565b6000600554905090565b610ce36127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d67906148d2565b60405180910390fd5b84601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b610ec46127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f48906148d2565b60405180910390fd5b6000479050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484610fa09190614ad2565b610faa9190614aa1565b9081150290604051600060405180830381858888f19350505050158015610fd5573d6000803e3d6000fd5b505050565b60155481565b610fe86127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c906148d2565b60405180910390fd5b81601f81905550806020819055505050565b61108f6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461111c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611113906148d2565b60405180910390fd5b80600a60006101000a81548160ff02191690831515021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611325576112a4826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c79092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61133084848461282b565b90509392505050565b60006113b6611369600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118d9565b6113a8611397600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118d9565b6005546130a690919063ffffffff16565b6130a690919063ffffffff16565b905090565b60006012905090565b6113cc6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611459576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611450906148d2565b60405180910390fd5b60005b838390508110156114f65781600d600086868581811061147f5761147e614cd7565b5b90506020020160208101906114949190613fc5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806114ef90614c30565b905061145c565b50505050565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661155257600080fd5b6103e86005546115629190614aa1565b600654101561157057600080fd5b6103e8816005546115819190614ad2565b61158b9190614aa1565b60068190555050565b60006115c0827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610bb7565b9050919050565b6115cf6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461165c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611653906148d2565b60405180910390fd5b633b9aca008161166c9190614ad2565b60268190555050565b61167d6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461170a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611701906148d2565b60405180910390fd5b80600c60006101000a81548160ff02191690831515021790555050565b61172f6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b3906148d2565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61181f6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a3906148d2565b60405180910390fd5b816017819055508260188190555080601981905550505050565b602360159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61192a6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ae906148d2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611acd57600080fd5b6000821415611b62578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b0f91906146f5565b60206040518083038186803b158015611b2757600080fd5b505afa158015611b3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5f91906142a7565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611b9d929190614710565b602060405180830381600087803b158015611bb757600080fd5b505af1158015611bcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bef919061420d565b905092915050565b60075481565b60065481565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611c5957600080fd5b6103e8600554611c699190614aa1565b6007541015611c7757600080fd5b606481600554611c879190614ad2565b611c919190614aa1565b60078190555050565b611ca26127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d26906148d2565b60405180910390fd5b6103e8600554611d3f9190614aa1565b6006541015611d4d57600080fd5b8060068190555050565b611d5f6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de3906148d2565b60405180910390fd5b8560108190555084601381905550836011819055508260128190555081601481905550611e5882611e4a85611e3c88611e2e8b8d6130f090919063ffffffff16565b6130f090919063ffffffff16565b6130f090919063ffffffff16565b6130f090919063ffffffff16565b601581905550806016819055506002601654611e749190614aa1565b60155410611eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eae90614812565b60405180910390fd5b505050505050565b6000611ec9611f80565b905090565b611ed66127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5a906148d2565b60405180910390fd5b6001602360146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c60009054906101000a900460ff1681565b60606040518060400160405280600581526020017f47484f5354000000000000000000000000000000000000000000000000000000815250905090565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061202c33848461282b565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166120ae57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156120f4573d6000803e3d6000fd5b50565b600d6020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b60006121a2612144611339565b6121946121856002612177602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118d9565b6126fa90919063ffffffff16565b856126fa90919063ffffffff16565b61277590919063ffffffff16565b9050919050565b6121b16127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461223e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612235906148d2565b60405180910390fd5b60005b838390508110156122db5781600b600086868581811061226457612263614cd7565b5b90506020020160208101906122799190613fc5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806122d490614c30565b9050612241565b50505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6123706127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f4906148d2565b60405180910390fd5b81602360156101000a81548160ff021916908315150217905550806024819055505050565b61242a6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ae906148d2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251e90614832565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6125ec6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612679576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612670906148d2565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008083141561270d576000905061276f565b6000828461271b9190614ad2565b905082848261272a9190614aa1565b1461276a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612761906148b2565b60405180910390fd5b809150505b92915050565b60006127b783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061314e565b905092915050565b600033905090565b600083831115829061280f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280691906147d0565b60405180910390fd5b506000838561281e9190614b2c565b9050809150509392505050565b6000602560009054906101000a900460ff16156128545761284d8484846131b1565b905061309f565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128f85750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129ef57602360149054906101000a900460ff1661294c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294390614872565b60405180910390fd5b600c60009054906101000a900460ff16156129ee57600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166129ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e490614912565b60405180910390fd5b5b5b600a60009054906101000a900460ff1615612a9257600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8890614892565b60405180910390fd5b5b6026543a10158015612af25750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612b50576001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612bd657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612c305750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612c8a5750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612ce45750601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612d3e5750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612d945750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612df8576000612da4846118d9565b90506007548382612db59190614a4b565b1115612df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ded906148f2565b60405180910390fd5b505b612e028483613384565b612e0a613421565b15612e1857612e176134f8565b5b612ea1826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c79092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f875750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f9b57612f96858486613b2e565b612f9d565b825b9050612ff181600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130f090919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130919190614932565b60405180910390a360019150505b9392505050565b60006130e883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506127c7565b905092915050565b60008082846130ff9190614a4b565b905083811015613144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313b90614852565b60405180910390fd5b8091505092915050565b60008083118290613195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161318c91906147d0565b60405180910390fd5b50600083856131a49190614aa1565b9050809150509392505050565b600061323c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c79092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132d182600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130f090919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133719190614932565b60405180910390a3600190509392505050565b600654811115806133de5750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61341d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613414906147f2565b60405180910390fd5b5050565b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561348e5750602560009054906101000a900460ff16155b80156134a65750602360159054906101000a900460ff165b80156134f35750602454600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602560006101000a81548160ff0219169083151502179055506000613523601f54602054610cbc565b61352f57601054613532565b60005b905060006135726002613564601554613556866024546126fa90919063ffffffff16565b61277590919063ffffffff16565b61277590919063ffffffff16565b9050600061358b826024546130a690919063ffffffff16565b90506000600267ffffffffffffffff8111156135aa576135a9614d06565b5b6040519080825280602002602001820160405280156135d85781602001602082028036833780820191505090505b50905030816000815181106135f0576135ef614cd7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061366157613660614cd7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161370495949392919061494d565b600060405180830381600087803b15801561371e57600080fd5b505af1158015613732573d6000803e3d6000fd5b50505050600061374b82476130a690919063ffffffff16565b9050600061377761376660028961277590919063ffffffff16565b6015546130a690919063ffffffff16565b905060006137b360026137a5846137978c886126fa90919063ffffffff16565b61277590919063ffffffff16565b61277590919063ffffffff16565b905060006137de836137d0601154876126fa90919063ffffffff16565b61277590919063ffffffff16565b90506000613809846137fb601354886126fa90919063ffffffff16565b61277590919063ffffffff16565b9050600061383485613826601254896126fa90919063ffffffff16565b61277590919063ffffffff16565b90506000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168460405161387e906146e0565b60006040518083038185875af1925050503d80600081146138bb576040519150601f19603f3d011682016040523d82523d6000602084013e6138c0565b606091505b50509050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161390a906146e0565b60006040518083038185875af1925050503d8060008114613947576040519150601f19603f3d011682016040523d82523d6000602084013e61394c565b606091505b505080915050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051613998906146e0565b60006040518083038185875af1925050503d80600081146139d5576040519150601f19603f3d011682016040523d82523d6000602084013e6139da565b606091505b5050809150506000905060008b1115613b0557602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613a7696959493929190614739565b6060604051808303818588803b158015613a8f57600080fd5b505af1158015613aa3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613ac89190614367565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051613afc9291906149a7565b60405180910390a15b5050505050505050505050506000602560006101000a81548160ff021916908315150217905550565b6000806019549050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613b96576017549050613bf3565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415613bf25760185490505b5b6000613c3c6064601654613c079190614ad2565b613c2e84613c206015548a6126fa90919063ffffffff16565b6126fa90919063ffffffff16565b61277590919063ffffffff16565b90506000613c69601554613c5b601454856126fa90919063ffffffff16565b61277590919063ffffffff16565b90506000613c8082846130a690919063ffffffff16565b9050613cd481600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130f090919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613d8b8260086000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130f090919063ffffffff16565b60086000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613e4d9190614932565b60405180910390a36000821115613ee657601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613edd9190614932565b60405180910390a35b613ef983886130a690919063ffffffff16565b9450505050509392505050565b600081359050613f1581614f6e565b92915050565b60008083601f840112613f3157613f30614d3a565b5b8235905067ffffffffffffffff811115613f4e57613f4d614d35565b5b602083019150836020820283011115613f6a57613f69614d3f565b5b9250929050565b600081359050613f8081614f85565b92915050565b600081519050613f9581614f85565b92915050565b600081359050613faa81614f9c565b92915050565b600081519050613fbf81614f9c565b92915050565b600060208284031215613fdb57613fda614d49565b5b6000613fe984828501613f06565b91505092915050565b6000806040838503121561400957614008614d49565b5b600061401785828601613f06565b925050602061402885828601613f06565b9150509250929050565b600080600080600060a0868803121561404e5761404d614d49565b5b600061405c88828901613f06565b955050602061406d88828901613f06565b945050604061407e88828901613f06565b935050606061408f88828901613f06565b92505060806140a088828901613f06565b9150509295509295909350565b6000806000606084860312156140c6576140c5614d49565b5b60006140d486828701613f06565b93505060206140e586828701613f06565b92505060406140f686828701613f9b565b9150509250925092565b6000806040838503121561411757614116614d49565b5b600061412585828601613f06565b925050602061413685828601613f71565b9150509250929050565b6000806040838503121561415757614156614d49565b5b600061416585828601613f06565b925050602061417685828601613f9b565b9150509250929050565b60008060006040848603121561419957614198614d49565b5b600084013567ffffffffffffffff8111156141b7576141b6614d44565b5b6141c386828701613f1b565b935093505060206141d686828701613f71565b9150509250925092565b6000602082840312156141f6576141f5614d49565b5b600061420484828501613f71565b91505092915050565b60006020828403121561422357614222614d49565b5b600061423184828501613f86565b91505092915050565b6000806040838503121561425157614250614d49565b5b600061425f85828601613f71565b925050602061427085828601613f9b565b9150509250929050565b6000602082840312156142905761428f614d49565b5b600061429e84828501613f9b565b91505092915050565b6000602082840312156142bd576142bc614d49565b5b60006142cb84828501613fb0565b91505092915050565b600080604083850312156142eb576142ea614d49565b5b60006142f985828601613f9b565b925050602061430a85828601613f9b565b9150509250929050565b60008060006060848603121561432d5761432c614d49565b5b600061433b86828701613f9b565b935050602061434c86828701613f9b565b925050604061435d86828701613f9b565b9150509250925092565b6000806000606084860312156143805761437f614d49565b5b600061438e86828701613fb0565b935050602061439f86828701613fb0565b92505060406143b086828701613fb0565b9150509250925092565b60008060008060008060c087890312156143d7576143d6614d49565b5b60006143e589828a01613f9b565b96505060206143f689828a01613f9b565b955050604061440789828a01613f9b565b945050606061441889828a01613f9b565b935050608061442989828a01613f9b565b92505060a061443a89828a01613f9b565b9150509295509295509295565b6000614453838361445f565b60208301905092915050565b61446881614b60565b82525050565b61447781614b60565b82525050565b6000614488826149fb565b6144928185614a1e565b935061449d836149eb565b8060005b838110156144ce5781516144b58882614447565b97506144c083614a11565b9250506001810190506144a1565b5085935050505092915050565b6144e481614b72565b82525050565b6144f381614bb5565b82525050565b61450281614bc7565b82525050565b600061451382614a06565b61451d8185614a3a565b935061452d818560208601614bfd565b61453681614d4e565b840191505092915050565b600061454e601183614a3a565b915061455982614d5f565b602082019050919050565b6000614571601c83614a3a565b915061457c82614d88565b602082019050919050565b6000614594602683614a3a565b915061459f82614db1565b604082019050919050565b60006145b7601b83614a3a565b91506145c282614e00565b602082019050919050565b60006145da601483614a3a565b91506145e582614e29565b602082019050919050565b60006145fd600a83614a3a565b915061460882614e52565b602082019050919050565b6000614620602183614a3a565b915061462b82614e7b565b604082019050919050565b6000614643602083614a3a565b915061464e82614eca565b602082019050919050565b6000614666603e83614a3a565b915061467182614ef3565b604082019050919050565b6000614689600083614a2f565b915061469482614f42565b600082019050919050565b60006146ac600f83614a3a565b91506146b782614f45565b602082019050919050565b6146cb81614b9e565b82525050565b6146da81614ba8565b82525050565b60006146eb8261467c565b9150819050919050565b600060208201905061470a600083018461446e565b92915050565b6000604082019050614725600083018561446e565b61473260208301846146c2565b9392505050565b600060c08201905061474e600083018961446e565b61475b60208301886146c2565b61476860408301876144f9565b61477560608301866144f9565b614782608083018561446e565b61478f60a08301846146c2565b979650505050505050565b60006020820190506147af60008301846144db565b92915050565b60006020820190506147ca60008301846144ea565b92915050565b600060208201905081810360008301526147ea8184614508565b905092915050565b6000602082019050818103600083015261480b81614541565b9050919050565b6000602082019050818103600083015261482b81614564565b9050919050565b6000602082019050818103600083015261484b81614587565b9050919050565b6000602082019050818103600083015261486b816145aa565b9050919050565b6000602082019050818103600083015261488b816145cd565b9050919050565b600060208201905081810360008301526148ab816145f0565b9050919050565b600060208201905081810360008301526148cb81614613565b9050919050565b600060208201905081810360008301526148eb81614636565b9050919050565b6000602082019050818103600083015261490b81614659565b9050919050565b6000602082019050818103600083015261492b8161469f565b9050919050565b600060208201905061494760008301846146c2565b92915050565b600060a08201905061496260008301886146c2565b61496f60208301876144f9565b8181036040830152614981818661447d565b9050614990606083018561446e565b61499d60808301846146c2565b9695505050505050565b60006040820190506149bc60008301856146c2565b6149c960208301846146c2565b9392505050565b60006020820190506149e560008301846146d1565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000614a5682614b9e565b9150614a6183614b9e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a9657614a95614c79565b5b828201905092915050565b6000614aac82614b9e565b9150614ab783614b9e565b925082614ac757614ac6614ca8565b5b828204905092915050565b6000614add82614b9e565b9150614ae883614b9e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614b2157614b20614c79565b5b828202905092915050565b6000614b3782614b9e565b9150614b4283614b9e565b925082821015614b5557614b54614c79565b5b828203905092915050565b6000614b6b82614b7e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614bc082614bd9565b9050919050565b6000614bd282614b9e565b9050919050565b6000614be482614beb565b9050919050565b6000614bf682614b7e565b9050919050565b60005b83811015614c1b578082015181840152602081019050614c00565b83811115614c2a576000848401525b50505050565b6000614c3b82614b9e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614c6e57614c6d614c79565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f466565732063616e6e6f74206265206d6f7265207468616e2035302500000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b7f4973736e69706572656400000000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b50565b7f4e6f742057686974656c69737465640000000000000000000000000000000000600082015250565b614f7781614b60565b8114614f8257600080fd5b50565b614f8e81614b72565b8114614f9957600080fd5b50565b614fa581614b9e565b8114614fb057600080fd5b5056fea2646970667358221220e60fbe30b1da88f303b9dc53d6521dc38a27982369a97e2c73b18530e90e5b5164736f6c63430008070033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c8063715018a611610175578063a8aa1b31116100dc578063d51ed1c811610095578063df20fd491161006f578063df20fd4914610abb578063f2fde38b14610ae4578063f84ba65d14610b0d578063f887ea4014610b36576102b9565b8063d51ed1c814610a18578063dcd2e64514610a55578063dd62ed3e14610a7e576102b9565b8063a8aa1b31146108f4578063a9059cbb1461091f578063b2bdfa7b1461095c578063b46300ec14610987578063b7593ad91461099e578063cf55fea9146109db576102b9565b806386f6c3c11161012e57806386f6c3c114610808578063893d20e8146108315780638a8c523c1461085c5780638da5cb5b14610873578063900ba33b1461089e57806395d89b41146108c9576102b9565b8063715018a61461070c57806377b54bad1461072357806378109e54146107605780637d1db4a51461078b57806382bf293c146107b657806383f9d9fa146107df576102b9565b806323b872dd116102195780635aa6a95f116101d25780635aa6a95f146106005780635e04e4f814610629578063658d4b7f146106525780636ce46bc31461067b5780636ddd1713146106a457806370a08231146106cf576102b9565b806323b872dd146104de5780632b112e491461051b578063313ce567146105465780634f85a0c514610571578063570636dc1461059a578063571ac8b0146105c3576102b9565b806318160ddd1161026b57806318160ddd146103e457806318abb6351461040f5780631da1db5e146104385780631df4ccfc14610461578063201e79911461048c57806320221470146104b5576102b9565b80630445b667146102be57806306fdde03146102e957806308fd3d0514610314578063095ea7b31461033f5780630a8c98261461037c5780631161ae39146103a7576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b61565b6040516102e09190614932565b60405180910390f35b3480156102f557600080fd5b506102fe610b67565b60405161030b91906147d0565b60405180910390f35b34801561032057600080fd5b50610329610ba4565b604051610336919061479a565b60405180910390f35b34801561034b57600080fd5b5061036660048036038101906103619190614140565b610bb7565b604051610373919061479a565b60405180910390f35b34801561038857600080fd5b50610391610ca9565b60405161039e919061479a565b60405180910390f35b3480156103b357600080fd5b506103ce60048036038101906103c991906142d4565b610cbc565b6040516103db919061479a565b60405180910390f35b3480156103f057600080fd5b506103f9610cd1565b6040516104069190614932565b60405180910390f35b34801561041b57600080fd5b5061043660048036038101906104319190614032565b610cdb565b005b34801561044457600080fd5b5061045f600480360381019061045a919061427a565b610ebc565b005b34801561046d57600080fd5b50610476610fda565b6040516104839190614932565b60405180910390f35b34801561049857600080fd5b506104b360048036038101906104ae91906142d4565b610fe0565b005b3480156104c157600080fd5b506104dc60048036038101906104d791906141e0565b611087565b005b3480156104ea57600080fd5b50610505600480360381019061050091906140ad565b611139565b604051610512919061479a565b60405180910390f35b34801561052757600080fd5b50610530611339565b60405161053d9190614932565b60405180910390f35b34801561055257600080fd5b5061055b6113bb565b60405161056891906149d0565b60405180910390f35b34801561057d57600080fd5b5061059860048036038101906105939190614180565b6113c4565b005b3480156105a657600080fd5b506105c160048036038101906105bc919061427a565b6114fc565b005b3480156105cf57600080fd5b506105ea60048036038101906105e59190613fc5565b611594565b6040516105f7919061479a565b60405180910390f35b34801561060c57600080fd5b506106276004803603810190610622919061427a565b6115c7565b005b34801561063557600080fd5b50610650600480360381019061064b91906141e0565b611675565b005b34801561065e57600080fd5b5061067960048036038101906106749190614100565b611727565b005b34801561068757600080fd5b506106a2600480360381019061069d9190614314565b611817565b005b3480156106b057600080fd5b506106b96118c6565b6040516106c6919061479a565b60405180910390f35b3480156106db57600080fd5b506106f660048036038101906106f19190613fc5565b6118d9565b6040516107039190614932565b60405180910390f35b34801561071857600080fd5b50610721611922565b005b34801561072f57600080fd5b5061074a60048036038101906107459190614140565b611a75565b604051610757919061479a565b60405180910390f35b34801561076c57600080fd5b50610775611bf7565b6040516107829190614932565b60405180910390f35b34801561079757600080fd5b506107a0611bfd565b6040516107ad9190614932565b60405180910390f35b3480156107c257600080fd5b506107dd60048036038101906107d8919061427a565b611c03565b005b3480156107eb57600080fd5b506108066004803603810190610801919061427a565b611c9a565b005b34801561081457600080fd5b5061082f600480360381019061082a91906143ba565b611d57565b005b34801561083d57600080fd5b50610846611ebf565b60405161085391906146f5565b60405180910390f35b34801561086857600080fd5b50610871611ece565b005b34801561087f57600080fd5b50610888611f80565b60405161089591906146f5565b60405180910390f35b3480156108aa57600080fd5b506108b3611fa9565b6040516108c0919061479a565b60405180910390f35b3480156108d557600080fd5b506108de611fbc565b6040516108eb91906147d0565b60405180910390f35b34801561090057600080fd5b50610909611ff9565b60405161091691906146f5565b60405180910390f35b34801561092b57600080fd5b5061094660048036038101906109419190614140565b61201f565b604051610953919061479a565b60405180910390f35b34801561096857600080fd5b50610971612034565b60405161097e91906146f5565b60405180910390f35b34801561099357600080fd5b5061099c612058565b005b3480156109aa57600080fd5b506109c560048036038101906109c09190613fc5565b6120f7565b6040516109d2919061479a565b60405180910390f35b3480156109e757600080fd5b50610a0260048036038101906109fd9190613fc5565b612117565b604051610a0f919061479a565b60405180910390f35b348015610a2457600080fd5b50610a3f6004803603810190610a3a919061427a565b612137565b604051610a4c9190614932565b60405180910390f35b348015610a6157600080fd5b50610a7c6004803603810190610a779190614180565b6121a9565b005b348015610a8a57600080fd5b50610aa56004803603810190610aa09190613ff2565b6122e1565b604051610ab29190614932565b60405180910390f35b348015610ac757600080fd5b50610ae26004803603810190610add919061423a565b612368565b005b348015610af057600080fd5b50610b0b6004803603810190610b069190613fc5565b612422565b005b348015610b1957600080fd5b50610b346004803603810190610b2f9190614100565b6125e4565b005b348015610b4257600080fd5b50610b4b6126d4565b604051610b5891906147b5565b60405180910390f35b60245481565b60606040518060400160405280600a81526020017f47686f7374205377617000000000000000000000000000000000000000000000815250905090565b602360149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c979190614932565b60405180910390a36001905092915050565b600a60009054906101000a900460ff1681565b600082610cc883612137565b11905092915050565b6000600554905090565b610ce36127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d67906148d2565b60405180910390fd5b84601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b610ec46127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f48906148d2565b60405180910390fd5b6000479050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484610fa09190614ad2565b610faa9190614aa1565b9081150290604051600060405180830381858888f19350505050158015610fd5573d6000803e3d6000fd5b505050565b60155481565b610fe86127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c906148d2565b60405180910390fd5b81601f81905550806020819055505050565b61108f6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461111c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611113906148d2565b60405180910390fd5b80600a60006101000a81548160ff02191690831515021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611325576112a4826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c79092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61133084848461282b565b90509392505050565b60006113b6611369600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118d9565b6113a8611397600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118d9565b6005546130a690919063ffffffff16565b6130a690919063ffffffff16565b905090565b60006012905090565b6113cc6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611459576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611450906148d2565b60405180910390fd5b60005b838390508110156114f65781600d600086868581811061147f5761147e614cd7565b5b90506020020160208101906114949190613fc5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806114ef90614c30565b905061145c565b50505050565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661155257600080fd5b6103e86005546115629190614aa1565b600654101561157057600080fd5b6103e8816005546115819190614ad2565b61158b9190614aa1565b60068190555050565b60006115c0827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610bb7565b9050919050565b6115cf6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461165c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611653906148d2565b60405180910390fd5b633b9aca008161166c9190614ad2565b60268190555050565b61167d6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461170a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611701906148d2565b60405180910390fd5b80600c60006101000a81548160ff02191690831515021790555050565b61172f6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b3906148d2565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61181f6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a3906148d2565b60405180910390fd5b816017819055508260188190555080601981905550505050565b602360159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61192a6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ae906148d2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611acd57600080fd5b6000821415611b62578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b0f91906146f5565b60206040518083038186803b158015611b2757600080fd5b505afa158015611b3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5f91906142a7565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611b9d929190614710565b602060405180830381600087803b158015611bb757600080fd5b505af1158015611bcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bef919061420d565b905092915050565b60075481565b60065481565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611c5957600080fd5b6103e8600554611c699190614aa1565b6007541015611c7757600080fd5b606481600554611c879190614ad2565b611c919190614aa1565b60078190555050565b611ca26127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d26906148d2565b60405180910390fd5b6103e8600554611d3f9190614aa1565b6006541015611d4d57600080fd5b8060068190555050565b611d5f6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de3906148d2565b60405180910390fd5b8560108190555084601381905550836011819055508260128190555081601481905550611e5882611e4a85611e3c88611e2e8b8d6130f090919063ffffffff16565b6130f090919063ffffffff16565b6130f090919063ffffffff16565b6130f090919063ffffffff16565b601581905550806016819055506002601654611e749190614aa1565b60155410611eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eae90614812565b60405180910390fd5b505050505050565b6000611ec9611f80565b905090565b611ed66127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5a906148d2565b60405180910390fd5b6001602360146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c60009054906101000a900460ff1681565b60606040518060400160405280600581526020017f47484f5354000000000000000000000000000000000000000000000000000000815250905090565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061202c33848461282b565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166120ae57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156120f4573d6000803e3d6000fd5b50565b600d6020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b60006121a2612144611339565b6121946121856002612177602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118d9565b6126fa90919063ffffffff16565b856126fa90919063ffffffff16565b61277590919063ffffffff16565b9050919050565b6121b16127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461223e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612235906148d2565b60405180910390fd5b60005b838390508110156122db5781600b600086868581811061226457612263614cd7565b5b90506020020160208101906122799190613fc5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806122d490614c30565b9050612241565b50505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6123706127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f4906148d2565b60405180910390fd5b81602360156101000a81548160ff021916908315150217905550806024819055505050565b61242a6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ae906148d2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251e90614832565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6125ec6127bf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612679576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612670906148d2565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008083141561270d576000905061276f565b6000828461271b9190614ad2565b905082848261272a9190614aa1565b1461276a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612761906148b2565b60405180910390fd5b809150505b92915050565b60006127b783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061314e565b905092915050565b600033905090565b600083831115829061280f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280691906147d0565b60405180910390fd5b506000838561281e9190614b2c565b9050809150509392505050565b6000602560009054906101000a900460ff16156128545761284d8484846131b1565b905061309f565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128f85750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129ef57602360149054906101000a900460ff1661294c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294390614872565b60405180910390fd5b600c60009054906101000a900460ff16156129ee57600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166129ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e490614912565b60405180910390fd5b5b5b600a60009054906101000a900460ff1615612a9257600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8890614892565b60405180910390fd5b5b6026543a10158015612af25750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612b50576001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612bd657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612c305750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612c8a5750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612ce45750601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612d3e5750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612d945750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612df8576000612da4846118d9565b90506007548382612db59190614a4b565b1115612df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ded906148f2565b60405180910390fd5b505b612e028483613384565b612e0a613421565b15612e1857612e176134f8565b5b612ea1826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c79092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f875750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f9b57612f96858486613b2e565b612f9d565b825b9050612ff181600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130f090919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130919190614932565b60405180910390a360019150505b9392505050565b60006130e883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506127c7565b905092915050565b60008082846130ff9190614a4b565b905083811015613144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313b90614852565b60405180910390fd5b8091505092915050565b60008083118290613195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161318c91906147d0565b60405180910390fd5b50600083856131a49190614aa1565b9050809150509392505050565b600061323c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c79092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132d182600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130f090919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133719190614932565b60405180910390a3600190509392505050565b600654811115806133de5750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61341d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613414906147f2565b60405180910390fd5b5050565b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561348e5750602560009054906101000a900460ff16155b80156134a65750602360159054906101000a900460ff165b80156134f35750602454600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602560006101000a81548160ff0219169083151502179055506000613523601f54602054610cbc565b61352f57601054613532565b60005b905060006135726002613564601554613556866024546126fa90919063ffffffff16565b61277590919063ffffffff16565b61277590919063ffffffff16565b9050600061358b826024546130a690919063ffffffff16565b90506000600267ffffffffffffffff8111156135aa576135a9614d06565b5b6040519080825280602002602001820160405280156135d85781602001602082028036833780820191505090505b50905030816000815181106135f0576135ef614cd7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061366157613660614cd7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161370495949392919061494d565b600060405180830381600087803b15801561371e57600080fd5b505af1158015613732573d6000803e3d6000fd5b50505050600061374b82476130a690919063ffffffff16565b9050600061377761376660028961277590919063ffffffff16565b6015546130a690919063ffffffff16565b905060006137b360026137a5846137978c886126fa90919063ffffffff16565b61277590919063ffffffff16565b61277590919063ffffffff16565b905060006137de836137d0601154876126fa90919063ffffffff16565b61277590919063ffffffff16565b90506000613809846137fb601354886126fa90919063ffffffff16565b61277590919063ffffffff16565b9050600061383485613826601254896126fa90919063ffffffff16565b61277590919063ffffffff16565b90506000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168460405161387e906146e0565b60006040518083038185875af1925050503d80600081146138bb576040519150601f19603f3d011682016040523d82523d6000602084013e6138c0565b606091505b50509050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161390a906146e0565b60006040518083038185875af1925050503d8060008114613947576040519150601f19603f3d011682016040523d82523d6000602084013e61394c565b606091505b505080915050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051613998906146e0565b60006040518083038185875af1925050503d80600081146139d5576040519150601f19603f3d011682016040523d82523d6000602084013e6139da565b606091505b5050809150506000905060008b1115613b0557602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613a7696959493929190614739565b6060604051808303818588803b158015613a8f57600080fd5b505af1158015613aa3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613ac89190614367565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051613afc9291906149a7565b60405180910390a15b5050505050505050505050506000602560006101000a81548160ff021916908315150217905550565b6000806019549050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613b96576017549050613bf3565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415613bf25760185490505b5b6000613c3c6064601654613c079190614ad2565b613c2e84613c206015548a6126fa90919063ffffffff16565b6126fa90919063ffffffff16565b61277590919063ffffffff16565b90506000613c69601554613c5b601454856126fa90919063ffffffff16565b61277590919063ffffffff16565b90506000613c8082846130a690919063ffffffff16565b9050613cd481600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130f090919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613d8b8260086000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130f090919063ffffffff16565b60086000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613e4d9190614932565b60405180910390a36000821115613ee657601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613edd9190614932565b60405180910390a35b613ef983886130a690919063ffffffff16565b9450505050509392505050565b600081359050613f1581614f6e565b92915050565b60008083601f840112613f3157613f30614d3a565b5b8235905067ffffffffffffffff811115613f4e57613f4d614d35565b5b602083019150836020820283011115613f6a57613f69614d3f565b5b9250929050565b600081359050613f8081614f85565b92915050565b600081519050613f9581614f85565b92915050565b600081359050613faa81614f9c565b92915050565b600081519050613fbf81614f9c565b92915050565b600060208284031215613fdb57613fda614d49565b5b6000613fe984828501613f06565b91505092915050565b6000806040838503121561400957614008614d49565b5b600061401785828601613f06565b925050602061402885828601613f06565b9150509250929050565b600080600080600060a0868803121561404e5761404d614d49565b5b600061405c88828901613f06565b955050602061406d88828901613f06565b945050604061407e88828901613f06565b935050606061408f88828901613f06565b92505060806140a088828901613f06565b9150509295509295909350565b6000806000606084860312156140c6576140c5614d49565b5b60006140d486828701613f06565b93505060206140e586828701613f06565b92505060406140f686828701613f9b565b9150509250925092565b6000806040838503121561411757614116614d49565b5b600061412585828601613f06565b925050602061413685828601613f71565b9150509250929050565b6000806040838503121561415757614156614d49565b5b600061416585828601613f06565b925050602061417685828601613f9b565b9150509250929050565b60008060006040848603121561419957614198614d49565b5b600084013567ffffffffffffffff8111156141b7576141b6614d44565b5b6141c386828701613f1b565b935093505060206141d686828701613f71565b9150509250925092565b6000602082840312156141f6576141f5614d49565b5b600061420484828501613f71565b91505092915050565b60006020828403121561422357614222614d49565b5b600061423184828501613f86565b91505092915050565b6000806040838503121561425157614250614d49565b5b600061425f85828601613f71565b925050602061427085828601613f9b565b9150509250929050565b6000602082840312156142905761428f614d49565b5b600061429e84828501613f9b565b91505092915050565b6000602082840312156142bd576142bc614d49565b5b60006142cb84828501613fb0565b91505092915050565b600080604083850312156142eb576142ea614d49565b5b60006142f985828601613f9b565b925050602061430a85828601613f9b565b9150509250929050565b60008060006060848603121561432d5761432c614d49565b5b600061433b86828701613f9b565b935050602061434c86828701613f9b565b925050604061435d86828701613f9b565b9150509250925092565b6000806000606084860312156143805761437f614d49565b5b600061438e86828701613fb0565b935050602061439f86828701613fb0565b92505060406143b086828701613fb0565b9150509250925092565b60008060008060008060c087890312156143d7576143d6614d49565b5b60006143e589828a01613f9b565b96505060206143f689828a01613f9b565b955050604061440789828a01613f9b565b945050606061441889828a01613f9b565b935050608061442989828a01613f9b565b92505060a061443a89828a01613f9b565b9150509295509295509295565b6000614453838361445f565b60208301905092915050565b61446881614b60565b82525050565b61447781614b60565b82525050565b6000614488826149fb565b6144928185614a1e565b935061449d836149eb565b8060005b838110156144ce5781516144b58882614447565b97506144c083614a11565b9250506001810190506144a1565b5085935050505092915050565b6144e481614b72565b82525050565b6144f381614bb5565b82525050565b61450281614bc7565b82525050565b600061451382614a06565b61451d8185614a3a565b935061452d818560208601614bfd565b61453681614d4e565b840191505092915050565b600061454e601183614a3a565b915061455982614d5f565b602082019050919050565b6000614571601c83614a3a565b915061457c82614d88565b602082019050919050565b6000614594602683614a3a565b915061459f82614db1565b604082019050919050565b60006145b7601b83614a3a565b91506145c282614e00565b602082019050919050565b60006145da601483614a3a565b91506145e582614e29565b602082019050919050565b60006145fd600a83614a3a565b915061460882614e52565b602082019050919050565b6000614620602183614a3a565b915061462b82614e7b565b604082019050919050565b6000614643602083614a3a565b915061464e82614eca565b602082019050919050565b6000614666603e83614a3a565b915061467182614ef3565b604082019050919050565b6000614689600083614a2f565b915061469482614f42565b600082019050919050565b60006146ac600f83614a3a565b91506146b782614f45565b602082019050919050565b6146cb81614b9e565b82525050565b6146da81614ba8565b82525050565b60006146eb8261467c565b9150819050919050565b600060208201905061470a600083018461446e565b92915050565b6000604082019050614725600083018561446e565b61473260208301846146c2565b9392505050565b600060c08201905061474e600083018961446e565b61475b60208301886146c2565b61476860408301876144f9565b61477560608301866144f9565b614782608083018561446e565b61478f60a08301846146c2565b979650505050505050565b60006020820190506147af60008301846144db565b92915050565b60006020820190506147ca60008301846144ea565b92915050565b600060208201905081810360008301526147ea8184614508565b905092915050565b6000602082019050818103600083015261480b81614541565b9050919050565b6000602082019050818103600083015261482b81614564565b9050919050565b6000602082019050818103600083015261484b81614587565b9050919050565b6000602082019050818103600083015261486b816145aa565b9050919050565b6000602082019050818103600083015261488b816145cd565b9050919050565b600060208201905081810360008301526148ab816145f0565b9050919050565b600060208201905081810360008301526148cb81614613565b9050919050565b600060208201905081810360008301526148eb81614636565b9050919050565b6000602082019050818103600083015261490b81614659565b9050919050565b6000602082019050818103600083015261492b8161469f565b9050919050565b600060208201905061494760008301846146c2565b92915050565b600060a08201905061496260008301886146c2565b61496f60208301876144f9565b8181036040830152614981818661447d565b9050614990606083018561446e565b61499d60808301846146c2565b9695505050505050565b60006040820190506149bc60008301856146c2565b6149c960208301846146c2565b9392505050565b60006020820190506149e560008301846146d1565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000614a5682614b9e565b9150614a6183614b9e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a9657614a95614c79565b5b828201905092915050565b6000614aac82614b9e565b9150614ab783614b9e565b925082614ac757614ac6614ca8565b5b828204905092915050565b6000614add82614b9e565b9150614ae883614b9e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614b2157614b20614c79565b5b828202905092915050565b6000614b3782614b9e565b9150614b4283614b9e565b925082821015614b5557614b54614c79565b5b828203905092915050565b6000614b6b82614b7e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614bc082614bd9565b9050919050565b6000614bd282614b9e565b9050919050565b6000614be482614beb565b9050919050565b6000614bf682614b7e565b9050919050565b60005b83811015614c1b578082015181840152602081019050614c00565b83811115614c2a576000848401525b50505050565b6000614c3b82614b9e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614c6e57614c6d614c79565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f466565732063616e6e6f74206265206d6f7265207468616e2035302500000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b7f4973736e69706572656400000000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b50565b7f4e6f742057686974656c69737465640000000000000000000000000000000000600082015250565b614f7781614b60565b8114614f8257600080fd5b50565b614f8e81614b72565b8114614f9957600080fd5b50565b614fa581614b9e565b8114614fb057600080fd5b5056fea2646970667358221220e60fbe30b1da88f303b9dc53d6521dc38a27982369a97e2c73b18530e90e5b5164736f6c63430008070033

Deployed Bytecode Sourcemap

4980:14883:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6847:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8556:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6766:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8978:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5643:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19639:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8286:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18512:437;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14025:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6125:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19120:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17051:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9496:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19314:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8380:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17471:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10156:253;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9202:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15056:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17156:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17679:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14721:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6810:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8726:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3037:148;;;;;;;;;;;;;:::i;:::-;;14412:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5458:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5393:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9878:270;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10423:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17941:563;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8642:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14962:79;;;;;;;;;;;;;:::i;:::-;;2823;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5735:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8466:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6734:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9332:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2443:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14266:138;;;;;;;;;;;;;:::i;:::-;;5770:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5681:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19464:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17255:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8837:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18957:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3193:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17806:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6664:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6847:54;;;;:::o;8556:80::-;8604:13;8628:5;;;;;;;;;;;;;;;;;8621:12;;8556:80;:::o;6766:31::-;;;;;;;;;;;;;:::o;8978:216::-;9053:4;9105:6;9070:11;:23;9082:10;9070:23;;;;;;;;;;;;;;;:32;9094:7;9070:32;;;;;;;;;;;;;;;:41;;;;9148:7;9127:37;;9136:10;9127:37;;;9157:6;9127:37;;;;;;:::i;:::-;;;;;;;;9182:4;9175:11;;8978:216;;;;:::o;5643:31::-;;;;;;;;;;;;;:::o;19639:150::-;19719:4;19775:6;19743:29;19763:8;19743:19;:29::i;:::-;:38;19736:45;;19639:150;;;;:::o;8286:88::-;8341:7;8359:12;;8352:19;;8286:88;:::o;18512:437::-;2960:12;:10;:12::i;:::-;2950:22;;:6;;;;;;;;;;:22;;;2942:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18731:22:::1;18707:21;;:46;;;;;;;;;;;;;;;;;;18787:21;18764:20;;:44;;;;;;;;;;;;;;;;;;18836:15;18819:14;;:32;;;;;;;;;;;;;;;;;;18880:16;18862:15;;:34;;;;;;;;;;;;;;;;;;18925:16;18907:15;;:34;;;;;;;;;;;;;;;;;;18512:437:::0;;;;;:::o;14025:233::-;2960:12;:10;:12::i;:::-;2950:22;;:6;;;;;;;;;;:22;;;2942:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14124:17:::1;14144:21;14124:41;;14184:20;;;;;;;;;;;14176:38;;:74;14246:3;14227:16;14215:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;14176:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14097:161;14025:233:::0;:::o;6125:89::-;;;;:::o;19120:182::-;2960:12;:10;:12::i;:::-;2950:22;;:6;;;;;;;;;;:22;;;2942:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19235:7:::1;19217:15;:25;;;;19282:12;19253:26;:41;;;;19120:182:::0;;:::o;17051:97::-;2960:12;:10;:12::i;:::-;2950:22;;:6;;;;;;;;;;:22;;;2942:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17133:7:::1;17118:12;;:22;;;;;;;;;;;;;;;;;;17051:97:::0;:::o;9496:370::-;9596:4;9651:17;9616:11;:19;9628:6;9616:19;;;;;;;;;;;;;;;:31;9636:10;9616:31;;;;;;;;;;;;;;;;:52;9613:186;;9718:69;9754:6;9718:69;;;;;;;;;;;;;;;;;:11;:19;9730:6;9718:19;;;;;;;;;;;;;;;:31;9738:10;9718:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9684:11;:19;9696:6;9684:19;;;;;;;;;;;;;;;:31;9704:10;9684:31;;;;;;;;;;;;;;;:103;;;;9613:186;9818:40;9832:6;9840:9;9851:6;9818:13;:40::i;:::-;9811:47;;9496:370;;;;;:::o;19314:142::-;19367:7;19394:54;19432:15;19442:4;;;;;;;;;;;19432:9;:15::i;:::-;19394:33;19411:15;19421:4;;;;;;;;;;;19411:9;:15::i;:::-;19394:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;19387:61;;19314:142;:::o;8380:80::-;8432:5;5324:2;8441:16;;8380:80;:::o;17471:200::-;2960:12;:10;:12::i;:::-;2950:22;;:6;;;;;;;;;;:22;;;2942:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17568:9:::1;17563:101;17583:9;;:16;;17579:1;:20;17563:101;;;17646:6;17621:8;:22;17630:9;;17640:1;17630:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17621:22;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;17601:3;;;;:::i;:::-;;;17563:101;;;;17471:200:::0;;;:::o;10156:253::-;10229:8;:20;10238:10;10229:20;;;;;;;;;;;;;;;;;;;;;;;;;10221:29;;;;;;10300:4;10285:12;;:19;;;;:::i;:::-;10269:12;;:35;;10261:44;;;;;;10397:4;10380:12;10365;;:27;;;;:::i;:::-;10364:37;;;;:::i;:::-;10349:12;:52;;;;10156:253;:::o;9202:122::-;9257:4;9281:35;9289:7;9298:17;9281:7;:35::i;:::-;9274:42;;9202:122;;;:::o;15056:112::-;2960:12;:10;:12::i;:::-;2950:22;;:6;;;;;;;;;;:22;;;2942:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15147:6:::1;15137:7;:16;;;;:::i;:::-;15128:6;:25;;;;15056:112:::0;:::o;17156:91::-;2960:12;:10;:12::i;:::-;2950:22;;:6;;;;;;;;;;:22;;;2942:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17230:7:::1;17219:8;;:18;;;;;;;;;;;;;;;;;;17156:91:::0;:::o;17679:119::-;2960:12;:10;:12::i;:::-;2950:22;;:6;;;;;;;;;;:22;;;2942:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17784:6:::1;17762:11;:19;17774:6;17762:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17679:119:::0;;:::o;14721:210::-;2960:12;:10;:12::i;:::-;2950:22;;:6;;;;;;;;;;:22;;;2942:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14837:5:::1;14820:14;:22;;;;14869:4;14853:13;:20;;;;14905:6;14884:18;:27;;;;14721:210:::0;;;:::o;6810:30::-;;;;;;;;;;;;;:::o;8726:105::-;8792:7;8810:9;:18;8820:7;8810:18;;;;;;;;;;;;;;;;8803:25;;8726:105;;;:::o;3037:148::-;2960:12;:10;:12::i;:::-;2950:22;;:6;;;;;;;;;;:22;;;2942:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3144:1:::1;3107:40;;3128:6;::::0;::::1;;;;;;;;3107:40;;;;;;;;;;;;3175:1;3158:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3037:148::o:0;14412:301::-;14491:4;14516:8;:20;14525:10;14516:20;;;;;;;;;;;;;;;;;;;;;;;;;14508:29;;;;;;14558:1;14548:6;:11;14545:95;;;14590:12;14584:29;;;14622:4;14584:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14575:53;;14545:95;14663:12;14657:28;;;14686:10;14698:6;14657:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14650:55;;14412:301;;;;:::o;5458:61::-;;;;:::o;5393:58::-;;;;:::o;9878:270::-;9957:8;:20;9966:10;9957:20;;;;;;;;;;;;;;;;;;;;;;;;;9949:29;;;;;;10031:4;10016:12;;:19;;;;:::i;:::-;9997:15;;:38;;9989:47;;;;;;10119:3;10100:14;10085:12;;:29;;;;:::i;:::-;10084:38;;;;:::i;:::-;10066:15;:56;;;;9878:270;:::o;10423:158::-;2960:12;:10;:12::i;:::-;2950:22;;:6;;;;;;;;;;:22;;;2942:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10536:4:::1;10521:12;;:19;;;;:::i;:::-;10505:12;;:35;;10497:44;;;::::0;::::1;;10567:6;10552:12;:21;;;;10423:158:::0;:::o;17941:563::-;2960:12;:10;:12::i;:::-;2950:22;;:6;;;;;;;;;;:22;;;2942:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18127:13:::1;18112:12;:28;;;;18161:8;18151:7;:18;;;;18195:13;18180:12;:28;;;;18228:7;18219:6;:16;;;;18256:8;18246:7;:18;;;;18286:73;18350:8;18286:59;18337:7;18286:46;18318:13;18286:27;18304:8;18286:13;:17;;:27;;;;:::i;:::-;:31;;:46;;;;:::i;:::-;:50;;:59;;;;:::i;:::-;:63;;:73;;;;:::i;:::-;18275:8;:84;;;;18387:15;18370:14;:32;;;;18447:1;18432:14;;:16;;;;:::i;:::-;18421:8;;:27;18413:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17941:563:::0;;;;;;:::o;8642:78::-;8694:7;8711;:5;:7::i;:::-;8704:14;;8642:78;:::o;14962:79::-;2960:12;:10;:12::i;:::-;2950:22;;:6;;;;;;;;;;:22;;;2942:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15029:4:::1;15015:11;;:18;;;;;;;;;;;;;;;;;;14962:79::o:0;2823:::-;2861:7;2888:6;;;;;;;;;;;2881:13;;2823:79;:::o;5735:28::-;;;;;;;;;;;;;:::o;8466:84::-;8516:13;8540:7;;;;;;;;;;;;;;;;;8533:14;;8466:84;:::o;6734:19::-;;;;;;;;;;;;;:::o;9332:156::-;9412:4;9436:44;9450:10;9462:9;9473:6;9436:13;:44::i;:::-;9429:51;;9332:156;;;;:::o;2443:21::-;;;;;;;;;;;;:::o;14266:138::-;14311:8;:20;14320:10;14311:20;;;;;;;;;;;;;;;;;;;;;;;;;14303:29;;;;;;14351:10;14343:28;;:51;14372:21;14343:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14266:138::o;5770:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;5681:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;19464:167::-;19532:7;19559:64;19600:22;:20;:22::i;:::-;19559:36;19572:22;19592:1;19572:15;19582:4;;;;;;;;;;;19572:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;19559:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;19552:71;;19464:167;;;:::o;17255:208::-;2960:12;:10;:12::i;:::-;2950:22;;:6;;;;;;;;;;:22;;;2942:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17356:9:::1;17351:105;17371:9;;:16;;17367:1;:20;17351:105;;;17438:6;17409:12;:26;17422:9;;17432:1;17422:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17409:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;17389:3;;;;:::i;:::-;;;17351:105;;;;17255:208:::0;;;:::o;8837:133::-;8921:7;8939:11;:19;8951:6;8939:19;;;;;;;;;;;;;;;:28;8959:7;8939:28;;;;;;;;;;;;;;;;8932:35;;8837:133;;;;:::o;18957:155::-;2960:12;:10;:12::i;:::-;2950:22;;:6;;;;;;;;;;:22;;;2942:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19062:8:::1;19048:11;;:22;;;;;;;;;;;;;;;;;;19097:7;19081:13;:23;;;;18957:155:::0;;:::o;3193:244::-;2960:12;:10;:12::i;:::-;2950:22;;:6;;;;;;;;;;:22;;;2942:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3302:1:::1;3282:22;;:8;:22;;;;3274:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3392:8;3363:38;;3384:6;::::0;::::1;;;;;;;;3363:38;;;;;;;;;;;;3421:8;3412:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3193:244:::0;:::o;17806:127::-;2960:12;:10;:12::i;:::-;2950:22;;:6;;;;;;;;;;:22;;;2942:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17919:6:::1;17893:15;:23;17909:6;17893:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17806:127:::0;;:::o;6664:24::-;;;;;;;;;;;;;:::o;622:250::-;680:7;709:1;704;:6;700:47;;;734:1;727:8;;;;700:47;759:9;775:1;771;:5;;;;:::i;:::-;759:17;;804:1;799;795;:5;;;;:::i;:::-;:10;787:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;863:1;856:8;;;622:250;;;;;:::o;878:132::-;936:7;963:39;967:1;970;963:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;956:46;;878:132;;;;:::o;2164:115::-;2217:15;2260:10;2245:26;;2164:115;:::o;424:192::-;510:7;543:1;538;:6;;546:12;530:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;570:9;586:1;582;:5;;;;:::i;:::-;570:17;;607:1;600:8;;;424:192;;;;;:::o;10589:1635::-;10681:4;10701:6;;;;;;;;;;;10698:63;;;10717:41;10732:6;10740:9;10751:6;10717:14;:41::i;:::-;10710:48;;;;10698:63;10777:14;:22;10792:6;10777:22;;;;;;;;;;;;;;;;;;;;;;;;;10776:23;:53;;;;;10804:14;:25;10819:9;10804:25;;;;;;;;;;;;;;;;;;;;;;;;;10803:26;10776:53;10773:242;;;10853:11;;;;;;;;;;;10845:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10904:8;;;;;;;;;;;10901:103;;;10940:8;:19;10949:9;10940:19;;;;;;;;;;;;;;;;;;;;;;;;;10932:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;10901:103;10773:242;11052:12;;;;;;;;;;;11049:90;;;11089:12;:20;11102:6;11089:20;;;;;;;;;;;;;;;;;;;;;;;;;11088:21;11080:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;11049:90;11170:6;;11155:11;:21;;:42;;;;;11193:4;;;;;;;;;;;11180:17;;:9;:17;;;;11155:42;11151:105;;;11240:4;11214:12;:23;11227:9;11214:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;11151:105;11273:14;:22;11288:6;11273:22;;;;;;;;;;;;;;;;;;;;;;;;;11272:23;:53;;;;;11320:4;11299:26;;:9;:26;;;;11272:53;:84;;;;;11351:4;;;;;;;;;;;11330:26;;:9;:26;;;;11272:84;:105;;;;;11373:4;;;;;;;;;;;11360:17;;:9;:17;;;;11272:105;:137;;;;;11394:15;;;;;;;;;;;11381:28;;:9;:28;;;;11272:137;:174;;;;;11426:20;;;;;;;;;;;11413:33;;:9;:33;;;;11272:174;:205;;;;;11451:15;:26;11467:9;11451:26;;;;;;;;;;;;;;;;;;;;;;;;;11450:27;11272:205;11268:397;;;11493:18;11514:20;11524:9;11514;:20::i;:::-;11493:41;;11582:15;;11571:6;11558:10;:19;;;;:::i;:::-;11557:40;;11549:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;11478:187;11268:397;11718:28;11731:6;11739;11718:12;:28::i;:::-;11763:16;:14;:16::i;:::-;11760:35;;;11782:10;:8;:10::i;:::-;11760:35;11875:53;11897:6;11875:53;;;;;;;;;;;;;;;;;:9;:17;11885:6;11875:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11855:9;:17;11865:6;11855:17;;;;;;;;;;;;;;;:73;;;;11941:22;11967:11;:19;11979:6;11967:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;11990:11;:22;12002:9;11990:22;;;;;;;;;;;;;;;;;;;;;;;;;11967:45;11966:93;;12025:34;12033:6;12041;12049:9;12025:7;:34::i;:::-;11966:93;;;12016:6;11966:93;11941:118;;12093:40;12118:14;12093:9;:20;12103:9;12093:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;12070:9;:20;12080:9;12070:20;;;;;;;;;;;;;;;:63;;;;12168:9;12151:43;;12160:6;12151:43;;;12179:14;12151:43;;;;;;:::i;:::-;;;;;;;;12212:4;12205:11;;;10589:1635;;;;;;:::o;282:136::-;340:7;367:43;371:1;374;367:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;360:50;;282:136;;;;:::o;95:181::-;153:7;173:9;189:1;185;:5;;;;:::i;:::-;173:17;;214:1;209;:6;;201:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;267:1;260:8;;;95:181;;;;:::o;1016:189::-;1102:7;1134:1;1130;:5;1137:12;1122:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1161:9;1177:1;1173;:5;;;;:::i;:::-;1161:17;;1196:1;1189:8;;;1016:189;;;;;:::o;12236:330::-;12329:4;12366:53;12388:6;12366:53;;;;;;;;;;;;;;;;;:9;:17;12376:6;12366:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12346:9;:17;12356:6;12346:17;;;;;;;;;;;;;;;:73;;;;12453:32;12478:6;12453:9;:20;12463:9;12453:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12430:9;:20;12440:9;12430:20;;;;;;;;;;;;;;;:55;;;;12518:9;12501:35;;12510:6;12501:35;;;12529:6;12501:35;;;;;;:::i;:::-;;;;;;;;12554:4;12547:11;;12236:330;;;;;:::o;12574:166::-;12671:12;;12661:6;:22;;:49;;;;12687:15;:23;12703:6;12687:23;;;;;;;;;;;;;;;;;;;;;;;;;12661:49;12653:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12574:166;;:::o;13820:197::-;13869:4;13907;;;;;;;;;;;13893:18;;:10;:18;;;;:38;;;;;13925:6;;;;;;;;;;;13924:7;13893:38;:62;;;;;13944:11;;;;;;;;;;;13893:62;:116;;;;;13996:13;;13968:9;:24;13986:4;13968:24;;;;;;;;;;;;;;;;:41;;13893:116;13886:123;;13820:197;:::o;15182:1861::-;6958:4;6949:6;;:13;;;;;;;;;;;;;;;;;;15231:27:::1;15261:60;15277:15;;15294:26;;15261:15;:60::i;:::-;:79;;15328:12;;15261:79;;;15324:1;15261:79;15231:109;;15351:23;15377:59;15434:1;15377:52;15420:8;;15377:38;15395:19;15377:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;15351:85;;15447:20;15470:34;15488:15;15470:13;;:17;;:34;;;;:::i;:::-;15447:57;;15517:21;15555:1;15541:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15517:40;;15586:4;15568;15573:1;15568:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15612:4;;;;;;;;;;;15602;15607:1;15602:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;15629:21;15653;15629:45;;15687:6;;;;;;;;;;;:57;;;15759:12;15786:1;15802:4;15829;15849:15;15687:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15888:17;15908:40;15934:13;15908:21;:25;;:40;;;;:::i;:::-;15888:60;;15961:19;15983:40;15996:26;16020:1;15996:19;:23;;:26;;;;:::i;:::-;15983:8;;:12;;:40;;;;:::i;:::-;15961:62;;16044:26;16073:58;16129:1;16073:51;16112:11;16073:34;16087:19;16073:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;16044:87;;16142:26;16171:44;16203:11;16171:27;16185:12;;16171:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;16142:73;;16226:21;16250:39;16277:11;16250:22;16264:7;;16250:9;:13;;:22;;;;:::i;:::-;:26;;:39;;;;:::i;:::-;16226:63;;16300:20;16323:38;16349:11;16323:21;16337:6;;16323:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;16300:61;;16375:15;16403:20;;;;;;;;;;;16395:34;;16437:18;16395:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16374:86;;;16495:14;;;;;;;;;;;16487:28;;16523:12;16487:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16471:69;;;;;16575:15;;;;;;;;;;;16567:29;;16604:13;16567:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16551:71;;;;;16656:5;16643:18;;16695:1;16677:15;:19;16674:362;;;16712:6;;;;;;;;;;;:22;;;16742:18;16788:4;16812:15;16846:1;16866::::0;16886:21:::1;;;;;;;;;;;16926:15;16712:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16976:48;16988:18;17008:15;16976:48;;;;;;;:::i;:::-;;;;;;;;16674:362;15220:1823;;;;;;;;;;;;6976:5:::0;6967:6;;:14;;;;;;;;;;;;;;;;;;15182:1861::o;12870:942::-;12956:7;12986:18;13007;;12986:39;;13054:4;;;;;;;;;;;13041:17;;:9;:17;;;13038:154;;;13088:14;;13075:27;;13038:154;;;13133:4;;;;;;;;;;;13123:14;;:6;:14;;;13120:72;;;13167:13;;13154:26;;13120:72;13038:154;13204:17;13224:62;13282:3;13265:14;;:20;;;;:::i;:::-;13224:36;13249:10;13224:20;13235:8;;13224:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;13204:82;;13297:18;13318:36;13345:8;;13318:22;13332:7;;13318:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;13297:57;;13365:22;13390:25;13404:10;13390:9;:13;;:25;;;;:::i;:::-;13365:50;;13455:44;13484:14;13455:9;:24;13473:4;13455:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;13428:9;:24;13446:4;13428:24;;;;;;;;;;;;;;;:71;;;;13539:42;13570:10;13539:9;:26;13549:15;;;;;;;;;;;13539:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;13510:9;:26;13520:15;;;;;;;;;;;13510:26;;;;;;;;;;;;;;;:71;;;;13622:4;13597:47;;13606:6;13597:47;;;13629:14;13597:47;;;;;;:::i;:::-;;;;;;;;13681:1;13668:10;:14;13665:99;;;13720:15;;;;;;;;;;;13703:45;;13712:6;13703:45;;;13737:10;13703:45;;;;;;:::i;:::-;;;;;;;;13665:99;13783:21;13794:9;13783:6;:10;;:21;;;;:::i;:::-;13776:28;;;;;;12870:942;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;169:568::-;242:8;252:6;302:3;295:4;287:6;283:17;279:27;269:122;;310:79;;:::i;:::-;269:122;423:6;410:20;400:30;;453:18;445:6;442:30;439:117;;;475:79;;:::i;:::-;439:117;589:4;581:6;577:17;565:29;;643:3;635:4;627:6;623:17;613:8;609:32;606:41;603:128;;;650:79;;:::i;:::-;603:128;169:568;;;;;:::o;743:133::-;786:5;824:6;811:20;802:29;;840:30;864:5;840:30;:::i;:::-;743:133;;;;:::o;882:137::-;936:5;967:6;961:13;952:22;;983:30;1007:5;983:30;:::i;:::-;882:137;;;;:::o;1025:139::-;1071:5;1109:6;1096:20;1087:29;;1125:33;1152:5;1125:33;:::i;:::-;1025:139;;;;:::o;1170:143::-;1227:5;1258:6;1252:13;1243:22;;1274:33;1301:5;1274:33;:::i;:::-;1170:143;;;;:::o;1319:329::-;1378:6;1427:2;1415:9;1406:7;1402:23;1398:32;1395:119;;;1433:79;;:::i;:::-;1395:119;1553:1;1578:53;1623:7;1614:6;1603:9;1599:22;1578:53;:::i;:::-;1568:63;;1524:117;1319:329;;;;:::o;1654:474::-;1722:6;1730;1779:2;1767:9;1758:7;1754:23;1750:32;1747:119;;;1785:79;;:::i;:::-;1747:119;1905:1;1930:53;1975:7;1966:6;1955:9;1951:22;1930:53;:::i;:::-;1920:63;;1876:117;2032:2;2058:53;2103:7;2094:6;2083:9;2079:22;2058:53;:::i;:::-;2048:63;;2003:118;1654:474;;;;;:::o;2134:911::-;2229:6;2237;2245;2253;2261;2310:3;2298:9;2289:7;2285:23;2281:33;2278:120;;;2317:79;;:::i;:::-;2278:120;2437:1;2462:53;2507:7;2498:6;2487:9;2483:22;2462:53;:::i;:::-;2452:63;;2408:117;2564:2;2590:53;2635:7;2626:6;2615:9;2611:22;2590:53;:::i;:::-;2580:63;;2535:118;2692:2;2718:53;2763:7;2754:6;2743:9;2739:22;2718:53;:::i;:::-;2708:63;;2663:118;2820:2;2846:53;2891:7;2882:6;2871:9;2867:22;2846:53;:::i;:::-;2836:63;;2791:118;2948:3;2975:53;3020:7;3011:6;3000:9;2996:22;2975:53;:::i;:::-;2965:63;;2919:119;2134:911;;;;;;;;:::o;3051:619::-;3128:6;3136;3144;3193:2;3181:9;3172:7;3168:23;3164:32;3161:119;;;3199:79;;:::i;:::-;3161:119;3319:1;3344:53;3389:7;3380:6;3369:9;3365:22;3344:53;:::i;:::-;3334:63;;3290:117;3446:2;3472:53;3517:7;3508:6;3497:9;3493:22;3472:53;:::i;:::-;3462:63;;3417:118;3574:2;3600:53;3645:7;3636:6;3625:9;3621:22;3600:53;:::i;:::-;3590:63;;3545:118;3051:619;;;;;:::o;3676:468::-;3741:6;3749;3798:2;3786:9;3777:7;3773:23;3769:32;3766:119;;;3804:79;;:::i;:::-;3766:119;3924:1;3949:53;3994:7;3985:6;3974:9;3970:22;3949:53;:::i;:::-;3939:63;;3895:117;4051:2;4077:50;4119:7;4110:6;4099:9;4095:22;4077:50;:::i;:::-;4067:60;;4022:115;3676:468;;;;;:::o;4150:474::-;4218:6;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4150:474;;;;;:::o;4630:698::-;4722:6;4730;4738;4787:2;4775:9;4766:7;4762:23;4758:32;4755:119;;;4793:79;;:::i;:::-;4755:119;4941:1;4930:9;4926:17;4913:31;4971:18;4963:6;4960:30;4957:117;;;4993:79;;:::i;:::-;4957:117;5106:80;5178:7;5169:6;5158:9;5154:22;5106:80;:::i;:::-;5088:98;;;;4884:312;5235:2;5261:50;5303:7;5294:6;5283:9;5279:22;5261:50;:::i;:::-;5251:60;;5206:115;4630:698;;;;;:::o;5334:323::-;5390:6;5439:2;5427:9;5418:7;5414:23;5410:32;5407:119;;;5445:79;;:::i;:::-;5407:119;5565:1;5590:50;5632:7;5623:6;5612:9;5608:22;5590:50;:::i;:::-;5580:60;;5536:114;5334:323;;;;:::o;5663:345::-;5730:6;5779:2;5767:9;5758:7;5754:23;5750:32;5747:119;;;5785:79;;:::i;:::-;5747:119;5905:1;5930:61;5983:7;5974:6;5963:9;5959:22;5930:61;:::i;:::-;5920:71;;5876:125;5663:345;;;;:::o;6014:468::-;6079:6;6087;6136:2;6124:9;6115:7;6111:23;6107:32;6104:119;;;6142:79;;:::i;:::-;6104:119;6262:1;6287:50;6329:7;6320:6;6309:9;6305:22;6287:50;:::i;:::-;6277:60;;6233:114;6386:2;6412:53;6457:7;6448:6;6437:9;6433:22;6412:53;:::i;:::-;6402:63;;6357:118;6014:468;;;;;:::o;6488:329::-;6547:6;6596:2;6584:9;6575:7;6571:23;6567:32;6564:119;;;6602:79;;:::i;:::-;6564:119;6722:1;6747:53;6792:7;6783:6;6772:9;6768:22;6747:53;:::i;:::-;6737:63;;6693:117;6488:329;;;;:::o;6823:351::-;6893:6;6942:2;6930:9;6921:7;6917:23;6913:32;6910:119;;;6948:79;;:::i;:::-;6910:119;7068:1;7093:64;7149:7;7140:6;7129:9;7125:22;7093:64;:::i;:::-;7083:74;;7039:128;6823:351;;;;:::o;7180:474::-;7248:6;7256;7305:2;7293:9;7284:7;7280:23;7276:32;7273:119;;;7311:79;;:::i;:::-;7273:119;7431:1;7456:53;7501:7;7492:6;7481:9;7477:22;7456:53;:::i;:::-;7446:63;;7402:117;7558:2;7584:53;7629:7;7620:6;7609:9;7605:22;7584:53;:::i;:::-;7574:63;;7529:118;7180:474;;;;;:::o;7660:619::-;7737:6;7745;7753;7802:2;7790:9;7781:7;7777:23;7773:32;7770:119;;;7808:79;;:::i;:::-;7770:119;7928:1;7953:53;7998:7;7989:6;7978:9;7974:22;7953:53;:::i;:::-;7943:63;;7899:117;8055:2;8081:53;8126:7;8117:6;8106:9;8102:22;8081:53;:::i;:::-;8071:63;;8026:118;8183:2;8209:53;8254:7;8245:6;8234:9;8230:22;8209:53;:::i;:::-;8199:63;;8154:118;7660:619;;;;;:::o;8285:663::-;8373:6;8381;8389;8438:2;8426:9;8417:7;8413:23;8409:32;8406:119;;;8444:79;;:::i;:::-;8406:119;8564:1;8589:64;8645:7;8636:6;8625:9;8621:22;8589:64;:::i;:::-;8579:74;;8535:128;8702:2;8728:64;8784:7;8775:6;8764:9;8760:22;8728:64;:::i;:::-;8718:74;;8673:129;8841:2;8867:64;8923:7;8914:6;8903:9;8899:22;8867:64;:::i;:::-;8857:74;;8812:129;8285:663;;;;;:::o;8954:1057::-;9058:6;9066;9074;9082;9090;9098;9147:3;9135:9;9126:7;9122:23;9118:33;9115:120;;;9154:79;;:::i;:::-;9115:120;9274:1;9299:53;9344:7;9335:6;9324:9;9320:22;9299:53;:::i;:::-;9289:63;;9245:117;9401:2;9427:53;9472:7;9463:6;9452:9;9448:22;9427:53;:::i;:::-;9417:63;;9372:118;9529:2;9555:53;9600:7;9591:6;9580:9;9576:22;9555:53;:::i;:::-;9545:63;;9500:118;9657:2;9683:53;9728:7;9719:6;9708:9;9704:22;9683:53;:::i;:::-;9673:63;;9628:118;9785:3;9812:53;9857:7;9848:6;9837:9;9833:22;9812:53;:::i;:::-;9802:63;;9756:119;9914:3;9941:53;9986:7;9977:6;9966:9;9962:22;9941:53;:::i;:::-;9931:63;;9885:119;8954:1057;;;;;;;;:::o;10017:179::-;10086:10;10107:46;10149:3;10141:6;10107:46;:::i;:::-;10185:4;10180:3;10176:14;10162:28;;10017:179;;;;:::o;10202:108::-;10279:24;10297:5;10279:24;:::i;:::-;10274:3;10267:37;10202:108;;:::o;10316:118::-;10403:24;10421:5;10403:24;:::i;:::-;10398:3;10391:37;10316:118;;:::o;10470:732::-;10589:3;10618:54;10666:5;10618:54;:::i;:::-;10688:86;10767:6;10762:3;10688:86;:::i;:::-;10681:93;;10798:56;10848:5;10798:56;:::i;:::-;10877:7;10908:1;10893:284;10918:6;10915:1;10912:13;10893:284;;;10994:6;10988:13;11021:63;11080:3;11065:13;11021:63;:::i;:::-;11014:70;;11107:60;11160:6;11107:60;:::i;:::-;11097:70;;10953:224;10940:1;10937;10933:9;10928:14;;10893:284;;;10897:14;11193:3;11186:10;;10594:608;;;10470:732;;;;:::o;11208:109::-;11289:21;11304:5;11289:21;:::i;:::-;11284:3;11277:34;11208:109;;:::o;11323:167::-;11428:55;11477:5;11428:55;:::i;:::-;11423:3;11416:68;11323:167;;:::o;11496:147::-;11591:45;11630:5;11591:45;:::i;:::-;11586:3;11579:58;11496:147;;:::o;11649:364::-;11737:3;11765:39;11798:5;11765:39;:::i;:::-;11820:71;11884:6;11879:3;11820:71;:::i;:::-;11813:78;;11900:52;11945:6;11940:3;11933:4;11926:5;11922:16;11900:52;:::i;:::-;11977:29;11999:6;11977:29;:::i;:::-;11972:3;11968:39;11961:46;;11741:272;11649:364;;;;:::o;12019:366::-;12161:3;12182:67;12246:2;12241:3;12182:67;:::i;:::-;12175:74;;12258:93;12347:3;12258:93;:::i;:::-;12376:2;12371:3;12367:12;12360:19;;12019:366;;;:::o;12391:::-;12533:3;12554:67;12618:2;12613:3;12554:67;:::i;:::-;12547:74;;12630:93;12719:3;12630:93;:::i;:::-;12748:2;12743:3;12739:12;12732:19;;12391:366;;;:::o;12763:::-;12905:3;12926:67;12990:2;12985:3;12926:67;:::i;:::-;12919:74;;13002:93;13091:3;13002:93;:::i;:::-;13120:2;13115:3;13111:12;13104:19;;12763:366;;;:::o;13135:::-;13277:3;13298:67;13362:2;13357:3;13298:67;:::i;:::-;13291:74;;13374:93;13463:3;13374:93;:::i;:::-;13492:2;13487:3;13483:12;13476:19;;13135:366;;;:::o;13507:::-;13649:3;13670:67;13734:2;13729:3;13670:67;:::i;:::-;13663:74;;13746:93;13835:3;13746:93;:::i;:::-;13864:2;13859:3;13855:12;13848:19;;13507:366;;;:::o;13879:::-;14021:3;14042:67;14106:2;14101:3;14042:67;:::i;:::-;14035:74;;14118:93;14207:3;14118:93;:::i;:::-;14236:2;14231:3;14227:12;14220:19;;13879:366;;;:::o;14251:::-;14393:3;14414:67;14478:2;14473:3;14414:67;:::i;:::-;14407:74;;14490:93;14579:3;14490:93;:::i;:::-;14608:2;14603:3;14599:12;14592:19;;14251:366;;;:::o;14623:::-;14765:3;14786:67;14850:2;14845:3;14786:67;:::i;:::-;14779:74;;14862:93;14951:3;14862:93;:::i;:::-;14980:2;14975:3;14971:12;14964:19;;14623:366;;;:::o;14995:::-;15137:3;15158:67;15222:2;15217:3;15158:67;:::i;:::-;15151:74;;15234:93;15323:3;15234:93;:::i;:::-;15352:2;15347:3;15343:12;15336:19;;14995:366;;;:::o;15367:398::-;15526:3;15547:83;15628:1;15623:3;15547:83;:::i;:::-;15540:90;;15639:93;15728:3;15639:93;:::i;:::-;15757:1;15752:3;15748:11;15741:18;;15367:398;;;:::o;15771:366::-;15913:3;15934:67;15998:2;15993:3;15934:67;:::i;:::-;15927:74;;16010:93;16099:3;16010:93;:::i;:::-;16128:2;16123:3;16119:12;16112:19;;15771:366;;;:::o;16143:118::-;16230:24;16248:5;16230:24;:::i;:::-;16225:3;16218:37;16143:118;;:::o;16267:112::-;16350:22;16366:5;16350:22;:::i;:::-;16345:3;16338:35;16267:112;;:::o;16385:379::-;16569:3;16591:147;16734:3;16591:147;:::i;:::-;16584:154;;16755:3;16748:10;;16385:379;;;:::o;16770:222::-;16863:4;16901:2;16890:9;16886:18;16878:26;;16914:71;16982:1;16971:9;16967:17;16958:6;16914:71;:::i;:::-;16770:222;;;;:::o;16998:332::-;17119:4;17157:2;17146:9;17142:18;17134:26;;17170:71;17238:1;17227:9;17223:17;17214:6;17170:71;:::i;:::-;17251:72;17319:2;17308:9;17304:18;17295:6;17251:72;:::i;:::-;16998:332;;;;;:::o;17336:807::-;17585:4;17623:3;17612:9;17608:19;17600:27;;17637:71;17705:1;17694:9;17690:17;17681:6;17637:71;:::i;:::-;17718:72;17786:2;17775:9;17771:18;17762:6;17718:72;:::i;:::-;17800:80;17876:2;17865:9;17861:18;17852:6;17800:80;:::i;:::-;17890;17966:2;17955:9;17951:18;17942:6;17890:80;:::i;:::-;17980:73;18048:3;18037:9;18033:19;18024:6;17980:73;:::i;:::-;18063;18131:3;18120:9;18116:19;18107:6;18063:73;:::i;:::-;17336:807;;;;;;;;;:::o;18149:210::-;18236:4;18274:2;18263:9;18259:18;18251:26;;18287:65;18349:1;18338:9;18334:17;18325:6;18287:65;:::i;:::-;18149:210;;;;:::o;18365:258::-;18476:4;18514:2;18503:9;18499:18;18491:26;;18527:89;18613:1;18602:9;18598:17;18589:6;18527:89;:::i;:::-;18365:258;;;;:::o;18629:313::-;18742:4;18780:2;18769:9;18765:18;18757:26;;18829:9;18823:4;18819:20;18815:1;18804:9;18800:17;18793:47;18857:78;18930:4;18921:6;18857:78;:::i;:::-;18849:86;;18629:313;;;;:::o;18948:419::-;19114:4;19152:2;19141:9;19137:18;19129:26;;19201:9;19195:4;19191:20;19187:1;19176:9;19172:17;19165:47;19229:131;19355:4;19229:131;:::i;:::-;19221:139;;18948:419;;;:::o;19373:::-;19539:4;19577:2;19566:9;19562:18;19554:26;;19626:9;19620:4;19616:20;19612:1;19601:9;19597:17;19590:47;19654:131;19780:4;19654:131;:::i;:::-;19646:139;;19373:419;;;:::o;19798:::-;19964:4;20002:2;19991:9;19987:18;19979:26;;20051:9;20045:4;20041:20;20037:1;20026:9;20022:17;20015:47;20079:131;20205:4;20079:131;:::i;:::-;20071:139;;19798:419;;;:::o;20223:::-;20389:4;20427:2;20416:9;20412:18;20404:26;;20476:9;20470:4;20466:20;20462:1;20451:9;20447:17;20440:47;20504:131;20630:4;20504:131;:::i;:::-;20496:139;;20223:419;;;:::o;20648:::-;20814:4;20852:2;20841:9;20837:18;20829:26;;20901:9;20895:4;20891:20;20887:1;20876:9;20872:17;20865:47;20929:131;21055:4;20929:131;:::i;:::-;20921:139;;20648:419;;;:::o;21073:::-;21239:4;21277:2;21266:9;21262:18;21254:26;;21326:9;21320:4;21316:20;21312:1;21301:9;21297:17;21290:47;21354:131;21480:4;21354:131;:::i;:::-;21346:139;;21073:419;;;:::o;21498:::-;21664:4;21702:2;21691:9;21687:18;21679:26;;21751:9;21745:4;21741:20;21737:1;21726:9;21722:17;21715:47;21779:131;21905:4;21779:131;:::i;:::-;21771:139;;21498:419;;;:::o;21923:::-;22089:4;22127:2;22116:9;22112:18;22104:26;;22176:9;22170:4;22166:20;22162:1;22151:9;22147:17;22140:47;22204:131;22330:4;22204:131;:::i;:::-;22196:139;;21923:419;;;:::o;22348:::-;22514:4;22552:2;22541:9;22537:18;22529:26;;22601:9;22595:4;22591:20;22587:1;22576:9;22572:17;22565:47;22629:131;22755:4;22629:131;:::i;:::-;22621:139;;22348:419;;;:::o;22773:::-;22939:4;22977:2;22966:9;22962:18;22954:26;;23026:9;23020:4;23016:20;23012:1;23001:9;22997:17;22990:47;23054:131;23180:4;23054:131;:::i;:::-;23046:139;;22773:419;;;:::o;23198:222::-;23291:4;23329:2;23318:9;23314:18;23306:26;;23342:71;23410:1;23399:9;23395:17;23386:6;23342:71;:::i;:::-;23198:222;;;;:::o;23426:831::-;23689:4;23727:3;23716:9;23712:19;23704:27;;23741:71;23809:1;23798:9;23794:17;23785:6;23741:71;:::i;:::-;23822:80;23898:2;23887:9;23883:18;23874:6;23822:80;:::i;:::-;23949:9;23943:4;23939:20;23934:2;23923:9;23919:18;23912:48;23977:108;24080:4;24071:6;23977:108;:::i;:::-;23969:116;;24095:72;24163:2;24152:9;24148:18;24139:6;24095:72;:::i;:::-;24177:73;24245:3;24234:9;24230:19;24221:6;24177:73;:::i;:::-;23426:831;;;;;;;;:::o;24263:332::-;24384:4;24422:2;24411:9;24407:18;24399:26;;24435:71;24503:1;24492:9;24488:17;24479:6;24435:71;:::i;:::-;24516:72;24584:2;24573:9;24569:18;24560:6;24516:72;:::i;:::-;24263:332;;;;;:::o;24601:214::-;24690:4;24728:2;24717:9;24713:18;24705:26;;24741:67;24805:1;24794:9;24790:17;24781:6;24741:67;:::i;:::-;24601:214;;;;:::o;24902:132::-;24969:4;24992:3;24984:11;;25022:4;25017:3;25013:14;25005:22;;24902:132;;;:::o;25040:114::-;25107:6;25141:5;25135:12;25125:22;;25040:114;;;:::o;25160:99::-;25212:6;25246:5;25240:12;25230:22;;25160:99;;;:::o;25265:113::-;25335:4;25367;25362:3;25358:14;25350:22;;25265:113;;;:::o;25384:184::-;25483:11;25517:6;25512:3;25505:19;25557:4;25552:3;25548:14;25533:29;;25384:184;;;;:::o;25574:147::-;25675:11;25712:3;25697:18;;25574:147;;;;:::o;25727:169::-;25811:11;25845:6;25840:3;25833:19;25885:4;25880:3;25876:14;25861:29;;25727:169;;;;:::o;25902:305::-;25942:3;25961:20;25979:1;25961:20;:::i;:::-;25956:25;;25995:20;26013:1;25995:20;:::i;:::-;25990:25;;26149:1;26081:66;26077:74;26074:1;26071:81;26068:107;;;26155:18;;:::i;:::-;26068:107;26199:1;26196;26192:9;26185:16;;25902:305;;;;:::o;26213:185::-;26253:1;26270:20;26288:1;26270:20;:::i;:::-;26265:25;;26304:20;26322:1;26304:20;:::i;:::-;26299:25;;26343:1;26333:35;;26348:18;;:::i;:::-;26333:35;26390:1;26387;26383:9;26378:14;;26213:185;;;;:::o;26404:348::-;26444:7;26467:20;26485:1;26467:20;:::i;:::-;26462:25;;26501:20;26519:1;26501:20;:::i;:::-;26496:25;;26689:1;26621:66;26617:74;26614:1;26611:81;26606:1;26599:9;26592:17;26588:105;26585:131;;;26696:18;;:::i;:::-;26585:131;26744:1;26741;26737:9;26726:20;;26404:348;;;;:::o;26758:191::-;26798:4;26818:20;26836:1;26818:20;:::i;:::-;26813:25;;26852:20;26870:1;26852:20;:::i;:::-;26847:25;;26891:1;26888;26885:8;26882:34;;;26896:18;;:::i;:::-;26882:34;26941:1;26938;26934:9;26926:17;;26758:191;;;;:::o;26955:96::-;26992:7;27021:24;27039:5;27021:24;:::i;:::-;27010:35;;26955:96;;;:::o;27057:90::-;27091:7;27134:5;27127:13;27120:21;27109:32;;27057:90;;;:::o;27153:126::-;27190:7;27230:42;27223:5;27219:54;27208:65;;27153:126;;;:::o;27285:77::-;27322:7;27351:5;27340:16;;27285:77;;;:::o;27368:86::-;27403:7;27443:4;27436:5;27432:16;27421:27;;27368:86;;;:::o;27460:144::-;27528:9;27561:37;27592:5;27561:37;:::i;:::-;27548:50;;27460:144;;;:::o;27610:121::-;27668:9;27701:24;27719:5;27701:24;:::i;:::-;27688:37;;27610:121;;;:::o;27737:126::-;27787:9;27820:37;27851:5;27820:37;:::i;:::-;27807:50;;27737:126;;;:::o;27869:113::-;27919:9;27952:24;27970:5;27952:24;:::i;:::-;27939:37;;27869:113;;;:::o;27988:307::-;28056:1;28066:113;28080:6;28077:1;28074:13;28066:113;;;28165:1;28160:3;28156:11;28150:18;28146:1;28141:3;28137:11;28130:39;28102:2;28099:1;28095:10;28090:15;;28066:113;;;28197:6;28194:1;28191:13;28188:101;;;28277:1;28268:6;28263:3;28259:16;28252:27;28188:101;28037:258;27988:307;;;:::o;28301:233::-;28340:3;28363:24;28381:5;28363:24;:::i;:::-;28354:33;;28409:66;28402:5;28399:77;28396:103;;;28479:18;;:::i;:::-;28396:103;28526:1;28519:5;28515:13;28508:20;;28301:233;;;:::o;28540:180::-;28588:77;28585:1;28578:88;28685:4;28682:1;28675:15;28709:4;28706:1;28699:15;28726:180;28774:77;28771:1;28764:88;28871:4;28868:1;28861:15;28895:4;28892:1;28885:15;28912:180;28960:77;28957:1;28950:88;29057:4;29054:1;29047:15;29081:4;29078:1;29071:15;29098:180;29146:77;29143:1;29136:88;29243:4;29240:1;29233:15;29267:4;29264:1;29257:15;29284:117;29393:1;29390;29383:12;29407:117;29516:1;29513;29506:12;29530:117;29639:1;29636;29629:12;29653:117;29762:1;29759;29752:12;29776:117;29885:1;29882;29875:12;29899:102;29940:6;29991:2;29987:7;29982:2;29975:5;29971:14;29967:28;29957:38;;29899:102;;;:::o;30007:167::-;30147:19;30143:1;30135:6;30131:14;30124:43;30007:167;:::o;30180:178::-;30320:30;30316:1;30308:6;30304:14;30297:54;30180:178;:::o;30364:225::-;30504:34;30500:1;30492:6;30488:14;30481:58;30573:8;30568:2;30560:6;30556:15;30549:33;30364:225;:::o;30595:177::-;30735:29;30731:1;30723:6;30719:14;30712:53;30595:177;:::o;30778:170::-;30918:22;30914:1;30906:6;30902:14;30895:46;30778:170;:::o;30954:160::-;31094:12;31090:1;31082:6;31078:14;31071:36;30954:160;:::o;31120:220::-;31260:34;31256:1;31248:6;31244:14;31237:58;31329:3;31324:2;31316:6;31312:15;31305:28;31120:220;:::o;31346:182::-;31486:34;31482:1;31474:6;31470:14;31463:58;31346:182;:::o;31534:249::-;31674:34;31670:1;31662:6;31658:14;31651:58;31743:32;31738:2;31730:6;31726:15;31719:57;31534:249;:::o;31789:114::-;;:::o;31909:165::-;32049:17;32045:1;32037:6;32033:14;32026:41;31909:165;:::o;32080:122::-;32153:24;32171:5;32153:24;:::i;:::-;32146:5;32143:35;32133:63;;32192:1;32189;32182:12;32133:63;32080:122;:::o;32208:116::-;32278:21;32293:5;32278:21;:::i;:::-;32271:5;32268:32;32258:60;;32314:1;32311;32304:12;32258:60;32208:116;:::o;32330:122::-;32403:24;32421:5;32403:24;:::i;:::-;32396:5;32393:35;32383:63;;32442:1;32439;32432:12;32383:63;32330:122;:::o

Swarm Source

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