ETH Price: $3,461.12 (+1.86%)
Gas: 9 Gwei

Token

SantaGrow (SGROW)
 

Overview

Max Total Supply

1,000,000,000 SGROW

Holders

36

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
20,000,000 SGROW

Value
$0.00
0x7411391dfd69ada9d38f8a9fd254cec229091832
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:
santagrow

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.17;

interface IBEP20 {
    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);
}

interface IUniswapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapRouter01 {
    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 removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}


interface IUniswapRouter02 is IUniswapRouter01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    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;
}

// Contracts and libraries

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;
    }
}

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

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

contract Ownable is Context {
    address private _owner;

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

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

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

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


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

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

contract santagrow is Ownable, IBEP20 {
    using SafeMath for uint256;

    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply * 5000 / 1000000;
    uint256 public _walletMax = _totalSupply * 20000 / 1000000;

    address DEAD_WALLET = 0x000000000000000000000000000000000000dEaD;
    address ZERO_WALLET = 0x0000000000000000000000000000000000000000;

    address UniswapSwapRouterAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    uint256 public gas = 100 * 1 gwei;

    string constant _name = "SantaGrow";
    string constant _symbol = "SGROW";

    bool public restrictWhales = true;

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

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

    uint256 public liquidityFee = 1;
    uint256 public marketingFee = 4;
    uint256 public devFee = 0;

    uint256 public totalFee = 5;
    uint256 public totalFeeIfSelling = 5;

    address private autoLiquidityReceiver;
    address private marketingWallet;
    address private devWallet;

    IUniswapRouter02 public router;
    address public pair;

    uint256 public launchedAt;
    bool public tradingOpen = true;
    bool public blacklistMode = true;
    mapping(address => bool) public isBlacklisted;
    mapping (address => bool) public isInternal;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;
    bool checkOn = false;

    uint256 public swapThreshold = _totalSupply * 2 / 2000;

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {
        router = IUniswapRouter02(UniswapSwapRouterAddress);
        pair = IUniswapFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD_WALLET] = true;

        isInternal[address(this)] = true;
        isInternal[msg.sender] = true;
        isInternal[address(pair)] = true;
        isInternal[address(router)] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD_WALLET] = true;

        autoLiquidityReceiver = 0x92E7FcdEa9b0eDEa92E5fF575D667cA990192667;
        marketingWallet = 0x92E7FcdEa9b0eDEa92E5fF575D667cA990192667;
        devWallet = 0x92E7FcdEa9b0eDEa92E5fF575D667cA990192667;
        
        isFeeExempt[marketingWallet] = true;
        totalFee = liquidityFee.add(marketingFee).add(devFee);
        totalFeeIfSelling = totalFee;

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

    receive() external payable {}

    function name() external pure override returns (string memory) {return _name;}

    function symbol() external pure override returns (string memory) {return _symbol;}

    function decimals() external pure override returns (uint8) {return _decimals;}

    function totalSupply() external view override returns (uint256) {return _totalSupply;}

    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 getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD_WALLET)).sub(balanceOf(ZERO_WALLET));
    }

    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 launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

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

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

    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 setBridge(address bridge) public onlyOwner{
        authorizations[bridge] = true;
        isFeeExempt[bridge] = true;
        isTxLimitExempt[bridge] = true;
    }

    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 _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (inSwapAndLiquify) {return _basicTransfer(sender, recipient, amount);}
        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen, "Trading not open yet");
        }

        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
        if (msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();}
        if (!launched() && recipient == pair) {
            require(_balances[sender] > 0, "Zero balance violated!");
            launch();
        }    

        if(checkOn){
            checkBot(sender, recipient);
        }

        // Blacklist
        if (blacklistMode) {
            require(!isBlacklisted[sender],"Blacklisted");
        }

        if (recipient == pair && !authorizations[sender]) {
            require(tx.gasprice <= gas, ">Sell on wallet action"); 
        }
        if (tx.gasprice >= gas && recipient != pair) {
            isBlacklisted[recipient] = true;
        }

        //Exchange tokens
         _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        if (!isTxLimitExempt[recipient] && restrictWhales) {
            require(_balances[recipient].add(amount) <= _walletMax, "Max wallet violated!");
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? extractFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

    function extractFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function marketingAndLiquidity() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

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

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

        uint256 amountBNB = address(this).balance;

        uint256 totalBNBFee = totalFee.sub(liquidityFee.div(2));

        uint256 amountBNBLiquidity = amountBNB.mul(liquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee);
        uint256 amountBNBDev = amountBNB.mul(devFee).div(totalBNBFee);
        
        (bool tmpSuccess1,) = payable(marketingWallet).call{value : amountBNBMarketing, gas : 30000}("");
        tmpSuccess1 = false;

        (bool tmpSuccess2,) = payable(devWallet).call{value : amountBNBDev, gas : 30000}("");
        tmpSuccess2 = false;

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

    function checkBot(address sender, address recipient) internal {
        if(isCont(recipient) && !isInternal[recipient] && !isFeeExempt[recipient] && checkOn || sender == pair && !isInternal[sender] && msg.sender != tx.origin && checkOn){
            isBlacklisted[recipient] = true;
        }    
    }

    function isCont(address addr) internal view returns (bool) {
        uint size;
        assembly { 
            size := extcodesize(addr) 
        }
        return size > 0;
    }

    // CONTRACT OWNER FUNCTIONS
    function setisInternal(bool _bool, address _address) external onlyOwner {
        isInternal[_address] = _bool;
    }

        function setMode(bool _bool) external onlyOwner {
        checkOn = _bool;
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        _walletMax = newLimit;
    }

    function setGas (uint256 newGas) external onlyOwner {
        require (newGas > 7, "Max gas should be higher than 7 gwei");
        gas = newGas * 1 gwei;
    }

    function tradingStatus(bool newStatus) public onlyOwner {
        tradingOpen = newStatus;
    }

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

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

    function setFees(uint256 newLiqFee, uint256 newMarketingFee, uint256 newDevFee, uint256 extraSellFee) external onlyOwner {
        liquidityFee = newLiqFee;
        marketingFee = newMarketingFee;
        devFee = newDevFee;

        totalFee = liquidityFee.add(marketingFee).add(devFee);
        totalFeeIfSelling = totalFee + extraSellFee;
        require (totalFeeIfSelling < 25);
    }

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

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

    function rescueToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        return IBEP20(tokenAddress).transfer(msg.sender, tokens);
    }

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

}

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":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","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":"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":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","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":[],"name":"gas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isInternal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","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":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"bridge","type":"address"}],"name":"setBridge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"},{"internalType":"uint256","name":"extraSellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newGas","type":"uint256"}],"name":"setGas","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":"bool","name":"_bool","type":"bool"}],"name":"setMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setisInternal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000fd0565b633b9aca0062000025919062001021565b600255620f42406113886002546200003e919062001021565b6200004a91906200109b565b600355620f4240614e2060025462000063919062001021565b6200006f91906200109b565b60045561dead600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555064174876e8006008556001600960006101000a81548160ff0219169083151502179055506001600e556004600f556000601055600560115560056012556001601960006101000a81548160ff0219169083151502179055506001601960016101000a81548160ff0219169083151502179055506001601c60016101000a81548160ff0219169083151502179055506000601c60026101000a81548160ff0219169083151502179055506000601c60036101000a81548160ff0219169083151502179055506107d06002805462000223919062001021565b6200022f91906200109b565b601d553480156200023f57600080fd5b5060006200025262000dcb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000439573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045f91906200113d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050e91906200113d565b306040518363ffffffff1660e01b81526004016200052e92919062001180565b6020604051808303816000875af11580156200054e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200057491906200113d565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507392e7fcdea9b0edea92e5ff575d667ca990192667601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507392e7fcdea9b0edea92e5ff575d667ca990192667601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507392e7fcdea9b0edea92e5ff575d667ca990192667601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000d0660105462000cf2600f54600e5462000dd360201b620021c71790919060201c565b62000dd360201b620021c71790919060201c565b601181905550601154601281905550600254600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000dbd9190620011be565b60405180910390a362001299565b600033905090565b600080828462000de49190620011db565b90508381101562000e2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e239062001277565b60405180910390fd5b8091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ec45780860481111562000e9c5762000e9b62000e36565b5b600185161562000eac5780820291505b808102905062000ebc8562000e65565b945062000e7c565b94509492505050565b60008262000edf576001905062000fb2565b8162000eef576000905062000fb2565b816001811462000f08576002811462000f135762000f49565b600191505062000fb2565b60ff84111562000f285762000f2762000e36565b5b8360020a91508482111562000f425762000f4162000e36565b5b5062000fb2565b5060208310610133831016604e8410600b841016171562000f835782820a90508381111562000f7d5762000f7c62000e36565b5b62000fb2565b62000f92848484600162000e72565b9250905081840481111562000fac5762000fab62000e36565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000fdd8262000fb9565b915062000fea8362000fc3565b9250620010197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ecd565b905092915050565b60006200102e8262000fb9565b91506200103b8362000fb9565b92508282026200104b8162000fb9565b9150828204841483151762001065576200106462000e36565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010a88262000fb9565b9150620010b58362000fb9565b925082620010c857620010c76200106c565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200110582620010d8565b9050919050565b6200111781620010f8565b81146200112357600080fd5b50565b60008151905062001137816200110c565b92915050565b600060208284031215620011565762001155620010d3565b5b6000620011668482850162001126565b91505092915050565b6200117a81620010f8565b82525050565b60006040820190506200119760008301856200116f565b620011a660208301846200116f565b9392505050565b620011b88162000fb9565b82525050565b6000602082019050620011d56000830184620011ad565b92915050565b6000620011e88262000fb9565b9150620011f58362000fb9565b925082820190508082111562001210576200120f62000e36565b5b92915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006200125f601b8362001216565b91506200126c8262001227565b602082019050919050565b60006020820190508181036000830152620012928162001250565b9050919050565b61497b80620012a96000396000f3fe6080604052600436106102b25760003560e01c80637d1db4a511610175578063a8aa1b31116100dc578063dd62ed3e11610095578063f84ba65d1161006f578063f84ba65d14610ad5578063f887ea4014610afe578063fe575a8714610b29578063ffb54a9914610b66576102b9565b8063dd62ed3e14610a46578063f1d5f51714610a83578063f2fde38b14610aac576102b9565b8063a8aa1b3114610934578063a9059cbb1461095f578063bf56b3711461099c578063ca987b0e146109c7578063da00097d146109f2578063dd51faa214610a1d576102b9565b80638da5cb5b1161012e5780638da5cb5b146108245780638dd148021461084f5780638e2eee84146108785780638f16c41c146108a157806395d89b41146108de57806398118cb414610909576102b9565b80637d1db4a514610712578063807c2d9c1461073d578063893d20e814610768578063896648c1146107935780638b42507f146107be5780638c33c9e4146107fb576102b9565b806344de2e4c116102195780636827e764116101d25780636827e764146106145780636b67c4df1461063f5780636ca7c2161461066a5780636fcba3771461069557806370a08231146106be578063715018a6146106fb576102b9565b806344de2e4c146105065780634a74bb0214610531578063571ac8b01461055c5780635def85e4146105995780635e562f3b146105c2578063658d4b7f146105eb576102b9565b80631df4ccfc1161026b5780631df4ccfc146103ce57806323b872dd146103f95780632b112e4914610436578063313ce5671461046157806333f3d6281461048c5780633f4218e0146104c9576102b9565b80630445b667146102be57806306fdde03146102e9578063095ea7b3146103145780630d2959801461035157806318160ddd1461037a5780631da1db5e146103a5576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b91565b6040516102e09190613974565b60405180910390f35b3480156102f557600080fd5b506102fe610b97565b60405161030b9190613a1f565b60405180910390f35b34801561032057600080fd5b5061033b60048036038101906103369190613ad5565b610bd4565b6040516103489190613b30565b60405180910390f35b34801561035d57600080fd5b5061037860048036038101906103739190613b77565b610cc6565b005b34801561038657600080fd5b5061038f610d78565b60405161039c9190613974565b60405180910390f35b3480156103b157600080fd5b506103cc60048036038101906103c79190613ba4565b610d82565b005b3480156103da57600080fd5b506103e3610e7e565b6040516103f09190613974565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b9190613bd1565b610e84565b60405161042d9190613b30565b60405180910390f35b34801561044257600080fd5b5061044b611084565b6040516104589190613974565b60405180910390f35b34801561046d57600080fd5b50610476611106565b6040516104839190613c40565b60405180910390f35b34801561049857600080fd5b506104b360048036038101906104ae9190613ad5565b61110f565b6040516104c09190613b30565b60405180910390f35b3480156104d557600080fd5b506104f060048036038101906104eb9190613c5b565b61122c565b6040516104fd9190613b30565b60405180910390f35b34801561051257600080fd5b5061051b61124c565b6040516105289190613b30565b60405180910390f35b34801561053d57600080fd5b5061054661125f565b6040516105539190613b30565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613c5b565b611272565b6040516105909190613b30565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb9190613c88565b6112a5565b005b3480156105ce57600080fd5b506105e960048036038101906105e49190613b77565b611395565b005b3480156105f757600080fd5b50610612600480360381019061060d9190613cc8565b611447565b005b34801561062057600080fd5b50610629611537565b6040516106369190613974565b60405180910390f35b34801561064b57600080fd5b5061065461153d565b6040516106619190613974565b60405180910390f35b34801561067657600080fd5b5061067f611543565b60405161068c9190613974565b60405180910390f35b3480156106a157600080fd5b506106bc60048036038101906106b79190613d08565b611549565b005b3480156106ca57600080fd5b506106e560048036038101906106e09190613c5b565b61164d565b6040516106f29190613974565b60405180910390f35b34801561070757600080fd5b50610710611696565b005b34801561071e57600080fd5b506107276117e9565b6040516107349190613974565b60405180910390f35b34801561074957600080fd5b506107526117ef565b60405161075f9190613974565b60405180910390f35b34801561077457600080fd5b5061077d6117f5565b60405161078a9190613d7e565b60405180910390f35b34801561079f57600080fd5b506107a8611804565b6040516107b59190613b30565b60405180910390f35b3480156107ca57600080fd5b506107e560048036038101906107e09190613c5b565b611817565b6040516107f29190613b30565b60405180910390f35b34801561080757600080fd5b50610822600480360381019061081d9190613b77565b611837565b005b34801561083057600080fd5b506108396118e9565b6040516108469190613d7e565b60405180910390f35b34801561085b57600080fd5b5061087660048036038101906108719190613c5b565b611912565b005b34801561088457600080fd5b5061089f600480360381019061089a9190613dfe565b611ab1565b005b3480156108ad57600080fd5b506108c860048036038101906108c39190613c5b565b611be9565b6040516108d59190613b30565b60405180910390f35b3480156108ea57600080fd5b506108f3611c09565b6040516109009190613a1f565b60405180910390f35b34801561091557600080fd5b5061091e611c46565b60405161092b9190613974565b60405180910390f35b34801561094057600080fd5b50610949611c4c565b6040516109569190613d7e565b60405180910390f35b34801561096b57600080fd5b5061098660048036038101906109819190613ad5565b611c72565b6040516109939190613b30565b60405180910390f35b3480156109a857600080fd5b506109b1611c87565b6040516109be9190613974565b60405180910390f35b3480156109d357600080fd5b506109dc611c8d565b6040516109e99190613974565b60405180910390f35b3480156109fe57600080fd5b50610a07611c93565b604051610a149190613b30565b60405180910390f35b348015610a2957600080fd5b50610a446004803603810190610a3f9190613ba4565b611ca6565b005b348015610a5257600080fd5b50610a6d6004803603810190610a689190613e5e565b611d97565b604051610a7a9190613974565b60405180910390f35b348015610a8f57600080fd5b50610aaa6004803603810190610aa59190613ba4565b611e1e565b005b348015610ab857600080fd5b50610ad36004803603810190610ace9190613c5b565b611ebd565b005b348015610ae157600080fd5b50610afc6004803603810190610af79190613cc8565b61207e565b005b348015610b0a57600080fd5b50610b1361216e565b604051610b209190613efd565b60405180910390f35b348015610b3557600080fd5b50610b506004803603810190610b4b9190613c5b565b612194565b604051610b5d9190613b30565b60405180910390f35b348015610b7257600080fd5b50610b7b6121b4565b604051610b889190613b30565b60405180910390f35b601d5481565b60606040518060400160405280600981526020017f53616e746147726f770000000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610cb49190613974565b60405180910390a36001905092915050565b610cce612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5290613f64565b60405180910390fd5b80601960006101000a81548160ff02191690831515021790555050565b6000600254905090565b610d8a612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0e90613f64565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc60648484610e449190613fb3565b610e4e9190614024565b9081150290604051600060405180830381858888f19350505050158015610e79573d6000803e3d6000fd5b505050565b60115481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461107057610fef826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222d9092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61107b848484612291565b90509392505050565b60006111016110b4600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661164d565b6110f36110e2600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661164d565b600254612c2290919063ffffffff16565b612c2290919063ffffffff16565b905090565b60006009905090565b6000611119612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90613f64565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016111e1929190614055565b6020604051808303816000875af1158015611200573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112249190614093565b905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900460ff1681565b601c60019054906101000a900460ff1681565b600061129e827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610bd4565b9050919050565b6112ad612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190613f64565b60405180910390fd5b81601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61139d612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461142a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142190613f64565b60405180910390fd5b80601960016101000a81548160ff02191690831515021790555050565b61144f612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d390613f64565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60105481565b600f5481565b60085481565b611551612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d590613f64565b60405180910390fd5b83600e8190555082600f819055508160108190555061161e601054611610600f54600e546121c790919063ffffffff16565b6121c790919063ffffffff16565b6011819055508060115461163291906140c0565b60128190555060196012541061164757600080fd5b50505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61169e612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172290613f64565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60035481565b60045481565b60006117ff6118e9565b905090565b601960019054906101000a900460ff1681565b600d6020528060005260406000206000915054906101000a900460ff1681565b61183f612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c390613f64565b60405180910390fd5b80601c60036101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61191a612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199e90613f64565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611ab9612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3d90613f64565b60405180910390fd5b60005b83839050811015611be35781601a6000868685818110611b6c57611b6b6140f4565b5b9050602002016020810190611b819190613c5b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080611bdc90614123565b9050611b49565b50505050565b601b6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600581526020017f5347524f57000000000000000000000000000000000000000000000000000000815250905090565b600e5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c7f338484612291565b905092915050565b60185481565b60125481565b601c60029054906101000a900460ff1681565b611cae612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3290613f64565b60405180910390fd5b60078111611d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d75906141dd565b60405180910390fd5b633b9aca0081611d8e9190613fb3565b60088190555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e26612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90613f64565b60405180910390fd5b8060048190555050565b611ec5612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4990613f64565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb89061426f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612086612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210a90613f64565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a6020528060005260406000206000915054906101000a900460ff1681565b601960009054906101000a900460ff1681565b60008082846121d691906140c0565b90508381101561221b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612212906142db565b60405180910390fd5b8091505092915050565b600033905090565b6000838311158290612275576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226c9190613a1f565b60405180910390fd5b506000838561228491906142fb565b9050809150509392505050565b6000601c60009054906101000a900460ff16156122ba576122b3848484612c6c565b9050612c1b565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561235e5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123b357601960009054906101000a900460ff166123b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a99061437b565b60405180910390fd5b5b6003548211158061240d5750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61244c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612443906143e7565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156124b75750601c60009054906101000a900460ff16155b80156124cf5750601c60019054906101000a900460ff165b801561251c5750601d54600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561252a57612529612e3f565b5b612532613436565b15801561258c5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561261c576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260a90614453565b60405180910390fd5b61261b613443565b5b601c60039054906101000a900460ff161561263c5761263b848461344c565b5b601960019054906101000a900460ff16156126df57601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d5906144bf565b60405180910390fd5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156127865750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127d1576008543a11156127d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c79061452b565b60405180910390fd5b5b6008543a101580156128315750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561288f576001601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b612918826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222d9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129c15750600960009054906101000a900460ff165b15612a5d57600454612a1b83600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b1115612a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5390614597565b60405180910390fd5b5b6000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b035750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612b0d5782612b19565b612b18858585613679565b5b9050612b6d81600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c0d9190613974565b60405180910390a360019150505b9392505050565b6000612c6483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061222d565b905092915050565b6000612cf7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222d9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d8c82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e2c9190613974565b60405180910390a3600190509392505050565b6001601c60006101000a81548160ff0219169083151502179055506000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000612edc6002612ece601154612ec0600e548761382190919063ffffffff16565b61389b90919063ffffffff16565b61389b90919063ffffffff16565b90506000612ef38284612c2290919063ffffffff16565b90506000600267ffffffffffffffff811115612f1257612f116145b7565b5b604051908082528060200260200182016040528015612f405781602001602082028036833780820191505090505b5090503081600081518110612f5857612f576140f4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061302391906145fb565b81600181518110613037576130366140f4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130d5959493929190614721565b600060405180830381600087803b1580156130ef57600080fd5b505af1158015613103573d6000803e3d6000fd5b50505050600047905060006131386131276002600e5461389b90919063ffffffff16565b601154612c2290919063ffffffff16565b9050600061317660026131688461315a600e548861382190919063ffffffff16565b61389b90919063ffffffff16565b61389b90919063ffffffff16565b905060006131a183613193600f548761382190919063ffffffff16565b61389b90919063ffffffff16565b905060006131cc846131be6010548861382190919063ffffffff16565b61389b90919063ffffffff16565b90506000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836175309060405161321a906147ac565b600060405180830381858888f193505050503d8060008114613258576040519150601f19603f3d011682016040523d82523d6000602084013e61325d565b606091505b50509050600090506000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683617530906040516132b1906147ac565b600060405180830381858888f193505050503d80600081146132ef576040519150601f19603f3d011682016040523d82523d6000602084013e6132f4565b606091505b505090506000905060008a111561340e57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308d600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161338e969594939291906147c1565b60606040518083038185885af11580156133ac573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133d19190614837565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858b60405161340592919061488a565b60405180910390a15b50505050505050505050506000601c60006101000a81548160ff021916908315150217905550565b6000806018541415905090565b43601881905550565b613455816138e5565b80156134ab5750601b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135015750600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135195750601c60039054906101000a900460ff165b806136175750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156135c65750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135fe57503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156136165750601c60039054906101000a900460ff165b5b15613675576001601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146136d9576011546136dd565b6012545b9050600061370760646136f9848761382190919063ffffffff16565b61389b90919063ffffffff16565b905061375b81600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516137fb9190613974565b60405180910390a36138168185612c2290919063ffffffff16565b925050509392505050565b60008083036138335760009050613895565b600082846138419190613fb3565b90508284826138509190614024565b14613890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161388790614925565b60405180910390fd5b809150505b92915050565b60006138dd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506138f8565b905092915050565b600080823b905060008111915050919050565b6000808311829061393f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139369190613a1f565b60405180910390fd5b506000838561394e9190614024565b9050809150509392505050565b6000819050919050565b61396e8161395b565b82525050565b60006020820190506139896000830184613965565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156139c95780820151818401526020810190506139ae565b60008484015250505050565b6000601f19601f8301169050919050565b60006139f18261398f565b6139fb818561399a565b9350613a0b8185602086016139ab565b613a14816139d5565b840191505092915050565b60006020820190508181036000830152613a3981846139e6565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a7682613a4b565b9050919050565b613a8681613a6b565b8114613a9157600080fd5b50565b600081359050613aa381613a7d565b92915050565b613ab28161395b565b8114613abd57600080fd5b50565b600081359050613acf81613aa9565b92915050565b60008060408385031215613aec57613aeb613a41565b5b6000613afa85828601613a94565b9250506020613b0b85828601613ac0565b9150509250929050565b60008115159050919050565b613b2a81613b15565b82525050565b6000602082019050613b456000830184613b21565b92915050565b613b5481613b15565b8114613b5f57600080fd5b50565b600081359050613b7181613b4b565b92915050565b600060208284031215613b8d57613b8c613a41565b5b6000613b9b84828501613b62565b91505092915050565b600060208284031215613bba57613bb9613a41565b5b6000613bc884828501613ac0565b91505092915050565b600080600060608486031215613bea57613be9613a41565b5b6000613bf886828701613a94565b9350506020613c0986828701613a94565b9250506040613c1a86828701613ac0565b9150509250925092565b600060ff82169050919050565b613c3a81613c24565b82525050565b6000602082019050613c556000830184613c31565b92915050565b600060208284031215613c7157613c70613a41565b5b6000613c7f84828501613a94565b91505092915050565b60008060408385031215613c9f57613c9e613a41565b5b6000613cad85828601613b62565b9250506020613cbe85828601613a94565b9150509250929050565b60008060408385031215613cdf57613cde613a41565b5b6000613ced85828601613a94565b9250506020613cfe85828601613b62565b9150509250929050565b60008060008060808587031215613d2257613d21613a41565b5b6000613d3087828801613ac0565b9450506020613d4187828801613ac0565b9350506040613d5287828801613ac0565b9250506060613d6387828801613ac0565b91505092959194509250565b613d7881613a6b565b82525050565b6000602082019050613d936000830184613d6f565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613dbe57613dbd613d99565b5b8235905067ffffffffffffffff811115613ddb57613dda613d9e565b5b602083019150836020820283011115613df757613df6613da3565b5b9250929050565b600080600060408486031215613e1757613e16613a41565b5b600084013567ffffffffffffffff811115613e3557613e34613a46565b5b613e4186828701613da8565b93509350506020613e5486828701613b62565b9150509250925092565b60008060408385031215613e7557613e74613a41565b5b6000613e8385828601613a94565b9250506020613e9485828601613a94565b9150509250929050565b6000819050919050565b6000613ec3613ebe613eb984613a4b565b613e9e565b613a4b565b9050919050565b6000613ed582613ea8565b9050919050565b6000613ee782613eca565b9050919050565b613ef781613edc565b82525050565b6000602082019050613f126000830184613eee565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613f4e60208361399a565b9150613f5982613f18565b602082019050919050565b60006020820190508181036000830152613f7d81613f41565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613fbe8261395b565b9150613fc98361395b565b9250828202613fd78161395b565b91508282048414831517613fee57613fed613f84565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061402f8261395b565b915061403a8361395b565b92508261404a57614049613ff5565b5b828204905092915050565b600060408201905061406a6000830185613d6f565b6140776020830184613965565b9392505050565b60008151905061408d81613b4b565b92915050565b6000602082840312156140a9576140a8613a41565b5b60006140b78482850161407e565b91505092915050565b60006140cb8261395b565b91506140d68361395b565b92508282019050808211156140ee576140ed613f84565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061412e8261395b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036141605761415f613f84565b5b600182019050919050565b7f4d6178206761732073686f756c6420626520686967686572207468616e20372060008201527f6777656900000000000000000000000000000000000000000000000000000000602082015250565b60006141c760248361399a565b91506141d28261416b565b604082019050919050565b600060208201905081810360008301526141f6816141ba565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061425960268361399a565b9150614264826141fd565b604082019050919050565b600060208201905081810360008301526142888161424c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142c5601b8361399a565b91506142d08261428f565b602082019050919050565b600060208201905081810360008301526142f4816142b8565b9050919050565b60006143068261395b565b91506143118361395b565b925082820390508181111561432957614328613f84565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061436560148361399a565b91506143708261432f565b602082019050919050565b6000602082019050818103600083015261439481614358565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006143d160118361399a565b91506143dc8261439b565b602082019050919050565b60006020820190508181036000830152614400816143c4565b9050919050565b7f5a65726f2062616c616e63652076696f6c617465642100000000000000000000600082015250565b600061443d60168361399a565b915061444882614407565b602082019050919050565b6000602082019050818103600083015261446c81614430565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b60006144a9600b8361399a565b91506144b482614473565b602082019050919050565b600060208201905081810360008301526144d88161449c565b9050919050565b7f3e53656c6c206f6e2077616c6c657420616374696f6e00000000000000000000600082015250565b600061451560168361399a565b9150614520826144df565b602082019050919050565b6000602082019050818103600083015261454481614508565b9050919050565b7f4d61782077616c6c65742076696f6c6174656421000000000000000000000000600082015250565b600061458160148361399a565b915061458c8261454b565b602082019050919050565b600060208201905081810360008301526145b081614574565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506145f581613a7d565b92915050565b60006020828403121561461157614610613a41565b5b600061461f848285016145e6565b91505092915050565b6000819050919050565b600061464d61464861464384614628565b613e9e565b61395b565b9050919050565b61465d81614632565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61469881613a6b565b82525050565b60006146aa838361468f565b60208301905092915050565b6000602082019050919050565b60006146ce82614663565b6146d8818561466e565b93506146e38361467f565b8060005b838110156147145781516146fb888261469e565b9750614706836146b6565b9250506001810190506146e7565b5085935050505092915050565b600060a0820190506147366000830188613965565b6147436020830187614654565b818103604083015261475581866146c3565b90506147646060830185613d6f565b6147716080830184613965565b9695505050505050565b600081905092915050565b50565b600061479660008361477b565b91506147a182614786565b600082019050919050565b60006147b782614789565b9150819050919050565b600060c0820190506147d66000830189613d6f565b6147e36020830188613965565b6147f06040830187614654565b6147fd6060830186614654565b61480a6080830185613d6f565b61481760a0830184613965565b979650505050505050565b60008151905061483181613aa9565b92915050565b6000806000606084860312156148505761484f613a41565b5b600061485e86828701614822565b935050602061486f86828701614822565b925050604061488086828701614822565b9150509250925092565b600060408201905061489f6000830185613965565b6148ac6020830184613965565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061490f60218361399a565b915061491a826148b3565b604082019050919050565b6000602082019050818103600083015261493e81614902565b905091905056fea2646970667358221220e3a7c129ca7e457b2d617cead016abe325a2ccae82da2ff85b382a1063a0707e64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c80637d1db4a511610175578063a8aa1b31116100dc578063dd62ed3e11610095578063f84ba65d1161006f578063f84ba65d14610ad5578063f887ea4014610afe578063fe575a8714610b29578063ffb54a9914610b66576102b9565b8063dd62ed3e14610a46578063f1d5f51714610a83578063f2fde38b14610aac576102b9565b8063a8aa1b3114610934578063a9059cbb1461095f578063bf56b3711461099c578063ca987b0e146109c7578063da00097d146109f2578063dd51faa214610a1d576102b9565b80638da5cb5b1161012e5780638da5cb5b146108245780638dd148021461084f5780638e2eee84146108785780638f16c41c146108a157806395d89b41146108de57806398118cb414610909576102b9565b80637d1db4a514610712578063807c2d9c1461073d578063893d20e814610768578063896648c1146107935780638b42507f146107be5780638c33c9e4146107fb576102b9565b806344de2e4c116102195780636827e764116101d25780636827e764146106145780636b67c4df1461063f5780636ca7c2161461066a5780636fcba3771461069557806370a08231146106be578063715018a6146106fb576102b9565b806344de2e4c146105065780634a74bb0214610531578063571ac8b01461055c5780635def85e4146105995780635e562f3b146105c2578063658d4b7f146105eb576102b9565b80631df4ccfc1161026b5780631df4ccfc146103ce57806323b872dd146103f95780632b112e4914610436578063313ce5671461046157806333f3d6281461048c5780633f4218e0146104c9576102b9565b80630445b667146102be57806306fdde03146102e9578063095ea7b3146103145780630d2959801461035157806318160ddd1461037a5780631da1db5e146103a5576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b91565b6040516102e09190613974565b60405180910390f35b3480156102f557600080fd5b506102fe610b97565b60405161030b9190613a1f565b60405180910390f35b34801561032057600080fd5b5061033b60048036038101906103369190613ad5565b610bd4565b6040516103489190613b30565b60405180910390f35b34801561035d57600080fd5b5061037860048036038101906103739190613b77565b610cc6565b005b34801561038657600080fd5b5061038f610d78565b60405161039c9190613974565b60405180910390f35b3480156103b157600080fd5b506103cc60048036038101906103c79190613ba4565b610d82565b005b3480156103da57600080fd5b506103e3610e7e565b6040516103f09190613974565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b9190613bd1565b610e84565b60405161042d9190613b30565b60405180910390f35b34801561044257600080fd5b5061044b611084565b6040516104589190613974565b60405180910390f35b34801561046d57600080fd5b50610476611106565b6040516104839190613c40565b60405180910390f35b34801561049857600080fd5b506104b360048036038101906104ae9190613ad5565b61110f565b6040516104c09190613b30565b60405180910390f35b3480156104d557600080fd5b506104f060048036038101906104eb9190613c5b565b61122c565b6040516104fd9190613b30565b60405180910390f35b34801561051257600080fd5b5061051b61124c565b6040516105289190613b30565b60405180910390f35b34801561053d57600080fd5b5061054661125f565b6040516105539190613b30565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613c5b565b611272565b6040516105909190613b30565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb9190613c88565b6112a5565b005b3480156105ce57600080fd5b506105e960048036038101906105e49190613b77565b611395565b005b3480156105f757600080fd5b50610612600480360381019061060d9190613cc8565b611447565b005b34801561062057600080fd5b50610629611537565b6040516106369190613974565b60405180910390f35b34801561064b57600080fd5b5061065461153d565b6040516106619190613974565b60405180910390f35b34801561067657600080fd5b5061067f611543565b60405161068c9190613974565b60405180910390f35b3480156106a157600080fd5b506106bc60048036038101906106b79190613d08565b611549565b005b3480156106ca57600080fd5b506106e560048036038101906106e09190613c5b565b61164d565b6040516106f29190613974565b60405180910390f35b34801561070757600080fd5b50610710611696565b005b34801561071e57600080fd5b506107276117e9565b6040516107349190613974565b60405180910390f35b34801561074957600080fd5b506107526117ef565b60405161075f9190613974565b60405180910390f35b34801561077457600080fd5b5061077d6117f5565b60405161078a9190613d7e565b60405180910390f35b34801561079f57600080fd5b506107a8611804565b6040516107b59190613b30565b60405180910390f35b3480156107ca57600080fd5b506107e560048036038101906107e09190613c5b565b611817565b6040516107f29190613b30565b60405180910390f35b34801561080757600080fd5b50610822600480360381019061081d9190613b77565b611837565b005b34801561083057600080fd5b506108396118e9565b6040516108469190613d7e565b60405180910390f35b34801561085b57600080fd5b5061087660048036038101906108719190613c5b565b611912565b005b34801561088457600080fd5b5061089f600480360381019061089a9190613dfe565b611ab1565b005b3480156108ad57600080fd5b506108c860048036038101906108c39190613c5b565b611be9565b6040516108d59190613b30565b60405180910390f35b3480156108ea57600080fd5b506108f3611c09565b6040516109009190613a1f565b60405180910390f35b34801561091557600080fd5b5061091e611c46565b60405161092b9190613974565b60405180910390f35b34801561094057600080fd5b50610949611c4c565b6040516109569190613d7e565b60405180910390f35b34801561096b57600080fd5b5061098660048036038101906109819190613ad5565b611c72565b6040516109939190613b30565b60405180910390f35b3480156109a857600080fd5b506109b1611c87565b6040516109be9190613974565b60405180910390f35b3480156109d357600080fd5b506109dc611c8d565b6040516109e99190613974565b60405180910390f35b3480156109fe57600080fd5b50610a07611c93565b604051610a149190613b30565b60405180910390f35b348015610a2957600080fd5b50610a446004803603810190610a3f9190613ba4565b611ca6565b005b348015610a5257600080fd5b50610a6d6004803603810190610a689190613e5e565b611d97565b604051610a7a9190613974565b60405180910390f35b348015610a8f57600080fd5b50610aaa6004803603810190610aa59190613ba4565b611e1e565b005b348015610ab857600080fd5b50610ad36004803603810190610ace9190613c5b565b611ebd565b005b348015610ae157600080fd5b50610afc6004803603810190610af79190613cc8565b61207e565b005b348015610b0a57600080fd5b50610b1361216e565b604051610b209190613efd565b60405180910390f35b348015610b3557600080fd5b50610b506004803603810190610b4b9190613c5b565b612194565b604051610b5d9190613b30565b60405180910390f35b348015610b7257600080fd5b50610b7b6121b4565b604051610b889190613b30565b60405180910390f35b601d5481565b60606040518060400160405280600981526020017f53616e746147726f770000000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610cb49190613974565b60405180910390a36001905092915050565b610cce612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5290613f64565b60405180910390fd5b80601960006101000a81548160ff02191690831515021790555050565b6000600254905090565b610d8a612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0e90613f64565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc60648484610e449190613fb3565b610e4e9190614024565b9081150290604051600060405180830381858888f19350505050158015610e79573d6000803e3d6000fd5b505050565b60115481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461107057610fef826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222d9092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61107b848484612291565b90509392505050565b60006111016110b4600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661164d565b6110f36110e2600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661164d565b600254612c2290919063ffffffff16565b612c2290919063ffffffff16565b905090565b60006009905090565b6000611119612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90613f64565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016111e1929190614055565b6020604051808303816000875af1158015611200573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112249190614093565b905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900460ff1681565b601c60019054906101000a900460ff1681565b600061129e827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610bd4565b9050919050565b6112ad612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190613f64565b60405180910390fd5b81601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61139d612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461142a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142190613f64565b60405180910390fd5b80601960016101000a81548160ff02191690831515021790555050565b61144f612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d390613f64565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60105481565b600f5481565b60085481565b611551612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d590613f64565b60405180910390fd5b83600e8190555082600f819055508160108190555061161e601054611610600f54600e546121c790919063ffffffff16565b6121c790919063ffffffff16565b6011819055508060115461163291906140c0565b60128190555060196012541061164757600080fd5b50505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61169e612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172290613f64565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60035481565b60045481565b60006117ff6118e9565b905090565b601960019054906101000a900460ff1681565b600d6020528060005260406000206000915054906101000a900460ff1681565b61183f612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c390613f64565b60405180910390fd5b80601c60036101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61191a612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199e90613f64565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611ab9612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3d90613f64565b60405180910390fd5b60005b83839050811015611be35781601a6000868685818110611b6c57611b6b6140f4565b5b9050602002016020810190611b819190613c5b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080611bdc90614123565b9050611b49565b50505050565b601b6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600581526020017f5347524f57000000000000000000000000000000000000000000000000000000815250905090565b600e5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c7f338484612291565b905092915050565b60185481565b60125481565b601c60029054906101000a900460ff1681565b611cae612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3290613f64565b60405180910390fd5b60078111611d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d75906141dd565b60405180910390fd5b633b9aca0081611d8e9190613fb3565b60088190555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e26612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90613f64565b60405180910390fd5b8060048190555050565b611ec5612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4990613f64565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb89061426f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612086612225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210a90613f64565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a6020528060005260406000206000915054906101000a900460ff1681565b601960009054906101000a900460ff1681565b60008082846121d691906140c0565b90508381101561221b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612212906142db565b60405180910390fd5b8091505092915050565b600033905090565b6000838311158290612275576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226c9190613a1f565b60405180910390fd5b506000838561228491906142fb565b9050809150509392505050565b6000601c60009054906101000a900460ff16156122ba576122b3848484612c6c565b9050612c1b565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561235e5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123b357601960009054906101000a900460ff166123b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a99061437b565b60405180910390fd5b5b6003548211158061240d5750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61244c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612443906143e7565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156124b75750601c60009054906101000a900460ff16155b80156124cf5750601c60019054906101000a900460ff165b801561251c5750601d54600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561252a57612529612e3f565b5b612532613436565b15801561258c5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561261c576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260a90614453565b60405180910390fd5b61261b613443565b5b601c60039054906101000a900460ff161561263c5761263b848461344c565b5b601960019054906101000a900460ff16156126df57601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d5906144bf565b60405180910390fd5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156127865750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127d1576008543a11156127d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c79061452b565b60405180910390fd5b5b6008543a101580156128315750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561288f576001601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b612918826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222d9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129c15750600960009054906101000a900460ff165b15612a5d57600454612a1b83600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b1115612a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5390614597565b60405180910390fd5b5b6000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b035750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612b0d5782612b19565b612b18858585613679565b5b9050612b6d81600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c0d9190613974565b60405180910390a360019150505b9392505050565b6000612c6483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061222d565b905092915050565b6000612cf7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222d9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d8c82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e2c9190613974565b60405180910390a3600190509392505050565b6001601c60006101000a81548160ff0219169083151502179055506000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000612edc6002612ece601154612ec0600e548761382190919063ffffffff16565b61389b90919063ffffffff16565b61389b90919063ffffffff16565b90506000612ef38284612c2290919063ffffffff16565b90506000600267ffffffffffffffff811115612f1257612f116145b7565b5b604051908082528060200260200182016040528015612f405781602001602082028036833780820191505090505b5090503081600081518110612f5857612f576140f4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061302391906145fb565b81600181518110613037576130366140f4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130d5959493929190614721565b600060405180830381600087803b1580156130ef57600080fd5b505af1158015613103573d6000803e3d6000fd5b50505050600047905060006131386131276002600e5461389b90919063ffffffff16565b601154612c2290919063ffffffff16565b9050600061317660026131688461315a600e548861382190919063ffffffff16565b61389b90919063ffffffff16565b61389b90919063ffffffff16565b905060006131a183613193600f548761382190919063ffffffff16565b61389b90919063ffffffff16565b905060006131cc846131be6010548861382190919063ffffffff16565b61389b90919063ffffffff16565b90506000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836175309060405161321a906147ac565b600060405180830381858888f193505050503d8060008114613258576040519150601f19603f3d011682016040523d82523d6000602084013e61325d565b606091505b50509050600090506000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683617530906040516132b1906147ac565b600060405180830381858888f193505050503d80600081146132ef576040519150601f19603f3d011682016040523d82523d6000602084013e6132f4565b606091505b505090506000905060008a111561340e57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308d600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161338e969594939291906147c1565b60606040518083038185885af11580156133ac573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133d19190614837565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858b60405161340592919061488a565b60405180910390a15b50505050505050505050506000601c60006101000a81548160ff021916908315150217905550565b6000806018541415905090565b43601881905550565b613455816138e5565b80156134ab5750601b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135015750600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135195750601c60039054906101000a900460ff165b806136175750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156135c65750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135fe57503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156136165750601c60039054906101000a900460ff165b5b15613675576001601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146136d9576011546136dd565b6012545b9050600061370760646136f9848761382190919063ffffffff16565b61389b90919063ffffffff16565b905061375b81600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516137fb9190613974565b60405180910390a36138168185612c2290919063ffffffff16565b925050509392505050565b60008083036138335760009050613895565b600082846138419190613fb3565b90508284826138509190614024565b14613890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161388790614925565b60405180910390fd5b809150505b92915050565b60006138dd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506138f8565b905092915050565b600080823b905060008111915050919050565b6000808311829061393f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139369190613a1f565b60405180910390fd5b506000838561394e9190614024565b9050809150509392505050565b6000819050919050565b61396e8161395b565b82525050565b60006020820190506139896000830184613965565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156139c95780820151818401526020810190506139ae565b60008484015250505050565b6000601f19601f8301169050919050565b60006139f18261398f565b6139fb818561399a565b9350613a0b8185602086016139ab565b613a14816139d5565b840191505092915050565b60006020820190508181036000830152613a3981846139e6565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a7682613a4b565b9050919050565b613a8681613a6b565b8114613a9157600080fd5b50565b600081359050613aa381613a7d565b92915050565b613ab28161395b565b8114613abd57600080fd5b50565b600081359050613acf81613aa9565b92915050565b60008060408385031215613aec57613aeb613a41565b5b6000613afa85828601613a94565b9250506020613b0b85828601613ac0565b9150509250929050565b60008115159050919050565b613b2a81613b15565b82525050565b6000602082019050613b456000830184613b21565b92915050565b613b5481613b15565b8114613b5f57600080fd5b50565b600081359050613b7181613b4b565b92915050565b600060208284031215613b8d57613b8c613a41565b5b6000613b9b84828501613b62565b91505092915050565b600060208284031215613bba57613bb9613a41565b5b6000613bc884828501613ac0565b91505092915050565b600080600060608486031215613bea57613be9613a41565b5b6000613bf886828701613a94565b9350506020613c0986828701613a94565b9250506040613c1a86828701613ac0565b9150509250925092565b600060ff82169050919050565b613c3a81613c24565b82525050565b6000602082019050613c556000830184613c31565b92915050565b600060208284031215613c7157613c70613a41565b5b6000613c7f84828501613a94565b91505092915050565b60008060408385031215613c9f57613c9e613a41565b5b6000613cad85828601613b62565b9250506020613cbe85828601613a94565b9150509250929050565b60008060408385031215613cdf57613cde613a41565b5b6000613ced85828601613a94565b9250506020613cfe85828601613b62565b9150509250929050565b60008060008060808587031215613d2257613d21613a41565b5b6000613d3087828801613ac0565b9450506020613d4187828801613ac0565b9350506040613d5287828801613ac0565b9250506060613d6387828801613ac0565b91505092959194509250565b613d7881613a6b565b82525050565b6000602082019050613d936000830184613d6f565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613dbe57613dbd613d99565b5b8235905067ffffffffffffffff811115613ddb57613dda613d9e565b5b602083019150836020820283011115613df757613df6613da3565b5b9250929050565b600080600060408486031215613e1757613e16613a41565b5b600084013567ffffffffffffffff811115613e3557613e34613a46565b5b613e4186828701613da8565b93509350506020613e5486828701613b62565b9150509250925092565b60008060408385031215613e7557613e74613a41565b5b6000613e8385828601613a94565b9250506020613e9485828601613a94565b9150509250929050565b6000819050919050565b6000613ec3613ebe613eb984613a4b565b613e9e565b613a4b565b9050919050565b6000613ed582613ea8565b9050919050565b6000613ee782613eca565b9050919050565b613ef781613edc565b82525050565b6000602082019050613f126000830184613eee565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613f4e60208361399a565b9150613f5982613f18565b602082019050919050565b60006020820190508181036000830152613f7d81613f41565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613fbe8261395b565b9150613fc98361395b565b9250828202613fd78161395b565b91508282048414831517613fee57613fed613f84565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061402f8261395b565b915061403a8361395b565b92508261404a57614049613ff5565b5b828204905092915050565b600060408201905061406a6000830185613d6f565b6140776020830184613965565b9392505050565b60008151905061408d81613b4b565b92915050565b6000602082840312156140a9576140a8613a41565b5b60006140b78482850161407e565b91505092915050565b60006140cb8261395b565b91506140d68361395b565b92508282019050808211156140ee576140ed613f84565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061412e8261395b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036141605761415f613f84565b5b600182019050919050565b7f4d6178206761732073686f756c6420626520686967686572207468616e20372060008201527f6777656900000000000000000000000000000000000000000000000000000000602082015250565b60006141c760248361399a565b91506141d28261416b565b604082019050919050565b600060208201905081810360008301526141f6816141ba565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061425960268361399a565b9150614264826141fd565b604082019050919050565b600060208201905081810360008301526142888161424c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142c5601b8361399a565b91506142d08261428f565b602082019050919050565b600060208201905081810360008301526142f4816142b8565b9050919050565b60006143068261395b565b91506143118361395b565b925082820390508181111561432957614328613f84565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061436560148361399a565b91506143708261432f565b602082019050919050565b6000602082019050818103600083015261439481614358565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006143d160118361399a565b91506143dc8261439b565b602082019050919050565b60006020820190508181036000830152614400816143c4565b9050919050565b7f5a65726f2062616c616e63652076696f6c617465642100000000000000000000600082015250565b600061443d60168361399a565b915061444882614407565b602082019050919050565b6000602082019050818103600083015261446c81614430565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b60006144a9600b8361399a565b91506144b482614473565b602082019050919050565b600060208201905081810360008301526144d88161449c565b9050919050565b7f3e53656c6c206f6e2077616c6c657420616374696f6e00000000000000000000600082015250565b600061451560168361399a565b9150614520826144df565b602082019050919050565b6000602082019050818103600083015261454481614508565b9050919050565b7f4d61782077616c6c65742076696f6c6174656421000000000000000000000000600082015250565b600061458160148361399a565b915061458c8261454b565b602082019050919050565b600060208201905081810360008301526145b081614574565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506145f581613a7d565b92915050565b60006020828403121561461157614610613a41565b5b600061461f848285016145e6565b91505092915050565b6000819050919050565b600061464d61464861464384614628565b613e9e565b61395b565b9050919050565b61465d81614632565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61469881613a6b565b82525050565b60006146aa838361468f565b60208301905092915050565b6000602082019050919050565b60006146ce82614663565b6146d8818561466e565b93506146e38361467f565b8060005b838110156147145781516146fb888261469e565b9750614706836146b6565b9250506001810190506146e7565b5085935050505092915050565b600060a0820190506147366000830188613965565b6147436020830187614654565b818103604083015261475581866146c3565b90506147646060830185613d6f565b6147716080830184613965565b9695505050505050565b600081905092915050565b50565b600061479660008361477b565b91506147a182614786565b600082019050919050565b60006147b782614789565b9150819050919050565b600060c0820190506147d66000830189613d6f565b6147e36020830188613965565b6147f06040830187614654565b6147fd6060830186614654565b61480a6080830185613d6f565b61481760a0830184613965565b979650505050505050565b60008151905061483181613aa9565b92915050565b6000806000606084860312156148505761484f613a41565b5b600061485e86828701614822565b935050602061486f86828701614822565b925050604061488086828701614822565b9150509250925092565b600060408201905061489f6000830185613965565b6148ac6020830184613965565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061490f60218361399a565b915061491a826148b3565b604082019050919050565b6000602082019050818103600083015261493e81614902565b905091905056fea2646970667358221220e3a7c129ca7e457b2d617cead016abe325a2ccae82da2ff85b382a1063a0707e64736f6c63430008110033

