ETH Price: $2,393.81 (+2.66%)

Token

Lotto.WTF (Lotto)
 

Overview

Max Total Supply

1,000,000 Lotto

Holders

56

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 4 Decimals)

Filtered by Token Holder
ihatescammers-antithe-to-the-moon.eth
Balance
3,610 Lotto

Value
$0.00
0x55DC52BdDE0838aD6E1bac1A4D8aaE30A35741e5
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:
LottoWTF

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-18
*/

/*

Lotto.WTF - Every 12 hours the lottery tax is raffled off to one lucky winner / holder. 

*/

// 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 Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

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

    string constant _name = "Lotto.WTF";
    string constant _symbol = "Lotto";
    uint8 constant _decimals = 4; 

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

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

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

    bool public blacklistMode = true;
    mapping (address => bool) public isblacklisted;

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

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

    uint256 public liquidityFee    = 2;
    uint256 public marketingFee    = 4;
    uint256 public devFee          = 1;
    uint256 public lottoFee        = 2; 
    uint256 public burnFee         = 0;
    uint256 public totalFee        = lottoFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 public feeDenominator  = 100;

    uint256 public sellMultiplier  = 100; 

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address private devFeeReceiver;
    address private lottoFeeReceiver;
    address public burnFeeReceiver;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

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

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

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[devFeeReceiver] = true;
        isFeeExempt[marketingFeeReceiver] = true;
    
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[devFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;

        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x699AbF42A65F78eCa758F4c28D4eD50cdA821fa1;
        devFeeReceiver = 0x3faB7A710FfeF5427E366e16a1c6982e480c5d90;
        lottoFeeReceiver = 0xCfe6455Abb22fB799645594AbbF63d670Bea3cAb;
        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) external onlyOwner() {
        require(_maxWalletToken >= _totalSupply / 1000);
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
                
    }

    function SetMaxTxPercent(uint256 maxTXPercent) external onlyOwner() {
        require(_maxTxAmount >= _totalSupply / 1000); //anti honeypot no less than .1%
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

    
    function setTxLimitAbsolute(uint256 amount) external authorized {
        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");

        }
           
            // blacklist
        if(blacklistMode){
            require(!isblacklisted[sender],"blacklisted");    
        }

        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && !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 = (!shouldTakeFee(sender) || !shouldTakeFee(recipient)) ? amount : takeFee(sender, amount,(recipient == pair),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, bool isSell, address receiver) internal returns (uint256) {
        
        uint256 multiplier = isSell ? sellMultiplier : 100;
        if(launchMode && !islaunched[receiver] && !isSell){
            multiplier = 900;
        }

        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 authorized {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
    }

    function ClearStuckToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool) {
     if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function set_sell_multiplier(uint256 _multiplier) external authorized{
        require(totalFee.mul(sellMultiplier).div(100) < 50, "Sell Tax cannot be more than 50%"); //antihoneypot
        sellMultiplier = _multiplier;        
    }

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

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

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

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

    function enable_blacklist(bool _status) public onlyOwner {
        blacklistMode = _status;
    }

    function enable_launch(bool _status) public onlyOwner {
        launchMode = _status;

    }

    function manage_blacklist(address[] calldata addresses, bool status) public authorized {
        for (uint256 i; i < addresses.length; ++i) {
            isblacklisted[addresses[i]] = status;
        }
    }

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

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

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

    function setFees(uint256 _liquidityFee, uint256 _lottoFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        lottoFee = _lottoFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_lottoFee).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 _lottoFeeReceiver) external authorized {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        lottoFeeReceiver = _lottoFeeReceiver;
    }

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

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

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

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


    function BurnLPTokens(uint256 percent_base10000) public onlyOwner returns (bool){
        require(percent_base10000 <= 1000, "May not nuke more than 10% of tokens in LP");
    
        uint256 lp_tokens = this.balanceOf(pair);
        uint256 lp_burn = lp_tokens.mul(percent_base10000).div(10000);
        
        if (lp_burn > 0){
            _basicTransfer(pair,DEAD,lp_burn);
            pairContract.sync();
            return true;
        }
        
        return false;
 }


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":false,"internalType":"address","name":"owner","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":[{"internalType":"uint256","name":"percent_base10000","type":"uint256"}],"name":"BurnLPTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"EnableTrading","outputs":[],"stateMutability":"nonpayable","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":[],"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":[{"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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"adr","type":"address"}],"name":"isAuthorized","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":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isblacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"islaunched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lottoFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"_lottoFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_lottoFee","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":"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":[{"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"set_sell_multiplier","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead179091556004805490911681556200003190600a62000713565b6200004090620f4240620007d2565b6005556200007a6064620000666001600554620004ef60201b620017cb1790919060201c565b6200058360201b6200184a1790919060201c565b600655620000a06064620000666002600554620004ef60201b620017cb1790919060201c565b600755600a8054600160ff199182168117909255600c80549091168217905560026010819055600460118190556012839055601382905560006014819055929190620000ed90826200068c565b620000f991906200068c565b6200010591906200068c565b6200011191906200068c565b6015556064601681905560178190556014601d55601e556021805461ffff60a01b1916600160a81b1790556005546103e89062000150906002620007d2565b6200015c9190620006a7565b6022553480156200016c57600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff1916909217909155601f8054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c46489260048083019392829003018186803b158015620001ee57600080fd5b505afa15801562000203573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000229919062000609565b600280546001600160a01b0319166001600160a01b03928316179055601f546040805163c45a015560e01b81529051919092169163c45a0155916004808301926020929190829003018186803b1580156200028357600080fd5b505afa15801562000298573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002be919062000609565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b1580156200030b57600080fd5b505af115801562000320573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000346919062000609565b602180546001600160a01b039283166001600160a01b0319918216811783556020805483169091178155306000818152600983526040808220601f54881683528452808220600019905533808352600e8552818320805460ff199081166001908117909255601a80548b1686528486208054831684179055601980548c1687528587208054841685179055848752600f8952858720805484168517905599548b168652848620805483168417905580548b168652848620805483168417905589548b168652848620805483168417905595855283852080549091169091179055601880548716821790558654861673699abf42a65f78eca758f4c28d4ed50cda821fa11790965582548516733fab7a710ffef5427e366e16a1c6982e480c5d9017909255601b8054851673cfe6455abb22fb799645594abbf63d670bea3cab179055600354601c8054909516961695909517909255600554838552600890915281842081905590519192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620004e19190815260200190565b60405180910390a36200080a565b60008262000500575060006200057d565b60006200050e8385620007d2565b9050826200051d8583620006a7565b146200057a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200057a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620005cd60201b60201c565b60008183620005f15760405162461bcd60e51b815260040162000571919062000634565b506000620006008486620006a7565b95945050505050565b6000602082840312156200061c57600080fd5b81516001600160a01b03811681146200057a57600080fd5b600060208083528351808285015260005b81811015620006635785810183015185820160400152820162000645565b8181111562000676576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115620006a257620006a2620007f4565b500190565b600082620006c557634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156200070b578160001904821115620006ef57620006ef620007f4565b80851615620006fd57918102915b93841c9390800290620006cf565b509250929050565b60006200057a60ff8416836000826200072f575060016200057d565b816200073e575060006200057d565b8160018114620007575760028114620007625762000782565b60019150506200057d565b60ff841115620007765762000776620007f4565b50506001821b6200057d565b5060208310610133831016604e8410600b8410161715620007a7575081810a6200057d565b620007b38383620006ca565b8060001904821115620007ca57620007ca620007f4565b029392505050565b6000816000190483118215151615620007ef57620007ef620007f4565b500290565b634e487b7160e01b600052601160045260246000fd5b6129bd806200081a6000396000f3fe6080604052600436106103905760003560e01c80637d1db4a5116101dc578063d51ed1c811610102578063ed6a5965116100a0578063f887ea401161006f578063f887ea4014610abe578063fce589d814610ade578063fe9fbb8014610af4578063fed0d2a114610b1457600080fd5b8063ed6a596514610a2e578063f0b37c0414610a5e578063f2fde38b14610a7e578063f84ba65d14610a9e57600080fd5b8063e3763ded116100dc578063e3763ded146109ae578063e96fada2146109ce578063eb969b05146109ee578063ec72d65f14610a0e57600080fd5b8063d51ed1c814610928578063dd62ed3e14610948578063df20fd491461098e57600080fd5b806395d89b411161017a578063a9059cbb11610149578063a9059cbb146108ae578063b37dd690146108ce578063b6a5d7de146108e8578063ca33e64c1461090857600080fd5b806395d89b411461082a57806398118cb414610858578063997f92ff1461086e578063a8aa1b311461088e57600080fd5b806386f6c3c1116101b657806386f6c3c11461079e578063893d20e8146107be578063896648c1146107f05780638e2eee841461080a57600080fd5b80637d1db4a51461074857806382bf293c1461075e57806383f9d9fa1461077e57600080fd5b806323b872dd116102c15780635e562f3b1161025f5780636ddd17131161022e5780636ddd1713146106ab5780637007546b146106cc57806370a08231146106fc57806378109e541461073257600080fd5b80635e562f3b1461063f578063658d4b7f1461065f5780636827e7641461067f5780636b67c4df1461069557600080fd5b80632f54bf6e1161029b5780632f54bf6e146105b4578063313ce567146105e3578063570636dc146105ff578063571ac8b01461061f57600080fd5b806323b872dd146105695780632b112e49146105895780632d79cf611461059e57600080fd5b80631161ae391161032e57806318abb6351161030857806318abb635146104fe5780631d97b7cd1461051e5780631df4ccfc14610533578063201e79911461054957600080fd5b80631161ae39146104b3578063180b0d7e146104d357806318160ddd146104e957600080fd5b806306fdde031161036a57806306fdde03146104075780630780c0a41461044257806308fd3d0514610472578063095ea7b31461049357600080fd5b80630445b6671461039c578063048ca833146103c5578063054557ea146103e757600080fd5b3661039757005b600080fd5b3480156103a857600080fd5b506103b260225481565b6040519081526020015b60405180910390f35b3480156103d157600080fd5b506103e56103e03660046126ba565b610b2a565b005b3480156103f357600080fd5b506103e56104023660046125dc565b610ba0565b34801561041357600080fd5b506040805180820190915260098152682637ba3a37972baa2360b91b60208201525b6040516103bc919061277f565b34801561044e57600080fd5b5061046261045d3660046126ba565b610c3f565b60405190151581526020016103bc565b34801561047e57600080fd5b5060215461046290600160a01b900460ff1681565b34801561049f57600080fd5b506104626104ae3660046125b0565b610e09565b3480156104bf57600080fd5b506104626104ce3660046126ec565b610e76565b3480156104df57600080fd5b506103b260165481565b3480156104f557600080fd5b506005546103b2565b34801561050a57600080fd5b506103e56105193660046124d0565b610e8a565b34801561052a57600080fd5b506103e5610f0e565b34801561053f57600080fd5b506103b260155481565b34801561055557600080fd5b506103e56105643660046126ec565b610f4d565b34801561057557600080fd5b50610462610584366004612541565b610f7d565b34801561059557600080fd5b506103b261103f565b3480156105aa57600080fd5b506103b260135481565b3480156105c057600080fd5b506104626105cf36600461247a565b6000546001600160a01b0391821691161490565b3480156105ef57600080fd5b50604051600481526020016103bc565b34801561060b57600080fd5b506103e561061a3660046126ba565b611091565b34801561062b57600080fd5b5061046261063a36600461247a565b6110fa565b34801561064b57600080fd5b506103e561065a366004612662565b611108565b34801561066b57600080fd5b506103e561067a366004612582565b611145565b34801561068b57600080fd5b506103b260125481565b3480156106a157600080fd5b506103b260115481565b3480156106b757600080fd5b5060215461046290600160a81b900460ff1681565b3480156106d857600080fd5b506104626106e736600461247a565b600d6020526000908152604090205460ff1681565b34801561070857600080fd5b506103b261071736600461247a565b6001600160a01b031660009081526008602052604090205490565b34801561073e57600080fd5b506103b260075481565b34801561075457600080fd5b506103b260065481565b34801561076a57600080fd5b506103e56107793660046126ba565b611195565b34801561078a57600080fd5b506103e56107993660046126ba565b6111fd565b3480156107aa57600080fd5b506103e56107b936600461273c565b611245565b3480156107ca57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103bc565b3480156107fc57600080fd5b50600a546104629060ff1681565b34801561081657600080fd5b506103e56108253660046125dc565b611306565b34801561083657600080fd5b506040805180820190915260058152644c6f74746f60d81b6020820152610435565b34801561086457600080fd5b506103b260105481565b34801561087a57600080fd5b506104626108893660046125b0565b61139a565b34801561089a57600080fd5b506021546107d8906001600160a01b031681565b3480156108ba57600080fd5b506104626108c93660046125b0565b6114c4565b3480156108da57600080fd5b50600c546104629060ff1681565b3480156108f457600080fd5b506103e561090336600461247a565b6114d1565b34801561091457600080fd5b506018546107d8906001600160a01b031681565b34801561093457600080fd5b506103b26109433660046126ba565b611522565b34801561095457600080fd5b506103b2610963366004612497565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561099a57600080fd5b506103e56109a936600461269c565b611563565b3480156109ba57600080fd5b50601c546107d8906001600160a01b031681565b3480156109da57600080fd5b506019546107d8906001600160a01b031681565b3480156109fa57600080fd5b506103e5610a09366004612662565b6115aa565b348015610a1a57600080fd5b506103e5610a293660046126ba565b6115e7565b348015610a3a57600080fd5b50610462610a4936600461247a565b600b6020526000908152604090205460ff1681565b348015610a6a57600080fd5b506103e5610a7936600461247a565b61167c565b348015610a8a57600080fd5b506103e5610a9936600461247a565b6116c7565b348015610aaa57600080fd5b506103e5610ab9366004612582565b61175d565b348015610aca57600080fd5b50601f546107d8906001600160a01b031681565b348015610aea57600080fd5b506103b260145481565b348015610b0057600080fd5b50610462610b0f36600461247a565b6117ad565b348015610b2057600080fd5b506103b260175481565b610b33336117ad565b610b585760405162461bcd60e51b8152600401610b4f906127f4565b60405180910390fd5b47336108fc6064610b6985856128c4565b610b7391906128a2565b6040518115909202916000818181858888f19350505050158015610b9b573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610bca5760405162461bcd60e51b8152600401610b4f906127d4565b60005b82811015610c395781600d6000868685818110610bec57610bec61292b565b9050602002016020810190610c01919061247a565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610c32816128fa565b9050610bcd565b50505050565b600080546001600160a01b03163314610c6a5760405162461bcd60e51b8152600401610b4f906127d4565b6103e8821115610ccf5760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610b4f565b6021546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a082319060240160206040518083038186803b158015610d1557600080fd5b505afa158015610d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4d91906126d3565b90506000610d67612710610d6184876117cb565b9061184a565b90508015610dff57602154600354610d8c916001600160a01b0390811691168361188c565b50602060009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610ddd57600080fd5b505af1158015610df1573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e649086815260200190565b60405180910390a35060015b92915050565b600082610e8283611522565b119392505050565b610e93336117ad565b610eaf5760405162461bcd60e51b8152600401610b4f906127f4565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601c80548416918516919091179055601b80549092169216919091179055565b6000546001600160a01b03163314610f385760405162461bcd60e51b8152600401610b4f906127d4565b6021805460ff60a01b1916600160a01b179055565b610f56336117ad565b610f725760405162461bcd60e51b8152600401610b4f906127f4565b601d91909155601e55565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461102a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054611005918490611960565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61103584848461199a565b90505b9392505050565b6004546001600160a01b031660009081526008602052604081205461108c906003546001600160a01b03166000908152600860205260409020546110869060055490611d60565b90611d60565b905090565b6000546001600160a01b031633146110bb5760405162461bcd60e51b8152600401610b4f906127d4565b6103e86005546110cb91906128a2565b60065410156110d957600080fd5b6103e8816005546110ea91906128c4565b6110f491906128a2565b60065550565b6000610e7082600019610e09565b6000546001600160a01b031633146111325760405162461bcd60e51b8152600401610b4f906127d4565b600a805460ff1916911515919091179055565b61114e336117ad565b61116a5760405162461bcd60e51b8152600401610b4f906127f4565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111bf5760405162461bcd60e51b8152600401610b4f906127d4565b6103e86005546111cf91906128a2565b60075410156111dd57600080fd5b6064816005546111ed91906128c4565b6111f791906128a2565b60075550565b611206336117ad565b6112225760405162461bcd60e51b8152600401610b4f906127f4565b6103e860055461123291906128a2565b600654101561124057600080fd5b600655565b61124e336117ad565b61126a5760405162461bcd60e51b8152600401610b4f906127f4565b6010869055601385905560118490556012839055601482905561129b82611295858188818c8c611da2565b90611da2565b60155560168190556112ae6002826128a2565b601554106112fe5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610b4f565b505050505050565b61130f336117ad565b61132b5760405162461bcd60e51b8152600401610b4f906127f4565b60005b82811015610c395781600b600086868581811061134d5761134d61292b565b9050602002016020810190611362919061247a565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611393816128fa565b905061132e565b600080546001600160a01b031633146113c55760405162461bcd60e51b8152600401610b4f906127d4565b81611444576040516370a0823160e01b81523060048201526001600160a01b038416906370a082319060240160206040518083038186803b15801561140957600080fd5b505afa15801561141d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144191906126d3565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b15801561148c57600080fd5b505af11580156114a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611038919061267f565b600061103833848461199a565b6000546001600160a01b031633146114fb5760405162461bcd60e51b8152600401610b4f906127d4565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000610e7061152f61103f565b6021546001600160a01b0316600090815260086020526040902054610d619061155c906002905b906117cb565b85906117cb565b61156c336117ad565b6115885760405162461bcd60e51b8152600401610b4f906127f4565b60218054921515600160a81b0260ff60a81b1990931692909217909155602255565b6000546001600160a01b031633146115d45760405162461bcd60e51b8152600401610b4f906127d4565b600c805460ff1916911515919091179055565b6115f0336117ad565b61160c5760405162461bcd60e51b8152600401610b4f906127f4565b603261162a6064610d616017546015546117cb90919063ffffffff16565b106116775760405162461bcd60e51b815260206004820181905260248201527f53656c6c205461782063616e6e6f74206265206d6f7265207468616e203530256044820152606401610b4f565b601755565b6000546001600160a01b031633146116a65760405162461bcd60e51b8152600401610b4f906127d4565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146116f15760405162461bcd60e51b8152600401610b4f906127d4565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611766336117ad565b6117825760405162461bcd60e51b8152600401610b4f906127f4565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6000826117da57506000610e70565b60006117e683856128c4565b9050826117f385836128a2565b146110385760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b4f565b600061103883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e01565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546118dd918490611960565b6001600160a01b03808616600090815260086020526040808220939093559085168152205461190c9083611da2565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206129688339815191529061194e9086815260200190565b60405180910390a35060019392505050565b600081848411156119845760405162461bcd60e51b8152600401610b4f919061277f565b50600061199184866128e3565b95945050505050565b60235460009060ff16156119ba576119b384848461188c565b9050611038565b6001600160a01b03841660009081526001602052604090205460ff161580156119fc57506001600160a01b03831660009081526001602052604090205460ff16155b15611a5157602154600160a01b900460ff16611a515760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610b4f565b600a5460ff1615611ab3576001600160a01b0384166000908152600b602052604090205460ff1615611ab35760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b6044820152606401610b4f565b6001600160a01b03841660009081526001602052604090205460ff16158015611ae557506001600160a01b0383163014155b8015611aff57506003546001600160a01b03848116911614155b8015611b1957506021546001600160a01b03848116911614155b8015611b335750601c546001600160a01b03848116911614155b8015611b5857506001600160a01b0383166000908152600f602052604090205460ff16155b15611bf9576001600160a01b038316600090815260086020526040902054600754611b83848361288a565b1115611bf75760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610b4f565b505b611c038483611e2f565b611c0b611e9c565b15611c1857611c18611ef2565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611c6a918490611960565b6001600160a01b038516600090815260086020908152604080832093909355600e90529081205460ff16151580611cbb57506001600160a01b0384166000908152600e602052604090205460ff1615155b611ce357602154611cde90869085906001600160a01b03888116911614876122e8565b611ce5565b825b6001600160a01b038516600090815260086020526040902054909150611d0b9082611da2565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061296883398151915290611d4d9085815260200190565b60405180910390a3506001949350505050565b600061103883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611960565b600080611daf838561288a565b9050838110156110385760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b4f565b60008183611e225760405162461bcd60e51b8152600401610b4f919061277f565b50600061199184866128a2565b60065481111580611e5857506001600160a01b0382166000908152600f602052604090205460ff165b611e985760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610b4f565b5050565b6021546000906001600160a01b03163314801590611ebd575060235460ff16155b8015611ed25750602154600160a81b900460ff165b801561108c57505060225430600090815260086020526040902054101590565b6023805460ff19166001179055601d54601e54600091611f1191610e76565b611f1d57601054611f20565b60005b90506000611f446002610d61601554610d61866022546117cb90919063ffffffff16565b90506000611f5d82602254611d6090919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611f9757611f9761292b565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611fc857611fc861292b565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b81524792919091169063791ac94790612012908690600090879030904290600401612819565b600060405180830381600087803b15801561202c57600080fd5b505af1158015612040573d6000803e3d6000fd5b5050505060006120598247611d6090919063ffffffff16565b9050600061207461206b88600261184a565b60155490611d60565b905060006120896002610d618481878d6117cb565b905060006120a683610d61601154876117cb90919063ffffffff16565b905060006120c384610d61601354886117cb90919063ffffffff16565b905060006120e085610d61601254896117cb90919063ffffffff16565b6019546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114612132576040519150601f19603f3d011682016040523d82523d6000602084013e612137565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114612187576040519150601f19603f3d011682016040523d82523d6000602084013e61218c565b606091505b5050601b546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146121dc576040519150601f19603f3d011682016040523d82523d6000602084013e6121e1565b606091505b5060009250508b1590506122d057601f5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b15801561225a57600080fd5b505af115801561226e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612293919061270e565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b600080836122f75760646122fb565b6017545b600c5490915060ff16801561232957506001600160a01b0383166000908152600d602052604090205460ff16155b8015612333575083155b1561233d57506103845b600061236a601654606461235191906128c4565b610d61846115566015548b6117cb90919063ffffffff16565b90506000612389601554610d61601454856117cb90919063ffffffff16565b905060006123978383611d60565b306000908152600860205260409020549091506123b49082611da2565b3060009081526008602052604080822092909255601c546001600160a01b0316815220546123e29083611da2565b601c546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918c1691600080516020612968833981519152910160405180910390a3811561246357601c546040518381526001600160a01b03918216918b16906000805160206129688339815191529060200160405180910390a35b61246d8884611d60565b9998505050505050505050565b60006020828403121561248c57600080fd5b813561103881612941565b600080604083850312156124aa57600080fd5b82356124b581612941565b915060208301356124c581612941565b809150509250929050565b600080600080600060a086880312156124e857600080fd5b85356124f381612941565b9450602086013561250381612941565b9350604086013561251381612941565b9250606086013561252381612941565b9150608086013561253381612941565b809150509295509295909350565b60008060006060848603121561255657600080fd5b833561256181612941565b9250602084013561257181612941565b929592945050506040919091013590565b6000806040838503121561259557600080fd5b82356125a081612941565b915060208301356124c581612959565b600080604083850312156125c357600080fd5b82356125ce81612941565b946020939093013593505050565b6000806000604084860312156125f157600080fd5b833567ffffffffffffffff8082111561260957600080fd5b818601915086601f83011261261d57600080fd5b81358181111561262c57600080fd5b8760208260051b850101111561264157600080fd5b6020928301955093505084013561265781612959565b809150509250925092565b60006020828403121561267457600080fd5b813561103881612959565b60006020828403121561269157600080fd5b815161103881612959565b600080604083850312156126af57600080fd5b82356125ce81612959565b6000602082840312156126cc57600080fd5b5035919050565b6000602082840312156126e557600080fd5b5051919050565b600080604083850312156126ff57600080fd5b50508035926020909101359150565b60008060006060848603121561272357600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c0878903121561275557600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b818110156127ac57858101830151858201604001528201612790565b818111156127be576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128695784516001600160a01b031683529383019391830191600101612844565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561289d5761289d612915565b500190565b6000826128bf57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156128de576128de612915565b500290565b6000828210156128f5576128f5612915565b500390565b600060001982141561290e5761290e612915565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461295657600080fd5b50565b801515811461295657600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e5c008b3e4c5175fb283dbae5ebe539970e246d5096a3b75ddffcf6b698ae79c64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106103905760003560e01c80637d1db4a5116101dc578063d51ed1c811610102578063ed6a5965116100a0578063f887ea401161006f578063f887ea4014610abe578063fce589d814610ade578063fe9fbb8014610af4578063fed0d2a114610b1457600080fd5b8063ed6a596514610a2e578063f0b37c0414610a5e578063f2fde38b14610a7e578063f84ba65d14610a9e57600080fd5b8063e3763ded116100dc578063e3763ded146109ae578063e96fada2146109ce578063eb969b05146109ee578063ec72d65f14610a0e57600080fd5b8063d51ed1c814610928578063dd62ed3e14610948578063df20fd491461098e57600080fd5b806395d89b411161017a578063a9059cbb11610149578063a9059cbb146108ae578063b37dd690146108ce578063b6a5d7de146108e8578063ca33e64c1461090857600080fd5b806395d89b411461082a57806398118cb414610858578063997f92ff1461086e578063a8aa1b311461088e57600080fd5b806386f6c3c1116101b657806386f6c3c11461079e578063893d20e8146107be578063896648c1146107f05780638e2eee841461080a57600080fd5b80637d1db4a51461074857806382bf293c1461075e57806383f9d9fa1461077e57600080fd5b806323b872dd116102c15780635e562f3b1161025f5780636ddd17131161022e5780636ddd1713146106ab5780637007546b146106cc57806370a08231146106fc57806378109e541461073257600080fd5b80635e562f3b1461063f578063658d4b7f1461065f5780636827e7641461067f5780636b67c4df1461069557600080fd5b80632f54bf6e1161029b5780632f54bf6e146105b4578063313ce567146105e3578063570636dc146105ff578063571ac8b01461061f57600080fd5b806323b872dd146105695780632b112e49146105895780632d79cf611461059e57600080fd5b80631161ae391161032e57806318abb6351161030857806318abb635146104fe5780631d97b7cd1461051e5780631df4ccfc14610533578063201e79911461054957600080fd5b80631161ae39146104b3578063180b0d7e146104d357806318160ddd146104e957600080fd5b806306fdde031161036a57806306fdde03146104075780630780c0a41461044257806308fd3d0514610472578063095ea7b31461049357600080fd5b80630445b6671461039c578063048ca833146103c5578063054557ea146103e757600080fd5b3661039757005b600080fd5b3480156103a857600080fd5b506103b260225481565b6040519081526020015b60405180910390f35b3480156103d157600080fd5b506103e56103e03660046126ba565b610b2a565b005b3480156103f357600080fd5b506103e56104023660046125dc565b610ba0565b34801561041357600080fd5b506040805180820190915260098152682637ba3a37972baa2360b91b60208201525b6040516103bc919061277f565b34801561044e57600080fd5b5061046261045d3660046126ba565b610c3f565b60405190151581526020016103bc565b34801561047e57600080fd5b5060215461046290600160a01b900460ff1681565b34801561049f57600080fd5b506104626104ae3660046125b0565b610e09565b3480156104bf57600080fd5b506104626104ce3660046126ec565b610e76565b3480156104df57600080fd5b506103b260165481565b3480156104f557600080fd5b506005546103b2565b34801561050a57600080fd5b506103e56105193660046124d0565b610e8a565b34801561052a57600080fd5b506103e5610f0e565b34801561053f57600080fd5b506103b260155481565b34801561055557600080fd5b506103e56105643660046126ec565b610f4d565b34801561057557600080fd5b50610462610584366004612541565b610f7d565b34801561059557600080fd5b506103b261103f565b3480156105aa57600080fd5b506103b260135481565b3480156105c057600080fd5b506104626105cf36600461247a565b6000546001600160a01b0391821691161490565b3480156105ef57600080fd5b50604051600481526020016103bc565b34801561060b57600080fd5b506103e561061a3660046126ba565b611091565b34801561062b57600080fd5b5061046261063a36600461247a565b6110fa565b34801561064b57600080fd5b506103e561065a366004612662565b611108565b34801561066b57600080fd5b506103e561067a366004612582565b611145565b34801561068b57600080fd5b506103b260125481565b3480156106a157600080fd5b506103b260115481565b3480156106b757600080fd5b5060215461046290600160a81b900460ff1681565b3480156106d857600080fd5b506104626106e736600461247a565b600d6020526000908152604090205460ff1681565b34801561070857600080fd5b506103b261071736600461247a565b6001600160a01b031660009081526008602052604090205490565b34801561073e57600080fd5b506103b260075481565b34801561075457600080fd5b506103b260065481565b34801561076a57600080fd5b506103e56107793660046126ba565b611195565b34801561078a57600080fd5b506103e56107993660046126ba565b6111fd565b3480156107aa57600080fd5b506103e56107b936600461273c565b611245565b3480156107ca57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103bc565b3480156107fc57600080fd5b50600a546104629060ff1681565b34801561081657600080fd5b506103e56108253660046125dc565b611306565b34801561083657600080fd5b506040805180820190915260058152644c6f74746f60d81b6020820152610435565b34801561086457600080fd5b506103b260105481565b34801561087a57600080fd5b506104626108893660046125b0565b61139a565b34801561089a57600080fd5b506021546107d8906001600160a01b031681565b3480156108ba57600080fd5b506104626108c93660046125b0565b6114c4565b3480156108da57600080fd5b50600c546104629060ff1681565b3480156108f457600080fd5b506103e561090336600461247a565b6114d1565b34801561091457600080fd5b506018546107d8906001600160a01b031681565b34801561093457600080fd5b506103b26109433660046126ba565b611522565b34801561095457600080fd5b506103b2610963366004612497565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561099a57600080fd5b506103e56109a936600461269c565b611563565b3480156109ba57600080fd5b50601c546107d8906001600160a01b031681565b3480156109da57600080fd5b506019546107d8906001600160a01b031681565b3480156109fa57600080fd5b506103e5610a09366004612662565b6115aa565b348015610a1a57600080fd5b506103e5610a293660046126ba565b6115e7565b348015610a3a57600080fd5b50610462610a4936600461247a565b600b6020526000908152604090205460ff1681565b348015610a6a57600080fd5b506103e5610a7936600461247a565b61167c565b348015610a8a57600080fd5b506103e5610a9936600461247a565b6116c7565b348015610aaa57600080fd5b506103e5610ab9366004612582565b61175d565b348015610aca57600080fd5b50601f546107d8906001600160a01b031681565b348015610aea57600080fd5b506103b260145481565b348015610b0057600080fd5b50610462610b0f36600461247a565b6117ad565b348015610b2057600080fd5b506103b260175481565b610b33336117ad565b610b585760405162461bcd60e51b8152600401610b4f906127f4565b60405180910390fd5b47336108fc6064610b6985856128c4565b610b7391906128a2565b6040518115909202916000818181858888f19350505050158015610b9b573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610bca5760405162461bcd60e51b8152600401610b4f906127d4565b60005b82811015610c395781600d6000868685818110610bec57610bec61292b565b9050602002016020810190610c01919061247a565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610c32816128fa565b9050610bcd565b50505050565b600080546001600160a01b03163314610c6a5760405162461bcd60e51b8152600401610b4f906127d4565b6103e8821115610ccf5760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610b4f565b6021546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a082319060240160206040518083038186803b158015610d1557600080fd5b505afa158015610d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4d91906126d3565b90506000610d67612710610d6184876117cb565b9061184a565b90508015610dff57602154600354610d8c916001600160a01b0390811691168361188c565b50602060009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610ddd57600080fd5b505af1158015610df1573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e649086815260200190565b60405180910390a35060015b92915050565b600082610e8283611522565b119392505050565b610e93336117ad565b610eaf5760405162461bcd60e51b8152600401610b4f906127f4565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601c80548416918516919091179055601b80549092169216919091179055565b6000546001600160a01b03163314610f385760405162461bcd60e51b8152600401610b4f906127d4565b6021805460ff60a01b1916600160a01b179055565b610f56336117ad565b610f725760405162461bcd60e51b8152600401610b4f906127f4565b601d91909155601e55565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461102a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054611005918490611960565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61103584848461199a565b90505b9392505050565b6004546001600160a01b031660009081526008602052604081205461108c906003546001600160a01b03166000908152600860205260409020546110869060055490611d60565b90611d60565b905090565b6000546001600160a01b031633146110bb5760405162461bcd60e51b8152600401610b4f906127d4565b6103e86005546110cb91906128a2565b60065410156110d957600080fd5b6103e8816005546110ea91906128c4565b6110f491906128a2565b60065550565b6000610e7082600019610e09565b6000546001600160a01b031633146111325760405162461bcd60e51b8152600401610b4f906127d4565b600a805460ff1916911515919091179055565b61114e336117ad565b61116a5760405162461bcd60e51b8152600401610b4f906127f4565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111bf5760405162461bcd60e51b8152600401610b4f906127d4565b6103e86005546111cf91906128a2565b60075410156111dd57600080fd5b6064816005546111ed91906128c4565b6111f791906128a2565b60075550565b611206336117ad565b6112225760405162461bcd60e51b8152600401610b4f906127f4565b6103e860055461123291906128a2565b600654101561124057600080fd5b600655565b61124e336117ad565b61126a5760405162461bcd60e51b8152600401610b4f906127f4565b6010869055601385905560118490556012839055601482905561129b82611295858188818c8c611da2565b90611da2565b60155560168190556112ae6002826128a2565b601554106112fe5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610b4f565b505050505050565b61130f336117ad565b61132b5760405162461bcd60e51b8152600401610b4f906127f4565b60005b82811015610c395781600b600086868581811061134d5761134d61292b565b9050602002016020810190611362919061247a565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611393816128fa565b905061132e565b600080546001600160a01b031633146113c55760405162461bcd60e51b8152600401610b4f906127d4565b81611444576040516370a0823160e01b81523060048201526001600160a01b038416906370a082319060240160206040518083038186803b15801561140957600080fd5b505afa15801561141d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144191906126d3565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b15801561148c57600080fd5b505af11580156114a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611038919061267f565b600061103833848461199a565b6000546001600160a01b031633146114fb5760405162461bcd60e51b8152600401610b4f906127d4565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000610e7061152f61103f565b6021546001600160a01b0316600090815260086020526040902054610d619061155c906002905b906117cb565b85906117cb565b61156c336117ad565b6115885760405162461bcd60e51b8152600401610b4f906127f4565b60218054921515600160a81b0260ff60a81b1990931692909217909155602255565b6000546001600160a01b031633146115d45760405162461bcd60e51b8152600401610b4f906127d4565b600c805460ff1916911515919091179055565b6115f0336117ad565b61160c5760405162461bcd60e51b8152600401610b4f906127f4565b603261162a6064610d616017546015546117cb90919063ffffffff16565b106116775760405162461bcd60e51b815260206004820181905260248201527f53656c6c205461782063616e6e6f74206265206d6f7265207468616e203530256044820152606401610b4f565b601755565b6000546001600160a01b031633146116a65760405162461bcd60e51b8152600401610b4f906127d4565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146116f15760405162461bcd60e51b8152600401610b4f906127d4565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611766336117ad565b6117825760405162461bcd60e51b8152600401610b4f906127f4565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6000826117da57506000610e70565b60006117e683856128c4565b9050826117f385836128a2565b146110385760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b4f565b600061103883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e01565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546118dd918490611960565b6001600160a01b03808616600090815260086020526040808220939093559085168152205461190c9083611da2565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206129688339815191529061194e9086815260200190565b60405180910390a35060019392505050565b600081848411156119845760405162461bcd60e51b8152600401610b4f919061277f565b50600061199184866128e3565b95945050505050565b60235460009060ff16156119ba576119b384848461188c565b9050611038565b6001600160a01b03841660009081526001602052604090205460ff161580156119fc57506001600160a01b03831660009081526001602052604090205460ff16155b15611a5157602154600160a01b900460ff16611a515760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610b4f565b600a5460ff1615611ab3576001600160a01b0384166000908152600b602052604090205460ff1615611ab35760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b6044820152606401610b4f565b6001600160a01b03841660009081526001602052604090205460ff16158015611ae557506001600160a01b0383163014155b8015611aff57506003546001600160a01b03848116911614155b8015611b1957506021546001600160a01b03848116911614155b8015611b335750601c546001600160a01b03848116911614155b8015611b5857506001600160a01b0383166000908152600f602052604090205460ff16155b15611bf9576001600160a01b038316600090815260086020526040902054600754611b83848361288a565b1115611bf75760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610b4f565b505b611c038483611e2f565b611c0b611e9c565b15611c1857611c18611ef2565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611c6a918490611960565b6001600160a01b038516600090815260086020908152604080832093909355600e90529081205460ff16151580611cbb57506001600160a01b0384166000908152600e602052604090205460ff1615155b611ce357602154611cde90869085906001600160a01b03888116911614876122e8565b611ce5565b825b6001600160a01b038516600090815260086020526040902054909150611d0b9082611da2565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061296883398151915290611d4d9085815260200190565b60405180910390a3506001949350505050565b600061103883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611960565b600080611daf838561288a565b9050838110156110385760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b4f565b60008183611e225760405162461bcd60e51b8152600401610b4f919061277f565b50600061199184866128a2565b60065481111580611e5857506001600160a01b0382166000908152600f602052604090205460ff165b611e985760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610b4f565b5050565b6021546000906001600160a01b03163314801590611ebd575060235460ff16155b8015611ed25750602154600160a81b900460ff165b801561108c57505060225430600090815260086020526040902054101590565b6023805460ff19166001179055601d54601e54600091611f1191610e76565b611f1d57601054611f20565b60005b90506000611f446002610d61601554610d61866022546117cb90919063ffffffff16565b90506000611f5d82602254611d6090919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611f9757611f9761292b565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611fc857611fc861292b565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b81524792919091169063791ac94790612012908690600090879030904290600401612819565b600060405180830381600087803b15801561202c57600080fd5b505af1158015612040573d6000803e3d6000fd5b5050505060006120598247611d6090919063ffffffff16565b9050600061207461206b88600261184a565b60155490611d60565b905060006120896002610d618481878d6117cb565b905060006120a683610d61601154876117cb90919063ffffffff16565b905060006120c384610d61601354886117cb90919063ffffffff16565b905060006120e085610d61601254896117cb90919063ffffffff16565b6019546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114612132576040519150601f19603f3d011682016040523d82523d6000602084013e612137565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114612187576040519150601f19603f3d011682016040523d82523d6000602084013e61218c565b606091505b5050601b546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146121dc576040519150601f19603f3d011682016040523d82523d6000602084013e6121e1565b606091505b5060009250508b1590506122d057601f5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b15801561225a57600080fd5b505af115801561226e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612293919061270e565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b600080836122f75760646122fb565b6017545b600c5490915060ff16801561232957506001600160a01b0383166000908152600d602052604090205460ff16155b8015612333575083155b1561233d57506103845b600061236a601654606461235191906128c4565b610d61846115566015548b6117cb90919063ffffffff16565b90506000612389601554610d61601454856117cb90919063ffffffff16565b905060006123978383611d60565b306000908152600860205260409020549091506123b49082611da2565b3060009081526008602052604080822092909255601c546001600160a01b0316815220546123e29083611da2565b601c546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918c1691600080516020612968833981519152910160405180910390a3811561246357601c546040518381526001600160a01b03918216918b16906000805160206129688339815191529060200160405180910390a35b61246d8884611d60565b9998505050505050505050565b60006020828403121561248c57600080fd5b813561103881612941565b600080604083850312156124aa57600080fd5b82356124b581612941565b915060208301356124c581612941565b809150509250929050565b600080600080600060a086880312156124e857600080fd5b85356124f381612941565b9450602086013561250381612941565b9350604086013561251381612941565b9250606086013561252381612941565b9150608086013561253381612941565b809150509295509295909350565b60008060006060848603121561255657600080fd5b833561256181612941565b9250602084013561257181612941565b929592945050506040919091013590565b6000806040838503121561259557600080fd5b82356125a081612941565b915060208301356124c581612959565b600080604083850312156125c357600080fd5b82356125ce81612941565b946020939093013593505050565b6000806000604084860312156125f157600080fd5b833567ffffffffffffffff8082111561260957600080fd5b818601915086601f83011261261d57600080fd5b81358181111561262c57600080fd5b8760208260051b850101111561264157600080fd5b6020928301955093505084013561265781612959565b809150509250925092565b60006020828403121561267457600080fd5b813561103881612959565b60006020828403121561269157600080fd5b815161103881612959565b600080604083850312156126af57600080fd5b82356125ce81612959565b6000602082840312156126cc57600080fd5b5035919050565b6000602082840312156126e557600080fd5b5051919050565b600080604083850312156126ff57600080fd5b50508035926020909101359150565b60008060006060848603121561272357600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c0878903121561275557600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b818110156127ac57858101830151858201604001528201612790565b818111156127be576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128695784516001600160a01b031683529383019391830191600101612844565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561289d5761289d612915565b500190565b6000826128bf57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156128de576128de612915565b500290565b6000828210156128f5576128f5612915565b500390565b600060001982141561290e5761290e612915565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461295657600080fd5b50565b801515811461295657600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e5c008b3e4c5175fb283dbae5ebe539970e246d5096a3b75ddffcf6b698ae79c64736f6c63430008070033

Deployed Bytecode Sourcemap

4843:14615:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6643:54;;;;;;;;;;;;;;;;;;;12654:25:1;;;12642:2;12627:18;6643:54:0;;;;;;;;13391:208;;;;;;;;;;-1:-1:-1;13391:208:0;;;;;:::i;:::-;;:::i;:::-;;16549:204;;;;;;;;;;-1:-1:-1;16549:204:0;;;;;:::i;:::-;;:::i;8256:80::-;;;;;;;;;;-1:-1:-1;8328:5:0;;;;;;;;;;;;-1:-1:-1;;;8328:5:0;;;;8256:80;;;;;;;:::i;18894:494::-;;;;;;;;;;-1:-1:-1;18894:494:0;;;;;:::i;:::-;;:::i;:::-;;;7626:14:1;;7619:22;7601:41;;7589:2;7574:18;18894:494:0;7461:187:1;6562:31:0;;;;;;;;;;-1:-1:-1;6562:31:0;;;;-1:-1:-1;;;6562:31:0;;;;;;8678:216;;;;;;;;;;-1:-1:-1;8678:216:0;;;;;:::i;:::-;;:::i;18734:150::-;;;;;;;;;;-1:-1:-1;18734:150:0;;;;;:::i;:::-;;:::i;6085:36::-;;;;;;;;;;;;;;;;7986:88;;;;;;;;;;-1:-1:-1;8059:12:0;;7986:88;;17601:441;;;;;;;;;;-1:-1:-1;17601:441:0;;;;;:::i;:::-;;:::i;14154:79::-;;;;;;;;;;;;;:::i;5988:90::-;;;;;;;;;;;;;;;;18214:183;;;;;;;;;;-1:-1:-1;18214:183:0;;;;;:::i;:::-;;:::i;9196:370::-;;;;;;;;;;-1:-1:-1;9196:370:0;;;;;:::i;:::-;;:::i;18409:142::-;;;;;;;;;;;;;:::i;5905:34::-;;;;;;;;;;;;;;;;2851:103;;;;;;;;;;-1:-1:-1;2851:103:0;;;;;:::i;:::-;2906:4;2941:5;-1:-1:-1;;;;;2930:16:0;;;2941:5;;2930:16;;2851:103;8080:80;;;;;;;;;;-1:-1:-1;8080:80:0;;5176:1;14070:36:1;;14058:2;14043:18;8080:80:0;13928:184:1;9811:227:0;;;;;;;;;;-1:-1:-1;9811:227:0;;;;;:::i;:::-;;:::i;8902:122::-;;;;;;;;;;-1:-1:-1;8902:122:0;;;;;:::i;:::-;;:::i;16120:99::-;;;;;;;;;;-1:-1:-1;16120:99:0;;;;;:::i;:::-;;:::i;16761:120::-;;;;;;;;;;-1:-1:-1;16761:120:0;;;;;:::i;:::-;;:::i;5864:34::-;;;;;;;;;;;;;;;;5823;;;;;;;;;;;;;;;;6606:30;;;;;;;;;;-1:-1:-1;6606:30:0;;;;-1:-1:-1;;;6606:30:0;;;;;;5636:43;;;;;;;;;;-1:-1:-1;5636:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8426:105;;;;;;;;;;-1:-1:-1;8426:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8510:18:0;8492:7;8510:18;;;:9;:18;;;;;;;8426:105;5315:61;;;;;;;;;;;;;;;;5244:58;;;;;;;;;;;;;;;;9578:225;;;;;;;;;;-1:-1:-1;9578:225:0;;;;;:::i;:::-;;:::i;10052:159::-;;;;;;;;;;-1:-1:-1;10052:159:0;;;;;:::i;:::-;;:::i;17025:568::-;;;;;;;;;;-1:-1:-1;17025:568:0;;;;;:::i;:::-;;:::i;8342:78::-;;;;;;;;;;-1:-1:-1;8394:7:0;8412:5;-1:-1:-1;;;;;8412:5:0;8342:78;;;-1:-1:-1;;;;;6310:32:1;;;6292:51;;6280:2;6265:18;8342:78:0;6146:203:1;5506:32:0;;;;;;;;;;-1:-1:-1;5506:32:0;;;;;;;;16330:211;;;;;;;;;;-1:-1:-1;16330:211:0;;;;;:::i;:::-;;:::i;8166:84::-;;;;;;;;;;-1:-1:-1;8240:7:0;;;;;;;;;;;;-1:-1:-1;;;8240:7:0;;;;8166:84;;5782:34;;;;;;;;;;;;;;;;13607:271;;;;;;;;;;-1:-1:-1;13607:271:0;;;;;:::i;:::-;;:::i;6530:19::-;;;;;;;;;;-1:-1:-1;6530:19:0;;;;-1:-1:-1;;;;;6530:19:0;;;9032:156;;;;;;;;;;-1:-1:-1;9032:156:0;;;;;:::i;:::-;;:::i;5600:29::-;;;;;;;;;;-1:-1:-1;5600:29:0;;;;;;;;2644:94;;;;;;;;;;-1:-1:-1;2644:94:0;;;;;:::i;:::-;;:::i;6176:36::-;;;;;;;;;;-1:-1:-1;6176:36:0;;;;-1:-1:-1;;;;;6176:36:0;;;18559:167;;;;;;;;;;-1:-1:-1;18559:167:0;;;;;:::i;:::-;;:::i;8537:133::-;;;;;;;;;;-1:-1:-1;8537:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8639:19:0;;;8621:7;8639:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8537:133;18050:156;;;;;;;;;;-1:-1:-1;18050:156:0;;;;;:::i;:::-;;:::i;6337:30::-;;;;;;;;;;-1:-1:-1;6337:30:0;;;;-1:-1:-1;;;;;6337:30:0;;;6219:35;;;;;;;;;;-1:-1:-1;6219:35:0;;;;-1:-1:-1;;;;;6219:35:0;;;16227:95;;;;;;;;;;-1:-1:-1;16227:95:0;;;;;:::i;:::-;;:::i;13886:237::-;;;;;;;;;;-1:-1:-1;13886:237:0;;;;;:::i;:::-;;:::i;5545:46::-;;;;;;;;;;-1:-1:-1;5545:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2746:97;;;;;;;;;;-1:-1:-1;2746:97:0;;;;;:::i;:::-;;:::i;3077:173::-;;;;;;;;;;-1:-1:-1;3077:173:0;;;;;:::i;:::-;;:::i;16889:128::-;;;;;;;;;;-1:-1:-1;16889:128:0;;;;;:::i;:::-;;:::i;6460:24::-;;;;;;;;;;-1:-1:-1;6460:24:0;;;;-1:-1:-1;;;;;6460:24:0;;;5947:34;;;;;;;;;;;;;;;;2962:107;;;;;;;;;;-1:-1:-1;2962:107:0;;;;;:::i;:::-;;:::i;6130:36::-;;;;;;;;;;;;;;;;13391:208;2585:24;2598:10;2585:12;:24::i;:::-;2577:48;;;;-1:-1:-1;;;2577:48:0;;;;;;;:::i;:::-;;;;;;;;;13495:21:::1;13535:10;13527:64;13587:3;13556:28;13568:16:::0;13495:21;13556:28:::1;:::i;:::-;:34;;;;:::i;:::-;13527:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13464:135;13391:208:::0;:::o;16549:204::-;2906:4;2941:5;-1:-1:-1;;;;;2941:5:0;2503:10;2930:16;2487:38;;;;-1:-1:-1;;;2487:38:0;;;;;;;:::i;:::-;16648:9:::1;16643:103;16659:20:::0;;::::1;16643:103;;;16728:6;16701:10;:24;16712:9;;16722:1;16712:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16701:24:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16701:24:0;:33;;-1:-1:-1;;16701:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16681:3:::1;::::0;::::1;:::i;:::-;;;16643:103;;;;16549:204:::0;;;:::o;18894:494::-;18969:4;2941:5;;-1:-1:-1;;;;;2941:5:0;2503:10;2930:16;2487:38;;;;-1:-1:-1;;;2487:38:0;;;;;;;:::i;:::-;19014:4:::1;18993:17;:25;;18985:80;;;::::0;-1:-1:-1;;;18985:80:0;;11285:2:1;18985:80:0::1;::::0;::::1;11267:21:1::0;11324:2;11304:18;;;11297:30;11363:34;11343:18;;;11336:62;-1:-1:-1;;;11414:18:1;;;11407:40;11464:19;;18985:80:0::1;11083:406:1::0;18985:80:0::1;19117:4;::::0;19102:20:::1;::::0;-1:-1:-1;;;19102:20:0;;-1:-1:-1;;;;;19117:4:0;;::::1;19102:20;::::0;::::1;6292:51:1::0;19082:17:0::1;::::0;19102:4:::1;::::0;:14:::1;::::0;6265:18:1;;19102:20:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19082:40:::0;-1:-1:-1;19133:15:0::1;19151:43;19188:5;19151:32;19082:40:::0;19165:17;19151:13:::1;:32::i;:::-;:36:::0;::::1;:43::i;:::-;19133:61:::0;-1:-1:-1;19219:11:0;;19215:136:::1;;19261:4;::::0;19266::::1;::::0;19246:33:::1;::::0;-1:-1:-1;;;;;19261:4:0;;::::1;::::0;19266::::1;19271:7:::0;19246:14:::1;:33::i;:::-;;19294:12;;;;;;;;;-1:-1:-1::0;;;;;19294:12:0::1;-1:-1:-1::0;;;;;19294:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;19335:4:0::1;::::0;18894:494;-1:-1:-1;;;;;;;18894:494:0:o;19215:136::-:1;-1:-1:-1::0;19378:5:0::1;::::0;18894:494;-1:-1:-1;;;18894:494:0:o;8678:216::-;8782:10;8753:4;8770:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8770:32:0;;;;;;;;;;:41;;;8827:37;8753:4;;8770:32;;8827:37;;;;8805:6;12654:25:1;;12642:2;12627:18;;12508:177;8827:37:0;;;;;;;;-1:-1:-1;8882:4:0;8678:216;;;;;:::o;18734:150::-;18814:4;18870:6;18838:29;18858:8;18838:19;:29::i;:::-;:38;;18734:150;-1:-1:-1;;;18734:150:0:o;17601:441::-;2585:24;2598:10;2585:12;:24::i;:::-;2577:48;;;;-1:-1:-1;;;2577:48:0;;;;;;;:::i;:::-;17798:21:::1;:46:::0;;-1:-1:-1;;;;;;17798:46:0;;::::1;-1:-1:-1::0;;;;;17798:46:0;;::::1;;::::0;;;17855:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17910:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17953:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;17998:16:::1;:36:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17601:441::o;14154:79::-;2906:4;2941:5;-1:-1:-1;;;;;2941:5:0;2503:10;2930:16;2487:38;;;;-1:-1:-1;;;2487:38:0;;;;;;;:::i;:::-;14207:11:::1;:18:::0;;-1:-1:-1;;;;14207:18:0::1;-1:-1:-1::0;;;14207:18:0::1;::::0;;14154:79::o;18214:183::-;2585:24;2598:10;2585:12;:24::i;:::-;2577:48;;;;-1:-1:-1;;;2577:48:0;;;;;;;:::i;:::-;18312:15:::1;:25:::0;;;;18348:26:::1;:41:::0;18214:183::o;9196:370::-;-1:-1:-1;;;;;9316:19:0;;9296:4;9316:19;;;:11;:19;;;;;;;;9336:10;9316:31;;;;;;;;-1:-1:-1;;9316:52:0;9313:186;;9418:69;;;;;;;;;;;-1:-1:-1;;;9418:69:0;;;;;;;;-1:-1:-1;;;;;9418:19:0;;-1:-1:-1;9418:19:0;;;:11;:19;;;;;9438:10;9418:31;;;;;;;;;;:69;;9454:6;;9418:35;:69::i;:::-;-1:-1:-1;;;;;9384:19:0;;;;;;:11;:19;;;;;;;;9404:10;9384:31;;;;;;;:103;9313:186;9518:40;9532:6;9540:9;9551:6;9518:13;:40::i;:::-;9511:47;;9196:370;;;;;;:::o;18409:142::-;18537:4;;-1:-1:-1;;;;;18537:4:0;18462:7;8510:18;;;:9;:18;;;;;;18489:54;;18516:4;;-1:-1:-1;;;;;18516:4:0;8492:7;8510:18;;;:9;:18;;;;;;18489:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18482:61;;18409:142;:::o;9811:227::-;2906:4;2941:5;-1:-1:-1;;;;;2941:5:0;2503:10;2930:16;2487:38;;;;-1:-1:-1;;;2487:38:0;;;;;;;:::i;:::-;9929:4:::1;9914:12;;:19;;;;:::i;:::-;9898:12;;:35;;9890:44;;;::::0;::::1;;10026:4;10009:12;9994;;:27;;;;:::i;:::-;9993:37;;;;:::i;:::-;9978:12;:52:::0;-1:-1:-1;9811:227:0:o;8902:122::-;8957:4;8981:35;8989:7;-1:-1:-1;;8981:7:0;:35::i;16120:99::-;2906:4;2941:5;-1:-1:-1;;;;;2941:5:0;2503:10;2930:16;2487:38;;;;-1:-1:-1;;;2487:38:0;;;;;;;:::i;:::-;16188:13:::1;:23:::0;;-1:-1:-1;;16188:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16120:99::o;16761:120::-;2585:24;2598:10;2585:12;:24::i;:::-;2577:48;;;;-1:-1:-1;;;2577:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16845:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;16845:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16761:120::o;9578:225::-;2906:4;2941:5;-1:-1:-1;;;;;2941:5:0;2503:10;2930:16;2487:38;;;;-1:-1:-1;;;2487:38:0;;;;;;;:::i;:::-;9705:4:::1;9690:12;;:19;;;;:::i;:::-;9671:15;;:38;;9663:47;;;::::0;::::1;;9774:3;9755:14;9740:12;;:29;;;;:::i;:::-;9739:38;;;;:::i;:::-;9721:15;:56:::0;-1:-1:-1;9578:225:0:o;10052:159::-;2585:24;2598:10;2585:12;:24::i;:::-;2577:48;;;;-1:-1:-1;;;2577:48:0;;;;;;;:::i;:::-;10166:4:::1;10151:12;;:19;;;;:::i;:::-;10135:12;;:35;;10127:44;;;::::0;::::1;;10182:12;:21:::0;10052:159::o;17025:568::-;2585:24;2598:10;2585:12;:24::i;:::-;2577:48;;;;-1:-1:-1;;;2577:48:0;;;;;;;:::i;:::-;17198:12:::1;:28:::0;;;17237:8:::1;:20:::0;;;17268:12:::1;:28:::0;;;17307:6:::1;:16:::0;;;17334:7:::1;:18:::0;;;17374:74:::1;17344:8:::0;17374:60:::1;17316:7:::0;17374:60;17283:13;17374:60;17213:13;17248:9;17374:17:::1;:28::i;:::-;:32:::0;::::1;:47::i;:74::-;17363:8;:85:::0;17459:14:::1;:32:::0;;;17521:16:::1;17536:1;17476:15:::0;17521:16:::1;:::i;:::-;17510:8;;:27;17502:68;;;::::0;-1:-1:-1;;;17502:68:0;;9029:2:1;17502:68:0::1;::::0;::::1;9011:21:1::0;9068:2;9048:18;;;9041:30;9107;9087:18;;;9080:58;9155:18;;17502:68:0::1;8827:352:1::0;17502:68:0::1;17025:568:::0;;;;;;:::o;16330:211::-;2585:24;2598:10;2585:12;:24::i;:::-;2577:48;;;;-1:-1:-1;;;2577:48:0;;;;;;;:::i;:::-;16433:9:::1;16428:106;16444:20:::0;;::::1;16428:106;;;16516:6;16486:13;:27;16500:9;;16510:1;16500:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16486:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16486:27:0;:36;;-1:-1:-1;;16486:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16466:3:::1;::::0;::::1;:::i;:::-;;;16428:106;;13607:271:::0;13696:4;2941:5;;-1:-1:-1;;;;;2941:5:0;2503:10;2930:16;2487:38;;;;-1:-1:-1;;;2487:38:0;;;;;;;:::i;:::-;13713:11;13710:95:::1;;13749:44;::::0;-1:-1:-1;;;13749:44:0;;13787:4:::1;13749:44;::::0;::::1;6292:51:1::0;-1:-1:-1;;;;;13749:29:0;::::1;::::0;::::1;::::0;6265:18:1;;13749:44:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13740:53;;13710:95;13822:48;::::0;-1:-1:-1;;;13822:48:0;;13851:10:::1;13822:48;::::0;::::1;6744:51:1::0;6811:18;;;6804:34;;;-1:-1:-1;;;;;13822:28:0;::::1;::::0;::::1;::::0;6717:18:1;;13822:48:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9032:156::-:0;9112:4;9136:44;9150:10;9162:9;9173:6;9136:13;:44::i;2644:94::-;2906:4;2941:5;-1:-1:-1;;;;;2941:5:0;2503:10;2930:16;2487:38;;;;-1:-1:-1;;;2487:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2704:19:0::1;;::::0;;;2726:4:::1;2704:19;::::0;;;;;;;:26;;-1:-1:-1;;2704:26:0::1;::::0;;::::1;::::0;;2644:94::o;18559:167::-;18627:7;18654:64;18695:22;:20;:22::i;:::-;18677:4;;-1:-1:-1;;;;;18677:4:0;8492:7;8510:18;;;:9;:18;;;;;;18654:36;;18667:22;;18687:1;;18667:15;:19;;:22::i;:::-;18654:8;;:12;:36::i;18050:156::-;2585:24;2598:10;2585:12;:24::i;:::-;2577:48;;;;-1:-1:-1;;;2577:48:0;;;;;;;:::i;:::-;18142:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18142:22:0::1;-1:-1:-1::0;;;;18142:22:0;;::::1;::::0;;;::::1;::::0;;;18175:13:::1;:23:::0;18050:156::o;16227:95::-;2906:4;2941:5;-1:-1:-1;;;;;2941:5:0;2503:10;2930:16;2487:38;;;;-1:-1:-1;;;2487:38:0;;;;;;;:::i;:::-;16292:10:::1;:20:::0;;-1:-1:-1;;16292:20:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16227:95::o;13886:237::-;2585:24;2598:10;2585:12;:24::i;:::-;2577:48;;;;-1:-1:-1;;;2577:48:0;;;;;;;:::i;:::-;14014:2:::1;13974:37;14007:3;13974:28;13987:14;;13974:8;;:12;;:28;;;;:::i;:37::-;:42;13966:87;;;::::0;-1:-1:-1;;;13966:87:0;;9742:2:1;13966:87:0::1;::::0;::::1;9724:21:1::0;;;9761:18;;;9754:30;9820:34;9800:18;;;9793:62;9872:18;;13966:87:0::1;9540:356:1::0;13966:87:0::1;14079:14;:28:::0;13886:237::o;2746:97::-;2906:4;2941:5;-1:-1:-1;;;;;2941:5:0;2503:10;2930:16;2487:38;;;;-1:-1:-1;;;2487:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2808:19:0::1;2830:5;2808:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2808:27:0::1;::::0;;2746:97::o;3077:173::-;2906:4;2941:5;-1:-1:-1;;;;;2941:5:0;2503:10;2930:16;2487:38;;;;-1:-1:-1;;;2487:38:0;;;;;;;:::i;:::-;3153:5:::1;:11:::0;;-1:-1:-1;;;;;;3153:11:0::1;-1:-1:-1::0;;;;;3153:11:0;::::1;::::0;;::::1;::::0;;3175:19;;;-1:-1:-1;3175:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3175:26:0::1;::::0;;::::1;::::0;;;3217:25;;6292:51:1;;;3217:25:0::1;::::0;6265:18:1;3217:25:0::1;;;;;;;3077:173:::0;:::o;16889:128::-;2585:24;2598:10;2585:12;:24::i;:::-;2577:48;;;;-1:-1:-1;;;2577:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16977:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;16977:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16889:128::o;2962:107::-;-1:-1:-1;;;;;3042:19:0;3018:4;3042:19;;;:14;:19;;;;;;;;;2962:107::o;726:250::-;784:7;808:6;804:47;;-1:-1:-1;838:1:0;831:8;;804:47;863:9;875:5;879:1;875;:5;:::i;:::-;863:17;-1:-1:-1;908:1:0;899:5;903:1;863:17;899:5;:::i;:::-;:10;891:56;;;;-1:-1:-1;;;891:56:0;;10452:2:1;891:56:0;;;10434:21:1;10491:2;10471:18;;;10464:30;10530:34;10510:18;;;10503:62;-1:-1:-1;;;10581:18:1;;;10574:31;10622:19;;891:56:0;10250:397:1;982:132:0;1040:7;1067:39;1071:1;1074;1067:39;;;;;;;;;;;;;;;;;:3;:39::i;11642:330::-;11772:53;;;;;;;;;;;-1:-1:-1;;;11772:53:0;;;;;;;;-1:-1:-1;;;;;11772:17:0;;11735:4;11772:17;;;:9;:17;;;;;;;:53;;11794:6;;11772:21;:53::i;:::-;-1:-1:-1;;;;;11752:17:0;;;;;;;:9;:17;;;;;;:73;;;;11859:20;;;;;;;:32;;11884:6;11859:24;:32::i;:::-;-1:-1:-1;;;;;11836:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11907:35;;;;;;-1:-1:-1;;;;;;;;;;;11907:35:0;;;11935:6;12654:25:1;;12642:2;12627:18;;12508:177;11907:35:0;;;;;;;;-1:-1:-1;11960:4:0;11642:330;;;;;:::o;528:192::-;614:7;650:12;642:6;;;;634:29;;;;-1:-1:-1;;;634:29:0;;;;;;;;:::i;:::-;-1:-1:-1;674:9:0;686:5;690:1;686;:5;:::i;:::-;674:17;528:192;-1:-1:-1;;;;;528:192:0:o;10219:1411::-;10331:6;;10311:4;;10331:6;;10328:63;;;10347:41;10362:6;10370:9;10381:6;10347:14;:41::i;:::-;10340:48;;;;10328:63;-1:-1:-1;;;;;10407:22:0;;;;;;:14;:22;;;;;;;;10406:23;:53;;;;-1:-1:-1;;;;;;10434:25:0;;;;;;:14;:25;;;;;;;;10433:26;10406:53;10403:129;;;10483:11;;-1:-1:-1;;;10483:11:0;;;;10475:43;;;;-1:-1:-1;;;10475:43:0;;10103:2:1;10475:43:0;;;10085:21:1;10142:2;10122:18;;;10115:30;-1:-1:-1;;;10161:18:1;;;10154:50;10221:18;;10475:43:0;9901:344:1;10475:43:0;10584:13;;;;10581:93;;;-1:-1:-1;;;;;10622:21:0;;;;;;:13;:21;;;;;;;;10621:22;10613:45;;;;-1:-1:-1;;;10613:45:0;;12030:2:1;10613:45:0;;;12012:21:1;12069:2;12049:18;;;12042:30;-1:-1:-1;;;12088:18:1;;;12081:41;12139:18;;10613:45:0;11828:335:1;10613:45:0;-1:-1:-1;;;;;10691:22:0;;;;;;:14;:22;;;;;;;;10690:23;:53;;;;-1:-1:-1;;;;;;10717:26:0;;10738:4;10717:26;;10690:53;:84;;;;-1:-1:-1;10769:4:0;;-1:-1:-1;;;;;10748:26:0;;;10769:4;;10748:26;;10690:84;:105;;;;-1:-1:-1;10791:4:0;;-1:-1:-1;;;;;10778:17:0;;;10791:4;;10778:17;;10690:105;:137;;;;-1:-1:-1;10812:15:0;;-1:-1:-1;;;;;10799:28:0;;;10812:15;;10799:28;;10690:137;:168;;;;-1:-1:-1;;;;;;10832:26:0;;;;;;:15;:26;;;;;;;;10831:27;10690:168;10686:360;;;-1:-1:-1;;;;;8510:18:0;;10874;8510;;;:9;:18;;;;;;10963:15;;10939:19;10952:6;8510:18;10939:19;:::i;:::-;10938:40;;10930:114;;;;-1:-1:-1;;;10930:114:0;;10854:2:1;10930:114:0;;;10836:21:1;10893:2;10873:18;;;10866:30;10932:34;10912:18;;;10905:62;11003:32;10983:18;;;10976:60;11053:19;;10930:114:0;10652:426:1;10930:114:0;10859:187;10686:360;11099:28;11112:6;11120;11099:12;:28::i;:::-;11144:16;:14;:16::i;:::-;11141:35;;;11163:10;:8;:10::i;:::-;11256:53;;;;;;;;;;;-1:-1:-1;;;11256:53:0;;;;;;;;-1:-1:-1;;;;;11256:17:0;;-1:-1:-1;11256:17:0;;;:9;:17;;;;;;;;:53;;11278:6;;11256:21;:53::i;:::-;-1:-1:-1;;;;;11236:17:0;;;;;;:9;:17;;;;;;;;:73;;;;12241:11;:19;;;;;;;;12240:20;11348:22;:51;;;-1:-1:-1;;;;;;12241:19:0;;12216:4;12241:19;;;:11;:19;;;;;;;;12240:20;11374:25;11348:51;11347:118;;11449:4;;11412:53;;11420:6;;11428;;-1:-1:-1;;;;;11436:17:0;;;11449:4;;11436:17;:9;11412:7;:53::i;:::-;11347:118;;;11403:6;11347:118;-1:-1:-1;;;;;11499:20:0;;;;;;:9;:20;;;;;;11322:143;;-1:-1:-1;11499:40:0;;11322:143;11499:24;:40::i;:::-;-1:-1:-1;;;;;11476:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11557:43;;;;;;-1:-1:-1;;;;;;;;;;;11557:43:0;;;11585:14;12654:25:1;;12642:2;12627:18;;12508:177;11557:43:0;;;;;;;;-1:-1:-1;11618:4:0;;10219:1411;-1:-1:-1;;;;10219:1411:0:o;386:136::-;444:7;471:43;475:1;478;471:43;;;;;;;;;;;;;;;;;:3;:43::i;199:181::-;257:7;;289:5;293:1;289;:5;:::i;:::-;277:17;;318:1;313;:6;;305:46;;;;-1:-1:-1;;;305:46:0;;9386:2:1;305:46:0;;;9368:21:1;9425:2;9405:18;;;9398:30;9464:29;9444:18;;;9437:57;9511:18;;305:46:0;9184:351:1;1120:189:0;1206:7;1241:12;1234:5;1226:28;;;;-1:-1:-1;;;1226:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1265:9:0;1277:5;1281:1;1277;:5;:::i;11980:166::-;12077:12;;12067:6;:22;;:49;;;-1:-1:-1;;;;;;12093:23:0;;;;;;:15;:23;;;;;;;;12067:49;12059:79;;;;-1:-1:-1;;;12059:79:0;;8683:2:1;12059:79:0;;;8665:21:1;8722:2;8702:18;;;8695:30;-1:-1:-1;;;8741:18:1;;;8734:47;8798:18;;12059:79:0;8481:341:1;12059:79:0;11980:166;;:::o;13186:197::-;13273:4;;13235;;-1:-1:-1;;;;;13273:4:0;13259:10;:18;;;;:38;;-1:-1:-1;13291:6:0;;;;13290:7;13259:38;:62;;;;-1:-1:-1;13310:11:0;;-1:-1:-1;;;13310:11:0;;;;13259:62;:116;;;;-1:-1:-1;;13362:13:0;;13352:4;13334:24;;;;:9;:24;;;;;;:41;;;13186:197::o;14247:1865::-;6745:6;:13;;-1:-1:-1;;6745:13:0;6754:4;6745:13;;;14342:15:::1;::::0;14359:26:::1;::::0;6745:6;;14326:60:::1;::::0;:15:::1;:60::i;:::-;:79;;14393:12;;14326:79;;;14389:1;14326:79;14296:109;;14416:23;14442:59;14499:1;14442:52;14485:8;;14442:38;14460:19;14442:13;;:17;;:38;;;;:::i;:59::-;14416:85;;14512:20;14535:34;14553:15;14535:13;;:17;;:34;;;;:::i;:::-;14606:16;::::0;;14620:1:::1;14606:16:::0;;;;;::::1;::::0;;14512:57;;-1:-1:-1;14582:21:0::1;::::0;14606:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14606:16:0::1;14582:40;;14651:4;14633;14638:1;14633:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14633:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14677:4:::1;::::0;14667:7;;14677:4;::::1;::::0;14667;;14677;;14667:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14667:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14752:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14752:188:0;;14718:21:::1;::::0;14752:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14824:12;;14694:21:::1;::::0;14867:4;;14894::::1;::::0;14914:15:::1;::::0;14752:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14953:17;14973:40;14999:13;14973:21;:25;;:40;;;;:::i;:::-;14953:60:::0;-1:-1:-1;15026:19:0::1;15048:40;15061:26;:19:::0;15085:1:::1;15061:23;:26::i;:::-;15048:8;::::0;;:12:::1;:40::i;:::-;15026:62:::0;-1:-1:-1;15109:26:0::1;15138:58;15194:1;15138:51;15026:62:::0;15138:51;:9;15152:19;15138:13:::1;:34::i;:58::-;15109:87;;15207:26;15236:44;15268:11;15236:27;15250:12;;15236:9;:13;;:27;;;;:::i;:44::-;15207:73;;15291:22;15316:40;15344:11;15316:23;15330:8;;15316:9;:13;;:23;;;;:::i;:40::-;15291:65;;15367:20;15390:38;15416:11;15390:21;15404:6;;15390:9;:13;;:21;;;;:::i;:38::-;15470:20;::::0;15462:65:::1;::::0;15367:61;;-1:-1:-1;15442:15:0::1;::::0;-1:-1:-1;;;;;15470:20:0;;::::1;::::0;15504:18;;15442:15;15462:65;15442:15;15462:65;15504:18;15470:20;15462:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15562:14:0::1;::::0;15554:53:::1;::::0;15441:86;;-1:-1:-1;;;;;;15562:14:0::1;::::0;15590:12;;15554:53:::1;::::0;;;15590:12;15562:14;15554:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15642:16:0::1;::::0;15634:57:::1;::::0;15538:69;;-1:-1:-1;;;;;;15642:16:0::1;::::0;15672:14;;15634:57:::1;::::0;;;15672:14;15642:16;15634:57:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15725:5:0::1;::::0;-1:-1:-1;;15746:19:0;;;-1:-1:-1;15743:362:0::1;;15781:6;::::0;15955:21:::1;::::0;15781:244:::1;::::0;-1:-1:-1;;;15781:244:0;;15857:4:::1;15781:244;::::0;::::1;7190:34:1::0;7240:18;;;7233:34;;;15781:6:0::1;7283:18:1::0;;;7276:34;;;7326:18;;;7319:34;-1:-1:-1;;;;;15955:21:0;;::::1;7369:19:1::0;;;7362:44;15995:15:0::1;7422:19:1::0;;;7415:35;15781:6:0;::::1;::::0;:22:::1;::::0;15811:18;;7124:19:1;;15781:244:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16045:48:0::1;::::0;;13849:25:1;;;13905:2;13890:18;;13883:34;;;16045:48:0::1;::::0;-1:-1:-1;13822:18:1;16045:48:0::1;;;;;;;15743:362;-1:-1:-1::0;;6763:6:0;:14;;-1:-1:-1;;6763:14:0;;;-1:-1:-1;;;;;;;;;;14247:1865:0:o;12276:902::-;12374:7;12404:18;12425:6;:29;;12451:3;12425:29;;;12434:14;;12425:29;12468:10;;12404:50;;-1:-1:-1;12468:10:0;;:35;;;;-1:-1:-1;;;;;;12483:20:0;;;;;;:10;:20;;;;;;;;12482:21;12468:35;:46;;;;;12508:6;12507:7;12468:46;12465:93;;;-1:-1:-1;12543:3:0;12465:93;12570:17;12590:62;12631:14;;12648:3;12631:20;;;;:::i;:::-;12590:36;12615:10;12590:20;12601:8;;12590:6;:10;;:20;;;;:::i;:62::-;12570:82;;12663:18;12684:36;12711:8;;12684:22;12698:7;;12684:9;:13;;:22;;;;:::i;:36::-;12663:57;-1:-1:-1;12731:22:0;12756:25;:9;12663:57;12756:13;:25::i;:::-;12839:4;12821:24;;;;:9;:24;;;;;;12731:50;;-1:-1:-1;12821:44:0;;12731:50;12821:28;:44::i;:::-;12812:4;12794:24;;;;:9;:24;;;;;;:71;;;;12915:15;;-1:-1:-1;;;;;12915:15:0;12905:26;;;;:42;;12936:10;12905:30;:42::i;:::-;12886:15;;-1:-1:-1;;;;;12886:15:0;;;12876:26;;;;:9;:26;;;;;;;;;:71;;;;12963:47;12654:25:1;;;12988:4:0;;12963:47;;;;-1:-1:-1;;;;;;;;;;;12963:47:0;12627:18:1;12963:47:0;;;;;;;13034:14;;13031:99;;13086:15;;13069:45;;12654:25:1;;;-1:-1:-1;;;;;13086:15:0;;;;13069:45;;;-1:-1:-1;;;;;;;;;;;13069:45:0;12642:2:1;12627:18;13069:45:0;;;;;;;13031:99;13149:21;:6;13160:9;13149:10;:21::i;:::-;13142:28;12276:902;-1:-1:-1;;;;;;;;;12276:902:0:o;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;200:31;225:5;200:31;:::i;526:388::-;594:6;602;655:2;643:9;634:7;630:23;626:32;623:52;;;671:1;668;661:12;623:52;710:9;697:23;729:31;754:5;729:31;:::i;:::-;779:5;-1:-1:-1;836:2:1;821:18;;808:32;849:33;808:32;849:33;:::i;:::-;901:7;891:17;;;526:388;;;;;:::o;919:813::-;1014:6;1022;1030;1038;1046;1099:3;1087:9;1078:7;1074:23;1070:33;1067:53;;;1116:1;1113;1106:12;1067:53;1155:9;1142:23;1174:31;1199:5;1174:31;:::i;:::-;1224:5;-1:-1:-1;1281:2:1;1266:18;;1253:32;1294:33;1253:32;1294:33;:::i;:::-;1346:7;-1:-1:-1;1405:2:1;1390:18;;1377:32;1418:33;1377:32;1418:33;:::i;:::-;1470:7;-1:-1:-1;1529:2:1;1514:18;;1501:32;1542:33;1501:32;1542:33;:::i;:::-;1594:7;-1:-1:-1;1653:3:1;1638:19;;1625:33;1667;1625;1667;:::i;:::-;1719:7;1709:17;;;919:813;;;;;;;;:::o;1737:456::-;1814:6;1822;1830;1883:2;1871:9;1862:7;1858:23;1854:32;1851:52;;;1899:1;1896;1889:12;1851:52;1938:9;1925:23;1957:31;1982:5;1957:31;:::i;:::-;2007:5;-1:-1:-1;2064:2:1;2049:18;;2036:32;2077:33;2036:32;2077:33;:::i;:::-;1737:456;;2129:7;;-1:-1:-1;;;2183:2:1;2168:18;;;;2155:32;;1737:456::o;2198:382::-;2263:6;2271;2324:2;2312:9;2303:7;2299:23;2295:32;2292:52;;;2340:1;2337;2330:12;2292:52;2379:9;2366:23;2398:31;2423:5;2398:31;:::i;:::-;2448:5;-1:-1:-1;2505:2:1;2490:18;;2477:32;2518:30;2477:32;2518:30;:::i;2585:315::-;2653:6;2661;2714:2;2702:9;2693:7;2689:23;2685:32;2682:52;;;2730:1;2727;2720:12;2682:52;2769:9;2756:23;2788:31;2813:5;2788:31;:::i;:::-;2838:5;2890:2;2875:18;;;;2862:32;;-1:-1:-1;;;2585:315:1:o;2905:750::-;2997:6;3005;3013;3066:2;3054:9;3045:7;3041:23;3037:32;3034:52;;;3082:1;3079;3072:12;3034:52;3122:9;3109:23;3151:18;3192:2;3184:6;3181:14;3178:34;;;3208:1;3205;3198:12;3178:34;3246:6;3235:9;3231:22;3221:32;;3291:7;3284:4;3280:2;3276:13;3272:27;3262:55;;3313:1;3310;3303:12;3262:55;3353:2;3340:16;3379:2;3371:6;3368:14;3365:34;;;3395:1;3392;3385:12;3365:34;3450:7;3443:4;3433:6;3430:1;3426:14;3422:2;3418:23;3414:34;3411:47;3408:67;;;3471:1;3468;3461:12;3408:67;3502:4;3494:13;;;;-1:-1:-1;3526:6:1;-1:-1:-1;;3567:20:1;;3554:34;3597:28;3554:34;3597:28;:::i;:::-;3644:5;3634:15;;;2905:750;;;;;:::o;3660:241::-;3716:6;3769:2;3757:9;3748:7;3744:23;3740:32;3737:52;;;3785:1;3782;3775:12;3737:52;3824:9;3811:23;3843:28;3865:5;3843:28;:::i;3906:245::-;3973:6;4026:2;4014:9;4005:7;4001:23;3997:32;3994:52;;;4042:1;4039;4032:12;3994:52;4074:9;4068:16;4093:28;4115:5;4093:28;:::i;4156:309::-;4221:6;4229;4282:2;4270:9;4261:7;4257:23;4253:32;4250:52;;;4298:1;4295;4288:12;4250:52;4337:9;4324:23;4356:28;4378:5;4356:28;:::i;4470:180::-;4529:6;4582:2;4570:9;4561:7;4557:23;4553:32;4550:52;;;4598:1;4595;4588:12;4550:52;-1:-1:-1;4621:23:1;;4470:180;-1:-1:-1;4470:180:1:o;4655:184::-;4725:6;4778:2;4766:9;4757:7;4753:23;4749:32;4746:52;;;4794:1;4791;4784:12;4746:52;-1:-1:-1;4817:16:1;;4655:184;-1:-1:-1;4655:184:1:o;4844:248::-;4912:6;4920;4973:2;4961:9;4952:7;4948:23;4944:32;4941:52;;;4989:1;4986;4979:12;4941:52;-1:-1:-1;;5012:23:1;;;5082:2;5067:18;;;5054:32;;-1:-1:-1;4844:248:1:o;5097:306::-;5185:6;5193;5201;5254:2;5242:9;5233:7;5229:23;5225:32;5222:52;;;5270:1;5267;5260:12;5222:52;5299:9;5293:16;5283:26;;5349:2;5338:9;5334:18;5328:25;5318:35;;5393:2;5382:9;5378:18;5372:25;5362:35;;5097:306;;;;;:::o;5408:523::-;5512:6;5520;5528;5536;5544;5552;5605:3;5593:9;5584:7;5580:23;5576:33;5573:53;;;5622:1;5619;5612:12;5573:53;-1:-1:-1;;5645:23:1;;;5715:2;5700:18;;5687:32;;-1:-1:-1;5766:2:1;5751:18;;5738:32;;5817:2;5802:18;;5789:32;;-1:-1:-1;5868:3:1;5853:19;;5840:33;;-1:-1:-1;5920:3:1;5905:19;5892:33;;-1:-1:-1;5408:523:1;-1:-1:-1;5408:523:1:o;7879:597::-;7991:4;8020:2;8049;8038:9;8031:21;8081:6;8075:13;8124:6;8119:2;8108:9;8104:18;8097:34;8149:1;8159:140;8173:6;8170:1;8167:13;8159:140;;;8268:14;;;8264:23;;8258:30;8234:17;;;8253:2;8230:26;8223:66;8188:10;;8159:140;;;8317:6;8314:1;8311:13;8308:91;;;8387:1;8382:2;8373:6;8362:9;8358:22;8354:31;8347:42;8308:91;-1:-1:-1;8460:2:1;8439:15;-1:-1:-1;;8435:29:1;8420:45;;;;8467:2;8416:54;;7879:597;-1:-1:-1;;;7879:597:1:o;11494:329::-;11696:2;11678:21;;;11735:1;11715:18;;;11708:29;-1:-1:-1;;;11768:2:1;11753:18;;11746:36;11814:2;11799:18;;11494:329::o;12168:335::-;12370:2;12352:21;;;12409:2;12389:18;;;12382:30;-1:-1:-1;;;12443:2:1;12428:18;;12421:41;12494:2;12479:18;;12168:335::o;12690:980::-;12952:4;13000:3;12989:9;12985:19;13031:6;13020:9;13013:25;13057:2;13095:6;13090:2;13079:9;13075:18;13068:34;13138:3;13133:2;13122:9;13118:18;13111:31;13162:6;13197;13191:13;13228:6;13220;13213:22;13266:3;13255:9;13251:19;13244:26;;13305:2;13297:6;13293:15;13279:29;;13326:1;13336:195;13350:6;13347:1;13344:13;13336:195;;;13415:13;;-1:-1:-1;;;;;13411:39:1;13399:52;;13506:15;;;;13471:12;;;;13447:1;13365:9;13336:195;;;-1:-1:-1;;;;;;;13587:32:1;;;;13582:2;13567:18;;13560:60;-1:-1:-1;;;13651:3:1;13636:19;13629:35;13548:3;12690:980;-1:-1:-1;;;12690:980:1:o;14117:128::-;14157:3;14188:1;14184:6;14181:1;14178:13;14175:39;;;14194:18;;:::i;:::-;-1:-1:-1;14230:9:1;;14117:128::o;14250:217::-;14290:1;14316;14306:132;;14360:10;14355:3;14351:20;14348:1;14341:31;14395:4;14392:1;14385:15;14423:4;14420:1;14413:15;14306:132;-1:-1:-1;14452:9:1;;14250:217::o;14472:168::-;14512:7;14578:1;14574;14570:6;14566:14;14563:1;14560:21;14555:1;14548:9;14541:17;14537:45;14534:71;;;14585:18;;:::i;:::-;-1:-1:-1;14625:9:1;;14472:168::o;14645:125::-;14685:4;14713:1;14710;14707:8;14704:34;;;14718:18;;:::i;:::-;-1:-1:-1;14755:9:1;;14645:125::o;14775:135::-;14814:3;-1:-1:-1;;14835:17:1;;14832:43;;;14855:18;;:::i;:::-;-1:-1:-1;14902:1:1;14891:13;;14775:135::o;14915:127::-;14976:10;14971:3;14967:20;14964:1;14957:31;15007:4;15004:1;14997:15;15031:4;15028:1;15021:15;15047:127;15108:10;15103:3;15099:20;15096:1;15089:31;15139:4;15136:1;15129:15;15163:4;15160:1;15153:15;15311:131;-1:-1:-1;;;;;15386:31:1;;15376:42;;15366:70;;15432:1;15429;15422:12;15366:70;15311:131;:::o;15447:118::-;15533:5;15526:13;15519:21;15512:5;15509:32;15499:60;;15555:1;15552;15545:12

Swarm Source

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