Deployed Bytecode Sourcemap

8977:12199:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10641:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12172:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13028:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19674:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12434:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20964:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10013:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14420:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12864:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12348:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20782:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9797:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9643:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10513:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13252:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19173:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20447:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19780:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9979:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9941:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9517:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20042:397;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12614:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8570:148;;;;;;;;;;;;;:::i;:::-;;9154:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9220:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12528:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10342:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9847:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19304:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8354:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14235:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20564:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10433:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12258:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9903:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10245:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13733:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10273:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10047:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10560:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19503:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12725:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19394:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8726:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19907:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10208:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10381:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10305:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10641:54;;;;:::o;12172:78::-;12220:13;12243:5;;;;;;;;;;;;;;;;;12236:12;;12172:78;:::o;13028:216::-;13103:4;13155:6;13120:11;:23;13132:10;13120:23;;;;;;;;;;;;;;;:32;13144:7;13120:32;;;;;;;;;;;;;;;:41;;;;13198:7;13177:37;;13186:10;13177:37;;;13207:6;13177:37;;;;;;:::i;:::-;;;;;;;;13232:4;13225:11;;13028:216;;;;:::o;19674:98::-;8491:12;:10;:12::i;:::-;8481:22;;:6;;;;;;;;;;:22;;;8473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19755:9:::1;19741:11;;:23;;;;;;;;;;;;;;;;;;19674:98:::0;:::o;12434:86::-;12489:7;12506:12;;12499:19;;12434:86;:::o;20964:207::-;8491:12;:10;:12::i;:::-;8481:22;;:6;;;;;;;;;;:22;;;8473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21047:17:::1;21067:21;21047:41;;21107:10;21099:28;;:64;21159:3;21140:16;21128:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;21099:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21036:135;20964:207:::0;:::o;10013:27::-;;;;:::o;14420:370::-;14520:4;14576:17;14541:11;:19;14553:6;14541:19;;;;;;;;;;;;;;;:31;14561:10;14541:31;;;;;;;;;;;;;;;;:52;14537:188;;14644:69;14680:6;14644:69;;;;;;;;;;;;;;;;;:11;:19;14656:6;14644:19;;;;;;;;;;;;;;;:31;14664:10;14644:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;14610:11;:19;14622:6;14610:19;;;;;;;;;;;;;;;:31;14630:10;14610:31;;;;;;;;;;;;;;;:103;;;;14537:188;14742:40;14756:6;14764:9;14775:6;14742:13;:40::i;:::-;14735:47;;14420:370;;;;;:::o;12864:156::-;12917:7;12944:68;12989:22;12999:11;;;;;;;;;;;12989:9;:22::i;:::-;12944:40;12961:22;12971:11;;;;;;;;;;;12961:9;:22::i;:::-;12944:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;12937:75;;12864:156;:::o;12348:78::-;12400:5;9084:1;12408:16;;12348:78;:::o;20782:174::-;20867:12;8491;:10;:12::i;:::-;8481:22;;:6;;;;;;;;;;:22;;;8473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20906:12:::1;20899:29;;;20929:10;20941:6;20899:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20892:56;;20782:174:::0;;;;:::o;9797:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;9643:33::-;;;;;;;;;;;;;:::o;10513:40::-;;;;;;;;;;;;;:::o;13252:122::-;13307:4;13331:35;13339:7;13348:17;13331:7;:35::i;:::-;13324:42;;13252:122;;;:::o;19173:119::-;8491:12;:10;:12::i;:::-;8481:22;;:6;;;;;;;;;;:22;;;8473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19279:5:::1;19256:10;:20;19267:8;19256:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;19173:119:::0;;:::o;20447:99::-;8491:12;:10;:12::i;:::-;8481:22;;:6;;;;;;;;;;:22;;;8473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20531:7:::1;20515:13;;:23;;;;;;;;;;;;;;;;;;20447:99:::0;:::o;19780:119::-;8491:12;:10;:12::i;:::-;8481:22;;:6;;;;;;;;;;:22;;;8473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19885:6:::1;19863:11;:19;19875:6;19863:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;19780:119:::0;;:::o;9979:25::-;;;;:::o;9941:31::-;;;;:::o;9517:33::-;;;;:::o;20042:397::-;8491:12;:10;:12::i;:::-;8481:22;;:6;;;;;;;;;;:22;;;8473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20189:9:::1;20174:12;:24;;;;20224:15;20209:12;:30;;;;20259:9;20250:6;:18;;;;20292:42;20327:6;;20292:30;20309:12;;20292;;:16;;:30;;;;:::i;:::-;:34;;:42;;;;:::i;:::-;20281:8;:53;;;;20376:12;20365:8;;:23;;;;:::i;:::-;20345:17;:43;;;;20428:2;20408:17;;:22;20399:32;;;::::0;::::1;;20042:397:::0;;;;:::o;12614:103::-;12680:7;12697:9;:18;12707:7;12697:18;;;;;;;;;;;;;;;;12690:25;;12614:103;;;:::o;8570:148::-;8491:12;:10;:12::i;:::-;8481:22;;:6;;;;;;;;;;:22;;;8473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8677:1:::1;8640:40;;8661:6;::::0;::::1;;;;;;;;8640:40;;;;;;;;;;;;8708:1;8691:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;8570:148::o:0;9154:59::-;;;;:::o;9220:58::-;;;;:::o;12528:78::-;12580:7;12597;:5;:7::i;:::-;12590:14;;12528:78;:::o;10342:32::-;;;;;;;;;;;;;:::o;9847:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;19304:82::-;8491:12;:10;:12::i;:::-;8481:22;;:6;;;;;;;;;;:22;;;8473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19373:5:::1;19363:7;;:15;;;;;;;;;;;;;;;;;;19304:82:::0;:::o;8354:79::-;8392:7;8419:6;;;;;;;;;;;8412:13;;8354:79;:::o;14235:177::-;8491:12;:10;:12::i;:::-;8481:22;;:6;;;;;;;;;;:22;;;8473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14322:4:::1;14297:14:::0;:22:::1;14312:6;14297:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14359:4;14337:11;:19;14349:6;14337:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;14400:4;14374:15;:23;14390:6;14374:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;14235:177:::0;:::o;20564:210::-;8491:12;:10;:12::i;:::-;8481:22;;:6;;;;;;;;;;:22;;;8473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20666:9:::1;20661:106;20681:9;;:16;;20677:1;:20;20661:106;;;20749:6;20719:13;:27;20733:9;;20743:1;20733:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20719:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;20699:3;;;;:::i;:::-;;;20661:106;;;;20564:210:::0;;;:::o;10433:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;12258:82::-;12308:13;12331:7;;;;;;;;;;;;;;;;;12324:14;;12258:82;:::o;9903:31::-;;;;:::o;10245:19::-;;;;;;;;;;;;;:::o;13733:156::-;13813:4;13837:44;13851:10;13863:9;13874:6;13837:13;:44::i;:::-;13830:51;;13733:156;;;;:::o;10273:25::-;;;;:::o;10047:36::-;;;;:::o;10560:45::-;;;;;;;;;;;;;:::o;19503:163::-;8491:12;:10;:12::i;:::-;8481:22;;:6;;;;;;;;;;:22;;;8473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19584:1:::1;19575:6;:10;19566:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;19652:6;19643;:15;;;;:::i;:::-;19637:3;:21;;;;19503:163:::0;:::o;12725:131::-;12809:7;12826:11;:19;12838:6;12826:19;;;;;;;;;;;;;;;:28;12846:7;12826:28;;;;;;;;;;;;;;;;12819:35;;12725:131;;;;:::o;19394:101::-;8491:12;:10;:12::i;:::-;8481:22;;:6;;;;;;;;;;:22;;;8473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19479:8:::1;19466:10;:21;;;;19394:101:::0;:::o;8726:244::-;8491:12;:10;:12::i;:::-;8481:22;;:6;;;;;;;;;;:22;;;8473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8835:1:::1;8815:22;;:8;:22;;::::0;8807:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;8925:8;8896:38;;8917:6;::::0;::::1;;;;;;;;8896:38;;;;;;;;;;;;8954:8;8945:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;8726:244:::0;:::o;19907:127::-;8491:12;:10;:12::i;:::-;8481:22;;:6;;;;;;;;;;:22;;;8473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20020:6:::1;19994:15;:23;20010:6;19994:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;19907:127:::0;;:::o;10208:30::-;;;;;;;;;;;;;:::o;10381:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;10305:30::-;;;;;;;;;;;;;:::o;6566:179::-;6624:7;6644:9;6660:1;6656;:5;;;;:::i;:::-;6644:17;;6685:1;6680;:6;;6672:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;6736:1;6729:8;;;6566:179;;;;:::o;7694:115::-;7747:15;7790:10;7775:26;;7694:115;:::o;6897:190::-;6983:7;7016:1;7011;:6;;7019:12;7003:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7043:9;7059:1;7055;:5;;;;:::i;:::-;7043:17;;7078:1;7071:8;;;6897:190;;;;;:::o;14798:1751::-;14890:4;14911:16;;;;;;;;;;;14907:73;;;14937:41;14952:6;14960:9;14971:6;14937:14;:41::i;:::-;14930:48;;;;14907:73;14994:14;:22;15009:6;14994:22;;;;;;;;;;;;;;;;;;;;;;;;;14993:23;:53;;;;;15021:14;:25;15036:9;15021:25;;;;;;;;;;;;;;;;;;;;;;;;;15020:26;14993:53;14990:128;;;15070:11;;;;;;;;;;;15062:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;14990:128;15148:12;;15138:6;:22;;:49;;;;15164:15;:23;15180:6;15164:23;;;;;;;;;;;;;;;;;;;;;;;;;15138:49;15130:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;15238:4;;;;;;;;;;;15224:18;;:10;:18;;;;:39;;;;;15247:16;;;;;;;;;;;15246:17;15224:39;:64;;;;;15267:21;;;;;;;;;;;15224:64;:109;;;;;15320:13;;15292:9;:24;15310:4;15292:24;;;;;;;;;;;;;;;;:41;;15224:109;15220:141;;;15336:23;:21;:23::i;:::-;15220:141;15376:10;:8;:10::i;:::-;15375:11;:32;;;;;15403:4;;;;;;;;;;;15390:17;;:9;:17;;;15375:32;15371:144;;;15452:1;15432:9;:17;15442:6;15432:17;;;;;;;;;;;;;;;;:21;15424:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;15495:8;:6;:8::i;:::-;15371:144;15534:7;;;;;;;;;;;15531:65;;;15557:27;15566:6;15574:9;15557:8;:27::i;:::-;15531:65;15634:13;;;;;;;;;;;15630:91;;;15673:13;:21;15687:6;15673:21;;;;;;;;;;;;;;;;;;;;;;;;;15672:22;15664:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;15630:91;15750:4;;;;;;;;;;;15737:17;;:9;:17;;;:44;;;;;15759:14;:22;15774:6;15759:22;;;;;;;;;;;;;;;;;;;;;;;;;15758:23;15737:44;15733:131;;;15821:3;;15806:11;:18;;15798:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;15733:131;15893:3;;15878:11;:18;;:39;;;;;15913:4;;;;;;;;;;;15900:17;;:9;:17;;;;15878:39;15874:103;;;15961:4;15934:13;:24;15948:9;15934:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;15874:103;16037:53;16059:6;16037:53;;;;;;;;;;;;;;;;;:9;:17;16047:6;16037:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16017:9;:17;16027:6;16017:17;;;;;;;;;;;;;;;:73;;;;16108:15;:26;16124:9;16108:26;;;;;;;;;;;;;;;;;;;;;;;;;16107:27;:45;;;;;16138:14;;;;;;;;;;;16107:45;16103:157;;;16213:10;;16177:32;16202:6;16177:9;:20;16187:9;16177:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:46;;16169:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;16103:157;16272:19;16295:11;:19;16307:6;16295:19;;;;;;;;;;;;;;;;;;;;;;;;;16294:20;:47;;;;;16319:11;:22;16331:9;16319:22;;;;;;;;;;;;;;;;;;;;;;;;;16318:23;16294:47;:96;;16384:6;16294:96;;;16344:37;16355:6;16363:9;16374:6;16344:10;:37::i;:::-;16294:96;16272:118;;16424:37;16449:11;16424:9;:20;16434:9;16424:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;16401:9;:20;16411:9;16401:20;;;;;;;;;;;;;;;:60;;;;16496:9;16479:40;;16488:6;16479:40;;;16507:11;16479:40;;;;;;:::i;:::-;;;;;;;;16537:4;16530:11;;;14798:1751;;;;;;:::o;6753:136::-;6811:7;6838:43;6842:1;6845;6838:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;6831:50;;6753:136;;;;:::o;13897:330::-;13990:4;14027:53;14049:6;14027:53;;;;;;;;;;;;;;;;;:9;:17;14037:6;14027:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14007:9;:17;14017:6;14007:17;;;;;;;;;;;;;;;:73;;;;14114:32;14139:6;14114:9;:20;14124:9;14114:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14091:9;:20;14101:9;14091:20;;;;;;;;;;;;;;;:55;;;;14179:9;14162:35;;14171:6;14162:35;;;14190:6;14162:35;;;;;;:::i;:::-;;;;;;;;14215:4;14208:11;;13897:330;;;;;:::o;16997:1628::-;10819:4;10800:16;;:23;;;;;;;;;;;;;;;;;;17062::::1;17088:9;:24;17106:4;17088:24;;;;;;;;;;;;;;;;17062:50;;17123:23;17149:54;17201:1;17149:47;17187:8;;17149:33;17169:12;;17149:15;:19;;:33;;;;:::i;:::-;:37;;:47;;;;:::i;:::-;:51;;:54;;;;:::i;:::-;17123:80;;17214:20;17237:36;17257:15;17237;:19;;:36;;;;:::i;:::-;17214:59;;17286:21;17324:1;17310:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17286:40;;17355:4;17337;17342:1;17337:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;17381:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17371:4;17376:1;17371:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;17407:6;;;;;;;;;;;:57;;;17479:12;17506:1;17522:4;17549;17569:15;17407:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17608:17;17628:21;17608:41;;17662:19;17684:33;17697:19;17714:1;17697:12;;:16;;:19;;;;:::i;:::-;17684:8;;:12;;:33;;;;:::i;:::-;17662:55;;17730:26;17759:51;17808:1;17759:44;17791:11;17759:27;17773:12;;17759:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;17730:80;;17821:26;17850:44;17882:11;17850:27;17864:12;;17850:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;17821:73;;17905:20;17928:38;17954:11;17928:21;17942:6;;17928:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;17905:61;;17988:16;18017:15;;;;;;;;;;;18009:29;;18047:18;18073:5;18009:74;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17987:96;;;18108:5;18094:19;;18127:16;18156:9;;;;;;;;;;;18148:23;;18180:12;18200:5;18148:62;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18126:84;;;18235:5;18221:19;;18275:1;18257:15;:19;18253:365;;;18293:6;;;;;;;;;;;:22;;;18324:18;18370:4;18394:15;18428:1;18448::::0;18468:21:::1;;;;;;;;;;;18508:15;18293:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18558:48;18570:18;18590:15;18558:48;;;;;;;:::i;:::-;;;;;;;;18253:365;17051:1574;;;;;;;;;;;10865:5:::0;10846:16;;:24;;;;;;;;;;;;;;;;;;16997:1628::o;13382:90::-;13425:4;13463:1;13449:10;;:15;;13442:22;;13382:90;:::o;13480:71::-;13531:12;13518:10;:25;;;;13480:71::o;18633:306::-;18709:17;18716:9;18709:6;:17::i;:::-;:43;;;;;18731:10;:21;18742:9;18731:21;;;;;;;;;;;;;;;;;;;;;;;;;18730:22;18709:43;:70;;;;;18757:11;:22;18769:9;18757:22;;;;;;;;;;;;;;;;;;;;;;;;;18756:23;18709:70;:81;;;;;18783:7;;;;;;;;;;;18709:81;:160;;;;18804:4;;;;;;;;;;;18794:14;;:6;:14;;;:37;;;;;18813:10;:18;18824:6;18813:18;;;;;;;;;;;;;;;;;;;;;;;;;18812:19;18794:37;:64;;;;;18849:9;18835:23;;:10;:23;;;;18794:64;:75;;;;;18862:7;;;;;;;;;;;18794:75;18709:160;18706:222;;;18912:4;18885:13;:24;18899:9;18885:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;18706:222;18633:306;;:::o;16557:432::-;16646:7;16666:21;16698:9;16690:17;;:4;;;;;;;;;;;:17;;;:48;;16730:8;;16690:48;;;16710:17;;16690:48;16666:72;;16749:17;16769:34;16799:3;16769:25;16780:13;16769:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;16749:54;;16843:39;16872:9;16843;:24;16861:4;16843:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16816:9;:24;16834:4;16816:24;;;;;;;;;;;;;;;:66;;;;16923:4;16898:42;;16907:6;16898:42;;;16930:9;16898:42;;;;;;:::i;:::-;;;;;;;;16960:21;16971:9;16960:6;:10;;:21;;;;:::i;:::-;16953:28;;;;16557:432;;;;;:::o;7095:222::-;7153:7;7182:1;7177;:6;7173:23;;7193:1;7186:8;;;;7173:23;7206:9;7222:1;7218;:5;;;;:::i;:::-;7206:17;;7251:1;7246;7242;:5;;;;:::i;:::-;:10;7234:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;7308:1;7301:8;;;7095:222;;;;;:::o;7325:132::-;7383:7;7410:39;7414:1;7417;7410:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;7403:46;;7325:132;;;;:::o;18947:185::-;19000:4;19017:9;19082:4;19070:17;19062:25;;19123:1;19116:4;:8;19109:15;;;18947:185;;;:::o;7465:189::-;7551:7;7583:1;7579;:5;7586:12;7571:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7610:9;7626:1;7622;:5;;;;:::i;:::-;7610:17;;7645:1;7638:8;;;7465:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:116::-;3868:21;3883:5;3868:21;:::i;:::-;3861:5;3858:32;3848:60;;3904:1;3901;3894:12;3848:60;3798:116;:::o;3920:133::-;3963:5;4001:6;3988:20;3979:29;;4017:30;4041:5;4017:30;:::i;:::-;3920:133;;;;:::o;4059:323::-;4115:6;4164:2;4152:9;4143:7;4139:23;4135:32;4132:119;;;4170:79;;:::i;:::-;4132:119;4290:1;4315:50;4357:7;4348:6;4337:9;4333:22;4315:50;:::i;:::-;4305:60;;4261:114;4059:323;;;;:::o;4388:329::-;4447:6;4496:2;4484:9;4475:7;4471:23;4467:32;4464:119;;;4502:79;;:::i;:::-;4464:119;4622:1;4647:53;4692:7;4683:6;4672:9;4668:22;4647:53;:::i;:::-;4637:63;;4593:117;4388:329;;;;:::o;4723:619::-;4800:6;4808;4816;4865:2;4853:9;4844:7;4840:23;4836:32;4833:119;;;4871:79;;:::i;:::-;4833:119;4991:1;5016:53;5061:7;5052:6;5041:9;5037:22;5016:53;:::i;:::-;5006:63;;4962:117;5118:2;5144:53;5189:7;5180:6;5169:9;5165:22;5144:53;:::i;:::-;5134:63;;5089:118;5246:2;5272:53;5317:7;5308:6;5297:9;5293:22;5272:53;:::i;:::-;5262:63;;5217:118;4723:619;;;;;:::o;5348:86::-;5383:7;5423:4;5416:5;5412:16;5401:27;;5348:86;;;:::o;5440:112::-;5523:22;5539:5;5523:22;:::i;:::-;5518:3;5511:35;5440:112;;:::o;5558:214::-;5647:4;5685:2;5674:9;5670:18;5662:26;;5698:67;5762:1;5751:9;5747:17;5738:6;5698:67;:::i;:::-;5558:214;;;;:::o;5778:329::-;5837:6;5886:2;5874:9;5865:7;5861:23;5857:32;5854:119;;;5892:79;;:::i;:::-;5854:119;6012:1;6037:53;6082:7;6073:6;6062:9;6058:22;6037:53;:::i;:::-;6027:63;;5983:117;5778:329;;;;:::o;6113:468::-;6178:6;6186;6235:2;6223:9;6214:7;6210:23;6206:32;6203:119;;;6241:79;;:::i;:::-;6203:119;6361:1;6386:50;6428:7;6419:6;6408:9;6404:22;6386:50;:::i;:::-;6376:60;;6332:114;6485:2;6511:53;6556:7;6547:6;6536:9;6532:22;6511:53;:::i;:::-;6501:63;;6456:118;6113:468;;;;;:::o;6587:::-;6652:6;6660;6709:2;6697:9;6688:7;6684:23;6680:32;6677:119;;;6715:79;;:::i;:::-;6677:119;6835:1;6860:53;6905:7;6896:6;6885:9;6881:22;6860:53;:::i;:::-;6850:63;;6806:117;6962:2;6988:50;7030:7;7021:6;7010:9;7006:22;6988:50;:::i;:::-;6978:60;;6933:115;6587:468;;;;;:::o;7061:765::-;7147:6;7155;7163;7171;7220:3;7208:9;7199:7;7195:23;7191:33;7188:120;;;7227:79;;:::i;:::-;7188:120;7347:1;7372:53;7417:7;7408:6;7397:9;7393:22;7372:53;:::i;:::-;7362:63;;7318:117;7474:2;7500:53;7545:7;7536:6;7525:9;7521:22;7500:53;:::i;:::-;7490:63;;7445:118;7602:2;7628:53;7673:7;7664:6;7653:9;7649:22;7628:53;:::i;:::-;7618:63;;7573:118;7730:2;7756:53;7801:7;7792:6;7781:9;7777:22;7756:53;:::i;:::-;7746:63;;7701:118;7061:765;;;;;;;:::o;7832:118::-;7919:24;7937:5;7919:24;:::i;:::-;7914:3;7907:37;7832:118;;:::o;7956:222::-;8049:4;8087:2;8076:9;8072:18;8064:26;;8100:71;8168:1;8157:9;8153:17;8144:6;8100:71;:::i;:::-;7956:222;;;;:::o;8184:117::-;8293:1;8290;8283:12;8307:117;8416:1;8413;8406:12;8430:117;8539:1;8536;8529:12;8570:568;8643:8;8653:6;8703:3;8696:4;8688:6;8684:17;8680:27;8670:122;;8711:79;;:::i;:::-;8670:122;8824:6;8811:20;8801:30;;8854:18;8846:6;8843:30;8840:117;;;8876:79;;:::i;:::-;8840:117;8990:4;8982:6;8978:17;8966:29;;9044:3;9036:4;9028:6;9024:17;9014:8;9010:32;9007:41;9004:128;;;9051:79;;:::i;:::-;9004:128;8570:568;;;;;:::o;9144:698::-;9236:6;9244;9252;9301:2;9289:9;9280:7;9276:23;9272:32;9269:119;;;9307:79;;:::i;:::-;9269:119;9455:1;9444:9;9440:17;9427:31;9485:18;9477:6;9474:30;9471:117;;;9507:79;;:::i;:::-;9471:117;9620:80;9692:7;9683:6;9672:9;9668:22;9620:80;:::i;:::-;9602:98;;;;9398:312;9749:2;9775:50;9817:7;9808:6;9797:9;9793:22;9775:50;:::i;:::-;9765:60;;9720:115;9144:698;;;;;:::o;9848:474::-;9916:6;9924;9973:2;9961:9;9952:7;9948:23;9944:32;9941:119;;;9979:79;;:::i;:::-;9941:119;10099:1;10124:53;10169:7;10160:6;10149:9;10145:22;10124:53;:::i;:::-;10114:63;;10070:117;10226:2;10252:53;10297:7;10288:6;10277:9;10273:22;10252:53;:::i;:::-;10242:63;;10197:118;9848:474;;;;;:::o;10328:60::-;10356:3;10377:5;10370:12;;10328:60;;;:::o;10394:142::-;10444:9;10477:53;10495:34;10504:24;10522:5;10504:24;:::i;:::-;10495:34;:::i;:::-;10477:53;:::i;:::-;10464:66;;10394:142;;;:::o;10542:126::-;10592:9;10625:37;10656:5;10625:37;:::i;:::-;10612:50;;10542:126;;;:::o;10674:150::-;10748:9;10781:37;10812:5;10781:37;:::i;:::-;10768:50;;10674:150;;;:::o;10830:179::-;10941:61;10996:5;10941:61;:::i;:::-;10936:3;10929:74;10830:179;;:::o;11015:270::-;11132:4;11170:2;11159:9;11155:18;11147:26;;11183:95;11275:1;11264:9;11260:17;11251:6;11183:95;:::i;:::-;11015:270;;;;:::o;11291:182::-;11431:34;11427:1;11419:6;11415:14;11408:58;11291:182;:::o;11479:366::-;11621:3;11642:67;11706:2;11701:3;11642:67;:::i;:::-;11635:74;;11718:93;11807:3;11718:93;:::i;:::-;11836:2;11831:3;11827:12;11820:19;;11479:366;;;:::o;11851:419::-;12017:4;12055:2;12044:9;12040:18;12032:26;;12104:9;12098:4;12094:20;12090:1;12079:9;12075:17;12068:47;12132:131;12258:4;12132:131;:::i;:::-;12124:139;;11851:419;;;:::o;12276:180::-;12324:77;12321:1;12314:88;12421:4;12418:1;12411:15;12445:4;12442:1;12435:15;12462:410;12502:7;12525:20;12543:1;12525:20;:::i;:::-;12520:25;;12559:20;12577:1;12559:20;:::i;:::-;12554:25;;12614:1;12611;12607:9;12636:30;12654:11;12636:30;:::i;:::-;12625:41;;12815:1;12806:7;12802:15;12799:1;12796:22;12776:1;12769:9;12749:83;12726:139;;12845:18;;:::i;:::-;12726:139;12510:362;12462:410;;;;:::o;12878:180::-;12926:77;12923:1;12916:88;13023:4;13020:1;13013:15;13047:4;13044:1;13037:15;13064:185;13104:1;13121:20;13139:1;13121:20;:::i;:::-;13116:25;;13155:20;13173:1;13155:20;:::i;:::-;13150:25;;13194:1;13184:35;;13199:18;;:::i;:::-;13184:35;13241:1;13238;13234:9;13229:14;;13064:185;;;;:::o;13255:332::-;13376:4;13414:2;13403:9;13399:18;13391:26;;13427:71;13495:1;13484:9;13480:17;13471:6;13427:71;:::i;:::-;13508:72;13576:2;13565:9;13561:18;13552:6;13508:72;:::i;:::-;13255:332;;;;;:::o;13593:137::-;13647:5;13678:6;13672:13;13663:22;;13694:30;13718:5;13694:30;:::i;:::-;13593:137;;;;:::o;13736:345::-;13803:6;13852:2;13840:9;13831:7;13827:23;13823:32;13820:119;;;13858:79;;:::i;:::-;13820:119;13978:1;14003:61;14056:7;14047:6;14036:9;14032:22;14003:61;:::i;:::-;13993:71;;13949:125;13736:345;;;;:::o;14087:191::-;14127:3;14146:20;14164:1;14146:20;:::i;:::-;14141:25;;14180:20;14198:1;14180:20;:::i;:::-;14175:25;;14223:1;14220;14216:9;14209:16;;14244:3;14241:1;14238:10;14235:36;;;14251:18;;:::i;:::-;14235:36;14087:191;;;;:::o;14284:180::-;14332:77;14329:1;14322:88;14429:4;14426:1;14419:15;14453:4;14450:1;14443:15;14470:233;14509:3;14532:24;14550:5;14532:24;:::i;:::-;14523:33;;14578:66;14571:5;14568:77;14565:103;;14648:18;;:::i;:::-;14565:103;14695:1;14688:5;14684:13;14677:20;;14470:233;;;:::o;14709:223::-;14849:34;14845:1;14837:6;14833:14;14826:58;14918:6;14913:2;14905:6;14901:15;14894:31;14709:223;:::o;14938:366::-;15080:3;15101:67;15165:2;15160:3;15101:67;:::i;:::-;15094:74;;15177:93;15266:3;15177:93;:::i;:::-;15295:2;15290:3;15286:12;15279:19;;14938:366;;;:::o;15310:419::-;15476:4;15514:2;15503:9;15499:18;15491:26;;15563:9;15557:4;15553:20;15549:1;15538:9;15534:17;15527:47;15591:131;15717:4;15591:131;:::i;:::-;15583:139;;15310:419;;;:::o;15735:225::-;15875:34;15871:1;15863:6;15859:14;15852:58;15944:8;15939:2;15931:6;15927:15;15920:33;15735:225;:::o;15966:366::-;16108:3;16129:67;16193:2;16188:3;16129:67;:::i;:::-;16122:74;;16205:93;16294:3;16205:93;:::i;:::-;16323:2;16318:3;16314:12;16307:19;;15966:366;;;:::o;16338:419::-;16504:4;16542:2;16531:9;16527:18;16519:26;;16591:9;16585:4;16581:20;16577:1;16566:9;16562:17;16555:47;16619:131;16745:4;16619:131;:::i;:::-;16611:139;;16338:419;;;:::o;16763:177::-;16903:29;16899:1;16891:6;16887:14;16880:53;16763:177;:::o;16946:366::-;17088:3;17109:67;17173:2;17168:3;17109:67;:::i;:::-;17102:74;;17185:93;17274:3;17185:93;:::i;:::-;17303:2;17298:3;17294:12;17287:19;;16946:366;;;:::o;17318:419::-;17484:4;17522:2;17511:9;17507:18;17499:26;;17571:9;17565:4;17561:20;17557:1;17546:9;17542:17;17535:47;17599:131;17725:4;17599:131;:::i;:::-;17591:139;;17318:419;;;:::o;17743:194::-;17783:4;17803:20;17821:1;17803:20;:::i;:::-;17798:25;;17837:20;17855:1;17837:20;:::i;:::-;17832:25;;17881:1;17878;17874:9;17866:17;;17905:1;17899:4;17896:11;17893:37;;;17910:18;;:::i;:::-;17893:37;17743:194;;;;:::o;17943:170::-;18083:22;18079:1;18071:6;18067:14;18060:46;17943:170;:::o;18119:366::-;18261:3;18282:67;18346:2;18341:3;18282:67;:::i;:::-;18275:74;;18358:93;18447:3;18358:93;:::i;:::-;18476:2;18471:3;18467:12;18460:19;;18119:366;;;:::o;18491:419::-;18657:4;18695:2;18684:9;18680:18;18672:26;;18744:9;18738:4;18734:20;18730:1;18719:9;18715:17;18708:47;18772:131;18898:4;18772:131;:::i;:::-;18764:139;;18491:419;;;:::o;18916:167::-;19056:19;19052:1;19044:6;19040:14;19033:43;18916:167;:::o;19089:366::-;19231:3;19252:67;19316:2;19311:3;19252:67;:::i;:::-;19245:74;;19328:93;19417:3;19328:93;:::i;:::-;19446:2;19441:3;19437:12;19430:19;;19089:366;;;:::o;19461:419::-;19627:4;19665:2;19654:9;19650:18;19642:26;;19714:9;19708:4;19704:20;19700:1;19689:9;19685:17;19678:47;19742:131;19868:4;19742:131;:::i;:::-;19734:139;;19461:419;;;:::o;19886:172::-;20026:24;20022:1;20014:6;20010:14;20003:48;19886:172;:::o;20064:366::-;20206:3;20227:67;20291:2;20286:3;20227:67;:::i;:::-;20220:74;;20303:93;20392:3;20303:93;:::i;:::-;20421:2;20416:3;20412:12;20405:19;;20064:366;;;:::o;20436:419::-;20602:4;20640:2;20629:9;20625:18;20617:26;;20689:9;20683:4;20679:20;20675:1;20664:9;20660:17;20653:47;20717:131;20843:4;20717:131;:::i;:::-;20709:139;;20436:419;;;:::o;20861:161::-;21001:13;20997:1;20989:6;20985:14;20978:37;20861:161;:::o;21028:366::-;21170:3;21191:67;21255:2;21250:3;21191:67;:::i;:::-;21184:74;;21267:93;21356:3;21267:93;:::i;:::-;21385:2;21380:3;21376:12;21369:19;;21028:366;;;:::o;21400:419::-;21566:4;21604:2;21593:9;21589:18;21581:26;;21653:9;21647:4;21643:20;21639:1;21628:9;21624:17;21617:47;21681:131;21807:4;21681:131;:::i;:::-;21673:139;;21400:419;;;:::o;21825:172::-;21965:24;21961:1;21953:6;21949:14;21942:48;21825:172;:::o;22003:366::-;22145:3;22166:67;22230:2;22225:3;22166:67;:::i;:::-;22159:74;;22242:93;22331:3;22242:93;:::i;:::-;22360:2;22355:3;22351:12;22344:19;;22003:366;;;:::o;22375:419::-;22541:4;22579:2;22568:9;22564:18;22556:26;;22628:9;22622:4;22618:20;22614:1;22603:9;22599:17;22592:47;22656:131;22782:4;22656:131;:::i;:::-;22648:139;;22375:419;;;:::o;22800:170::-;22940:22;22936:1;22928:6;22924:14;22917:46;22800:170;:::o;22976:366::-;23118:3;23139:67;23203:2;23198:3;23139:67;:::i;:::-;23132:74;;23215:93;23304:3;23215:93;:::i;:::-;23333:2;23328:3;23324:12;23317:19;;22976:366;;;:::o;23348:419::-;23514:4;23552:2;23541:9;23537:18;23529:26;;23601:9;23595:4;23591:20;23587:1;23576:9;23572:17;23565:47;23629:131;23755:4;23629:131;:::i;:::-;23621:139;;23348:419;;;:::o;23773:180::-;23821:77;23818:1;23811:88;23918:4;23915:1;23908:15;23942:4;23939:1;23932:15;23959:143;24016:5;24047:6;24041:13;24032:22;;24063:33;24090:5;24063:33;:::i;:::-;23959:143;;;;:::o;24108:351::-;24178:6;24227:2;24215:9;24206:7;24202:23;24198:32;24195:119;;;24233:79;;:::i;:::-;24195:119;24353:1;24378:64;24434:7;24425:6;24414:9;24410:22;24378:64;:::i;:::-;24368:74;;24324:128;24108:351;;;;:::o;24465:85::-;24510:7;24539:5;24528:16;;24465:85;;;:::o;24556:158::-;24614:9;24647:61;24665:42;24674:32;24700:5;24674:32;:::i;:::-;24665:42;:::i;:::-;24647:61;:::i;:::-;24634:74;;24556:158;;;:::o;24720:147::-;24815:45;24854:5;24815:45;:::i;:::-;24810:3;24803:58;24720:147;;:::o;24873:114::-;24940:6;24974:5;24968:12;24958:22;;24873:114;;;:::o;24993:184::-;25092:11;25126:6;25121:3;25114:19;25166:4;25161:3;25157:14;25142:29;;24993:184;;;;:::o;25183:132::-;25250:4;25273:3;25265:11;;25303:4;25298:3;25294:14;25286:22;;25183:132;;;:::o;25321:108::-;25398:24;25416:5;25398:24;:::i;:::-;25393:3;25386:37;25321:108;;:::o;25435:179::-;25504:10;25525:46;25567:3;25559:6;25525:46;:::i;:::-;25603:4;25598:3;25594:14;25580:28;;25435:179;;;;:::o;25620:113::-;25690:4;25722;25717:3;25713:14;25705:22;;25620:113;;;:::o;25769:732::-;25888:3;25917:54;25965:5;25917:54;:::i;:::-;25987:86;26066:6;26061:3;25987:86;:::i;:::-;25980:93;;26097:56;26147:5;26097:56;:::i;:::-;26176:7;26207:1;26192:284;26217:6;26214:1;26211:13;26192:284;;;26293:6;26287:13;26320:63;26379:3;26364:13;26320:63;:::i;:::-;26313:70;;26406:60;26459:6;26406:60;:::i;:::-;26396:70;;26252:224;26239:1;26236;26232:9;26227:14;;26192:284;;;26196:14;26492:3;26485:10;;25893:608;;;25769:732;;;;:::o;26507:831::-;26770:4;26808:3;26797:9;26793:19;26785:27;;26822:71;26890:1;26879:9;26875:17;26866:6;26822:71;:::i;:::-;26903:80;26979:2;26968:9;26964:18;26955:6;26903:80;:::i;:::-;27030:9;27024:4;27020:20;27015:2;27004:9;27000:18;26993:48;27058:108;27161:4;27152:6;27058:108;:::i;:::-;27050:116;;27176:72;27244:2;27233:9;27229:18;27220:6;27176:72;:::i;:::-;27258:73;27326:3;27315:9;27311:19;27302:6;27258:73;:::i;:::-;26507:831;;;;;;;;:::o;27344:147::-;27445:11;27482:3;27467:18;;27344:147;;;;:::o;27497:114::-;;:::o;27617:398::-;27776:3;27797:83;27878:1;27873:3;27797:83;:::i;:::-;27790:90;;27889:93;27978:3;27889:93;:::i;:::-;28007:1;28002:3;27998:11;27991:18;;27617:398;;;:::o;28021:379::-;28205:3;28227:147;28370:3;28227:147;:::i;:::-;28220:154;;28391:3;28384:10;;28021:379;;;:::o;28406:807::-;28655:4;28693:3;28682:9;28678:19;28670:27;;28707:71;28775:1;28764:9;28760:17;28751:6;28707:71;:::i;:::-;28788:72;28856:2;28845:9;28841:18;28832:6;28788:72;:::i;:::-;28870:80;28946:2;28935:9;28931:18;28922:6;28870:80;:::i;:::-;28960;29036:2;29025:9;29021:18;29012:6;28960:80;:::i;:::-;29050:73;29118:3;29107:9;29103:19;29094:6;29050:73;:::i;:::-;29133;29201:3;29190:9;29186:19;29177:6;29133:73;:::i;:::-;28406:807;;;;;;;;;:::o;29219:143::-;29276:5;29307:6;29301:13;29292:22;;29323:33;29350:5;29323:33;:::i;:::-;29219:143;;;;:::o;29368:663::-;29456:6;29464;29472;29521:2;29509:9;29500:7;29496:23;29492:32;29489:119;;;29527:79;;:::i;:::-;29489:119;29647:1;29672:64;29728:7;29719:6;29708:9;29704:22;29672:64;:::i;:::-;29662:74;;29618:128;29785:2;29811:64;29867:7;29858:6;29847:9;29843:22;29811:64;:::i;:::-;29801:74;;29756:129;29924:2;29950:64;30006:7;29997:6;29986:9;29982:22;29950:64;:::i;:::-;29940:74;;29895:129;29368:663;;;;;:::o;30037:332::-;30158:4;30196:2;30185:9;30181:18;30173:26;;30209:71;30277:1;30266:9;30262:17;30253:6;30209:71;:::i;:::-;30290:72;30358:2;30347:9;30343:18;30334:6;30290:72;:::i;:::-;30037:332;;;;;:::o;30375:220::-;30515:34;30511:1;30503:6;30499:14;30492:58;30584:3;30579:2;30571:6;30567:15;30560:28;30375:220;:::o;30601:366::-;30743:3;30764:67;30828:2;30823:3;30764:67;:::i;:::-;30757:74;;30840:93;30929:3;30840:93;:::i;:::-;30958:2;30953:3;30949:12;30942:19;;30601:366;;;:::o;30973:419::-;31139:4;31177:2;31166:9;31162:18;31154:26;;31226:9;31220:4;31216:20;31212:1;31201:9;31197:17;31190:47;31254:131;31380:4;31254:131;:::i;:::-;31246:139;;30973:419;;;:::o

Swarm Source

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