ETH Price: $2,907.37 (-4.06%)
Gas: 1 Gwei

Token

Dillon Coin (DLLN)
 

Overview

Max Total Supply

1,000,000,000 DLLN

Holders

43

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
17,250,000 DLLN

Value
$0.00
0x7b0a828931b9b0edf722f6b6bb8863ebb7c0d72b
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:
DILLONCOIN

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-04
*/

// SPDX-License-Identifier: MIT

/**http://t.me/dilloncoin
https://twitter.com/dilloncoin
*/

pragma solidity 0.8.13;

interface IERC20 {
    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);
    event Burn(address indexed from, address indexed to, uint256 value);
}

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

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


abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    address ZERO = 0x0000000000000000000000000000000000000000;

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(ZERO);
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}


interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}


interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}


contract DILLONCOIN is IERC20, Ownable {

    address private WETH;

    string private constant _name = "Dillon Coin";
    string private constant _symbol = "DLLN";
    uint8 private constant _decimals = 18;
    
    uint256 public _totalSupply = 1 * 10**9 * (10 ** _decimals);
    uint256 public swapThreshold = _totalSupply / 1000; // Starting at 0.1%
    uint256 public maxWallet = _totalSupply / 50; // Starting at 2%

    mapping (address => uint256) private _balances;
    mapping (address => mapping(address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping(address => bool) public isWalletExempt;

    address DEAD = 0x000000000000000000000000000000000000dEaD;

    uint[2] taxesCollected = [0, 0];

    uint256 public launchedAt;
    address public liquidityPool = 0x4dD97E73337FE5c8DE3277797A39E1b4859B246a;

    // All fees are in basis points (100 = 1%)
    uint256 private buyMkt = 100;
    uint256 private sellMkt = 400;
    uint256 private buyLP = 100;
    uint256 private sellLP = 100;

    uint256 _baseBuyFee = buyMkt + buyLP;
    uint256 _baseSellFee = sellMkt + sellLP;

    IDEXRouter public router;
    address public pair;
    address public factory;
    address public marketingWallet = payable(0x0BB04ec742985B3A96afA9EEe6B0a9Dbd9f98B1e);

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public tradingOpen = false;

    //Event Logs
    event LiquidityPoolUpdated(address indexed _newPool);
    event MarketingWalletUpdated(address indexed _newWallet);
    event RouterUpdated(IDEXRouter indexed _newRouter);
    event BuyFeesUpdated(uint256 _newMkt, uint256 _newLp);
    event SellFeesUpdated(uint256 _neMkt, uint256 _newLp);
    event FeeExemptionChanged(address indexed _exemptAddress, bool _exempt);
    event SwapbackSettingsChanged(bool _enabled, uint256 _newSwapbackAmount);
    event MaxWalletUpdated(uint256 _newMaxWallet);
    event WalletExemptionChanged(address indexed _exemptAddress, bool _exempt);

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

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

        isFeeExempt[owner()] = true;
        isFeeExempt[marketingWallet] = true;
        isFeeExempt[address(this)] = true;

        isWalletExempt[owner()] = true;
        isWalletExempt[marketingWallet] = true;
        isWalletExempt[DEAD] = true;
        isWalletExempt[pair] = true;

        _balances[owner()] = _totalSupply;
    
        emit Transfer(address(0), owner(), _totalSupply);
    }

    receive() external payable { }

    function launchSequence() external onlyOwner {
	    require(launchedAt == 0, "Already launched");
        launchedAt = block.number;
        tradingOpen = true;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO);
    }

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

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

//Transfer Functions

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

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

        return _transfer(sender, recipient, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "BEP20: transfer from the zero address");
        require(recipient != address(0), "BEP20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(!isFeeExempt[sender] && !isFeeExempt[recipient]) { require(tradingOpen, "Trading not active"); }
        if(!isWalletExempt[recipient]) {
            require(_balances[recipient] + amount <= maxWallet || isFeeExempt[sender], "Exceeds Max Wallet");
        }
        if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); }
        if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); }

        _balances[sender] = _balances[sender] - amount;
        
        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount;

        _balances[recipient] = _balances[recipient] + finalAmount;

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

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }  

//Tax Functions

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 mktTaxB = amount * buyMkt / 10000;
	    uint256 mktTaxS = amount * sellMkt / 10000;
        uint256 lpTaxB = amount * buyLP / 10000;
	    uint256 lpTaxS = amount * sellLP / 10000;
        uint256 taxToGet;

	    if(sender == pair && recipient != address(pair) && !isFeeExempt[recipient]) {
            taxToGet = mktTaxB + lpTaxB;
	        addTaxCollected(mktTaxB, lpTaxB);
	    }

	    if(!inSwapAndLiquify && sender != pair && tradingOpen) {
	        taxToGet = mktTaxS + lpTaxS;
	        addTaxCollected(mktTaxS, lpTaxS);
	    }

        _balances[address(this)] = _balances[address(this)] + taxToGet;
        emit Transfer(sender, address(this), taxToGet);

        return amount - taxToGet;
    }

    function addTaxCollected(uint mkt, uint lp) internal {
        taxesCollected[0] += mkt;
        taxesCollected[1] += lp;
    }

//LP and Swapback Functions

    function swapTokensForETH(uint256 tokenAmount) private {

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

        approve(address(this), tokenAmount);

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

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidityPool,
            block.timestamp
        );
    }

    function swapBack() internal lockTheSwap {
    
        uint256 tokenBalance = _balances[address(this)];
        uint256 _totalCollected = taxesCollected[0] + taxesCollected[1];
        uint256 mktShare = taxesCollected[0];
        uint256 lpShare = taxesCollected[1];
        uint256 tokensForLiquidity = lpShare / 2;  
        uint256 amountToSwap = tokenBalance - tokensForLiquidity;

        swapTokensForETH(amountToSwap);

        uint256 totalETHBalance = address(this).balance;
        uint256 ETHForMkt = totalETHBalance * mktShare / _totalCollected;
        uint256 ETHForLiquidity = totalETHBalance * lpShare / _totalCollected / 2;
      
        if (totalETHBalance > 0) {
            payable(marketingWallet).transfer(ETHForMkt);
        }
  
        if (tokensForLiquidity > 0) {
            addLiquidity(tokensForLiquidity, ETHForLiquidity);
        }

	    delete taxesCollected;
    }

    function manualSwapBack() external onlyOwner {
        swapBack();
    }

// Update/Change Functions

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

    function changeWalletExempt(address holder, bool exempt) external onlyOwner {
        isWalletExempt[holder] = exempt;
        emit WalletExemptionChanged(holder, exempt);
    }

    function setMarketingWallet(address payable newMarketingWallet) external onlyOwner {
        require(newMarketingWallet != address(0), "Cannot be set to zero address");
        marketingWallet = payable(newMarketingWallet);
        isFeeExempt[marketingWallet] = true;
        isWalletExempt[marketingWallet] = true;
        emit MarketingWalletUpdated(newMarketingWallet);
    }

    function setLiquidityPool(address newLiquidityPool) external onlyOwner {
        require(newLiquidityPool != address(0), "Cannot be set to zero address");
        liquidityPool = newLiquidityPool;
        emit LiquidityPoolUpdated(newLiquidityPool);
    }

    function changeSwapBackSettings(bool enableSwapback, uint256 newSwapbackLimit) external onlyOwner {
        swapAndLiquifyEnabled  = enableSwapback;
        swapThreshold = newSwapbackLimit;
        emit SwapbackSettingsChanged(enableSwapback, newSwapbackLimit);
    }

    function updateMaxWallet(uint256 newMaxWallet) public onlyOwner {
	    require(newMaxWallet >= (_totalSupply / 200), "Max should be greater than 0.5%");
	    maxWallet = newMaxWallet;
        emit MaxWalletUpdated(newMaxWallet);
    }

    function updateBuyFees(uint256 newBuyMktFee, uint256 newBuyLpFee) public onlyOwner {
	    require(newBuyMktFee + newBuyLpFee <= 1000, "Fees Too High");
	    buyMkt = newBuyMktFee;
	    buyLP = newBuyLpFee;
        emit BuyFeesUpdated(newBuyMktFee, newBuyLpFee);
    }
    
    function updateSellFees(uint256 newSellMktFee,uint256 newSellLpFee) public onlyOwner {
	    require(newSellMktFee + newSellLpFee <= 1000, "Fees Too High");
	    sellMkt = newSellMktFee;
	    sellLP = newSellLpFee;
        emit SellFeesUpdated(newSellMktFee, newSellLpFee);
    }

    function updateRouter(IDEXRouter _newRouter) external onlyOwner {
        require(_newRouter != IDEXRouter(ZERO), "Cannot be set to zero address");
        require(_newRouter != IDEXRouter(DEAD), "Cannot be set to zero address");
        router = _newRouter;
        emit RouterUpdated(_newRouter);
    }

    function clearStuckETH() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0) { 
            payable(marketingWallet).transfer(contractETHBalance);
    	}
    }

    function clearStuckTokens(address contractAddress) external onlyOwner {
        IERC20 erc20Token = IERC20(contractAddress);
        uint256 balance = erc20Token.balanceOf(address(this));
        erc20Token.transfer(marketingWallet, balance);
        if(contractAddress == address(this)) { delete taxesCollected; }
    }

    function massDistributeTokens(address[] calldata _airdropAddresses, uint _amtPerAddress) external onlyOwner {
        uint amtPerAddress = _amtPerAddress * (10 ** _decimals);
	    for (uint i = 0; i < _airdropAddresses.length; i++) {
	        IERC20(address(this)).transfer(_airdropAddresses[i], amtPerAddress);
        }
    }

    function distributeTokensByAmount(address[] calldata _airdropAddresses, uint[] calldata _airdropAmounts) external onlyOwner {
	    for (uint i = 0; i < _airdropAddresses.length; i++) {
            uint airdropAmount = _airdropAmounts[i] * (10 ** _decimals);
	        IERC20(address(this)).transfer(_airdropAddresses[i], airdropAmount);
        }
    }
}

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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_newMkt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_newLp","type":"uint256"}],"name":"BuyFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_exemptAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"_exempt","type":"bool"}],"name":"FeeExemptionChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newPool","type":"address"}],"name":"LiquidityPoolUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newWallet","type":"address"}],"name":"MarketingWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_newMaxWallet","type":"uint256"}],"name":"MaxWalletUpdated","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":"contract IDEXRouter","name":"_newRouter","type":"address"}],"name":"RouterUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_neMkt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_newLp","type":"uint256"}],"name":"SellFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"_newSwapbackAmount","type":"uint256"}],"name":"SwapbackSettingsChanged","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_exemptAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"_exempt","type":"bool"}],"name":"WalletExemptionChanged","type":"event"},{"inputs":[],"name":"_totalSupply","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":"baseBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapback","type":"bool"},{"internalType":"uint256","name":"newSwapbackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeWalletExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"_airdropAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_airdropAmounts","type":"uint256[]"}],"name":"distributeTokensByAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchSequence","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_airdropAddresses","type":"address[]"},{"internalType":"uint256","name":"_amtPerAddress","type":"uint256"}],"name":"massDistributeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWallet","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":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityPool","type":"address"}],"name":"setLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","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":"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":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyMktFee","type":"uint256"},{"internalType":"uint256","name":"newBuyLpFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IDEXRouter","name":"_newRouter","type":"address"}],"name":"updateRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSellMktFee","type":"uint256"},{"internalType":"uint256","name":"newSellLpFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000056919062000c91565b633b9aca0062000067919062000ce2565b6003556103e86003546200007c919062000d72565b600455603260035462000090919062000d72565b60055561dead600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600060ff168152602001600060ff16815250600b9060026200010592919062000a8e565b50734dd97e73337fe5c8de3277797a39e1b4859b246a600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064600f5561019060105560646011556064601255601154600f5462000182919062000daa565b60135560125460105462000197919062000daa565b601455730bb04ec742985b3a96afa9eee6b0a9dbd9f98b1e601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601860156101000a81548160ff0219169083151502179055506000601860166101000a81548160ff0219169083151502179055503480156200023257600080fd5b5062000253620002476200099960201b60201c565b620009a160201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000316573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033c919062000e71565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000410919062000e71565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200046e92919062000eb4565b6020604051808303816000875af11580156200048e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b4919062000e71565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160086000620005cd62000a6560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960006200070662000a6560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060035460066000620008dc62000a6560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200092a62000a6560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516200098b919062000ef2565b60405180910390a362000f0f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b826002810192821562000ac5579160200282015b8281111562000ac4578251829060ff1690559160200191906001019062000aa2565b5b50905062000ad4919062000ad8565b5090565b5b8082111562000af357600081600090555060010162000ad9565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000b855780860481111562000b5d5762000b5c62000af7565b5b600185161562000b6d5780820291505b808102905062000b7d8562000b26565b945062000b3d565b94509492505050565b60008262000ba0576001905062000c73565b8162000bb0576000905062000c73565b816001811462000bc9576002811462000bd45762000c0a565b600191505062000c73565b60ff84111562000be95762000be862000af7565b5b8360020a91508482111562000c035762000c0262000af7565b5b5062000c73565b5060208310610133831016604e8410600b841016171562000c445782820a90508381111562000c3e5762000c3d62000af7565b5b62000c73565b62000c53848484600162000b33565b9250905081840481111562000c6d5762000c6c62000af7565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000c9e8262000c7a565b915062000cab8362000c84565b925062000cda7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b8e565b905092915050565b600062000cef8262000c7a565b915062000cfc8362000c7a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d385762000d3762000af7565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000d7f8262000c7a565b915062000d8c8362000c7a565b92508262000d9f5762000d9e62000d43565b5b828204905092915050565b600062000db78262000c7a565b915062000dc48362000c7a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000dfc5762000dfb62000af7565b5b828201905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e398262000e0c565b9050919050565b62000e4b8162000e2c565b811462000e5757600080fd5b50565b60008151905062000e6b8162000e40565b92915050565b60006020828403121562000e8a5762000e8962000e07565b5b600062000e9a8482850162000e5a565b91505092915050565b62000eae8162000e2c565b82525050565b600060408201905062000ecb600083018562000ea3565b62000eda602083018462000ea3565b9392505050565b62000eec8162000c7a565b82525050565b600060208201905062000f09600083018462000ee1565b92915050565b6143b78062000f1f6000396000f3fe6080604052600436106102765760003560e01c806366eb37851161014f578063bf56b371116100c1578063dd62ed3e1161007a578063dd62ed3e14610939578063f2fde38b14610976578063f887ea401461099f578063f88de0c3146109ca578063f8b45b05146109e1578063ffb54a9914610a0c5761027d565b8063bf56b37114610827578063c45a015514610852578063c821fcb81461087d578063c851cc32146108ba578063d073a01f146108e3578063d726b2211461090e5761027d565b806388c5440f1161011357806388c5440f14610715578063893d20e81461073e5780638da5cb5b1461076957806395d89b4114610794578063a8aa1b31146107bf578063a9059cbb146107ea5761027d565b806366eb37851461065657806370a082311461066d578063715018a6146106aa57806375978c53146106c157806375f0a874146106ea5761027d565b8063313ce567116101e85780633f4218e0116101ac5780633f4218e0146105345780634a74bb0214610571578063571ac8b01461059c5780635d098b38146105d9578063665a11ca1461060257806366ca9b831461062d5761027d565b8063313ce56714610463578063346cc7be1461048e57806334bfe0df146104b75780633dab5269146104e05780633eaaf86b146105095761027d565b80630f3b70f51161023a5780630f3b70f51461036757806318160ddd146103905780631c499ab0146103bb57806323b872dd146103e45780632b112e49146104215780632ebcbf6c1461044c5761027d565b8063018770201461028257806302dbd8f8146102ab5780630445b667146102d457806306fdde03146102ff578063095ea7b31461032a5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b506102a960048036038101906102a491906130af565b610a37565b005b3480156102b757600080fd5b506102d260048036038101906102cd9190613112565b610b35565b005b3480156102e057600080fd5b506102e9610bd8565b6040516102f69190613161565b60405180910390f35b34801561030b57600080fd5b50610314610bde565b6040516103219190613215565b60405180910390f35b34801561033657600080fd5b50610351600480360381019061034c9190613237565b610c1b565b60405161035e9190613292565b60405180910390f35b34801561037357600080fd5b5061038e600480360381019061038991906132d9565b610d0d565b005b34801561039c57600080fd5b506103a5610dbe565b6040516103b29190613161565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd9190613319565b610dc8565b005b3480156103f057600080fd5b5061040b60048036038101906104069190613346565b610e62565b6040516104189190613292565b60405180910390f35b34801561042d57600080fd5b50610436611024565b6040516104439190613161565b60405180910390f35b34801561045857600080fd5b50610461611098565b005b34801561046f57600080fd5b50610478611109565b60405161048591906133b5565b60405180910390f35b34801561049a57600080fd5b506104b560048036038101906104b091906130af565b611112565b005b3480156104c357600080fd5b506104de60048036038101906104d9919061348b565b611285565b005b3480156104ec57600080fd5b506105076004803603810190610502919061350c565b611392565b005b34801561051557600080fd5b5061051e6113f8565b60405161052b9190613161565b60405180910390f35b34801561054057600080fd5b5061055b600480360381019061055691906130af565b6113fe565b6040516105689190613292565b60405180910390f35b34801561057d57600080fd5b5061058661141e565b6040516105939190613292565b60405180910390f35b3480156105a857600080fd5b506105c360048036038101906105be91906130af565b611431565b6040516105d09190613292565b60405180910390f35b3480156105e557600080fd5b5061060060048036038101906105fb919061358a565b611464565b005b34801561060e57600080fd5b50610617611656565b60405161062491906135c6565b60405180910390f35b34801561063957600080fd5b50610654600480360381019061064f9190613112565b61167c565b005b34801561066257600080fd5b5061066b61171f565b005b34801561067957600080fd5b50610694600480360381019061068f91906130af565b611731565b6040516106a19190613161565b60405180910390f35b3480156106b657600080fd5b506106bf61177a565b005b3480156106cd57600080fd5b506106e860048036038101906106e391906132d9565b6117af565b005b3480156106f657600080fd5b506106ff611860565b60405161070c91906135c6565b60405180910390f35b34801561072157600080fd5b5061073c600480360381019061073791906135e1565b611886565b005b34801561074a57600080fd5b50610753611979565b60405161076091906135c6565b60405180910390f35b34801561077557600080fd5b5061077e611988565b60405161078b91906135c6565b60405180910390f35b3480156107a057600080fd5b506107a96119b1565b6040516107b69190613215565b60405180910390f35b3480156107cb57600080fd5b506107d46119ee565b6040516107e191906135c6565b60405180910390f35b3480156107f657600080fd5b50610811600480360381019061080c9190613237565b611a14565b60405161081e9190613292565b60405180910390f35b34801561083357600080fd5b5061083c611a29565b6040516108499190613161565b60405180910390f35b34801561085e57600080fd5b50610867611a2f565b60405161087491906135c6565b60405180910390f35b34801561088957600080fd5b506108a4600480360381019061089f91906130af565b611a55565b6040516108b19190613292565b60405180910390f35b3480156108c657600080fd5b506108e160048036038101906108dc919061367f565b611a75565b005b3480156108ef57600080fd5b506108f8611c24565b6040516109059190613161565b60405180910390f35b34801561091a57600080fd5b50610923611c2e565b6040516109309190613161565b60405180910390f35b34801561094557600080fd5b50610960600480360381019061095b91906136ac565b611c38565b60405161096d9190613161565b60405180910390f35b34801561098257600080fd5b5061099d600480360381019061099891906130af565b611cbf565b005b3480156109ab57600080fd5b506109b4611d63565b6040516109c1919061374b565b60405180910390f35b3480156109d657600080fd5b506109df611d89565b005b3480156109ed57600080fd5b506109f6611e0c565b604051610a039190613161565b60405180910390f35b348015610a1857600080fd5b50610a21611e12565b604051610a2e9190613292565b60405180910390f35b610a3f611e25565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa5906137b2565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fedf1a035d265f6321083031b40acf4e5e06cd3e2e2025192fd308409b13b44c660405160405180910390a250565b610b3d611e25565b6103e88183610b4c9190613801565b1115610b8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b84906138a3565b60405180910390fd5b81601081905550806012819055507f2c7448b63380296b372453c5287509524b5b645dc6a93ffe09e0af53e6b8935b8282604051610bcc9291906138c3565b60405180910390a15050565b60045481565b60606040518060400160405280600b81526020017f44696c6c6f6e20436f696e000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610cfb9190613161565b60405180910390a36001905092915050565b610d15611e25565b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9f1eaee9ad9cb68284f0dc523aa42c465ed33b53f8da7fc7294ccea47358bbdf82604051610db29190613292565b60405180910390a25050565b6000600354905090565b610dd0611e25565b60c8600354610ddf919061391b565b811015610e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1890613998565b60405180910390fd5b806005819055507f12528a3c61e0f3b2d6fc707a9fc58b1af86e252cad0d7f4c154ebeabb162dace81604051610e579190613161565b60405180910390a150565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110105781600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f8f91906139b8565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61101b848484611ea3565b90509392505050565b6000611051600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611731565b61107c600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611731565b60035461108991906139b8565b61109391906139b8565b905090565b6110a0611e25565b6000600d54146110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc90613a38565b60405180910390fd5b43600d819055506001601860166101000a81548160ff021916908315150217905550565b60006012905090565b61111a611e25565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161115a91906135c6565b602060405180830381865afa158015611177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119b9190613a6d565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016111fa929190613a9a565b6020604051808303816000875af1158015611219573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123d9190613ad8565b503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128057600b600061127f9190613039565b5b505050565b61128d611e25565b60005b8484905081101561138b5760006012600a6112ab9190613c38565b8484848181106112be576112bd613c83565b5b905060200201356112cf9190613cb2565b90503073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb878785818110611300576112ff613c83565b5b905060200201602081019061131591906130af565b836040518363ffffffff1660e01b8152600401611333929190613a9a565b6020604051808303816000875af1158015611352573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113769190613ad8565b5050808061138390613d0c565b915050611290565b5050505050565b61139a611e25565b81601860156101000a81548160ff021916908315150217905550806004819055507f479b6e261fc1ed1b1a450fd333c906ece427a6ef5cdb37d2762bf1834ea0904882826040516113ec929190613d54565b60405180910390a15050565b60035481565b60086020528060005260406000206000915054906101000a900460ff1681565b601860159054906101000a900460ff1681565b600061145d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c1b565b9050919050565b61146c611e25565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d2906137b2565b60405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fbf86feedee5b30c30a8243bd21deebb704d141478d39b1be04fe5ee739f214e760405160405180910390a250565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611684611e25565b6103e881836116939190613801565b11156116d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cb906138a3565b60405180910390fd5b81600f81905550806011819055507f480af1f773972b1df72af32ec463e0fdeb1b49f1ca37d07982f677919d5fdd0c82826040516117139291906138c3565b60405180910390a15050565b611727611e25565b61172f612544565b565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611782611e25565b6117ad600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612741565b565b6117b7611e25565b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f58ea629b402c5ebf604affdb8e5aaab3f79da05da393af8f44946508ac49c734826040516118549190613292565b60405180910390a25050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61188e611e25565b60006012600a61189e9190613c38565b826118a99190613cb2565b905060005b84849050811015611972573073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8686848181106118e8576118e7613c83565b5b90506020020160208101906118fd91906130af565b846040518363ffffffff1660e01b815260040161191b929190613a9a565b6020604051808303816000875af115801561193a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195e9190613ad8565b50808061196a90613d0c565b9150506118ae565b5050505050565b6000611983611988565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f444c4c4e00000000000000000000000000000000000000000000000000000000815250905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611a21338484611ea3565b905092915050565b600d5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b611a7d611e25565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b04906137b2565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b94906137b2565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f7aed1d3e8155a07ccf395e44ea3109a0e2d6c9b29bbbe9f142d9790596f4dc8060405160405180910390a250565b6000601454905090565b6000601354905090565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611cc7611e25565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4e90613def565b60405180910390fd5b611d6081612741565b50565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d91611e25565b60004790506000811115611e0957601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e07573d6000803e3d6000fd5b505b50565b60055481565b601860169054906101000a900460ff1681565b611e2d612805565b73ffffffffffffffffffffffffffffffffffffffff16611e4b611988565b73ffffffffffffffffffffffffffffffffffffffff1614611ea1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9890613e5b565b60405180910390fd5b565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0a90613eed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7990613f7f565b60405180910390fd5b60008211611fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbc90614011565b60405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120695750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120be57601860169054906101000a900460ff166120bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b49061407d565b60405180910390fd5b5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166121f35760055482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215d9190613801565b1115806121b35750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6121f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e9906140e9565b60405180910390fd5b5b601860149054906101000a900460ff161561221a5761221384848461280d565b905061253d565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156122855750601860149054906101000a900460ff16155b801561229d5750601860159054906101000a900460ff165b80156122ea5750600454600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156122f8576122f7612544565b5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461234391906139b8565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561242c5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6124365782612442565b61244185858561299b565b5b905080600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248f9190613801565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161252f9190613161565b60405180910390a360019150505b9392505050565b6001601860146101000a81548160ff0219169083151502179055506000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600b6001600281106125ba576125b9613c83565b5b0154600b6000600281106125d1576125d0613c83565b5b01546125dd9190613801565b90506000600b6000600281106125f6576125f5613c83565b5b015490506000600b60016002811061261157612610613c83565b5b015490506000600282612624919061391b565b90506000818661263491906139b8565b905061263f81612ce7565b600047905060008686836126539190613cb2565b61265d919061391b565b9050600060028887856126709190613cb2565b61267a919061391b565b612684919061391b565b905060008311156126f957601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156126f7573d6000803e3d6000fd5b505b600085111561270d5761270c8582612f08565b5b600b600061271b9190613039565b5050505050505050506000601860146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600081600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285a91906139b8565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128e89190613801565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129889190613161565b60405180910390a3600190509392505050565b600080612710600f54846129af9190613cb2565b6129b9919061391b565b90506000612710601054856129ce9190613cb2565b6129d8919061391b565b90506000612710601154866129ed9190613cb2565b6129f7919061391b565b9050600061271060125487612a0c9190613cb2565b612a16919061391b565b90506000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16148015612ac55750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b8015612b1b5750600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b39578285612b2c9190613801565b9050612b388584612fdb565b5b601860149054906101000a900460ff16158015612ba45750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b8015612bbc5750601860169054906101000a900460ff165b15612bda578184612bcd9190613801565b9050612bd98483612fdb565b5b80600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c259190613801565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612cc59190613161565b60405180910390a38087612cd991906139b8565b955050505050509392505050565b6000600267ffffffffffffffff811115612d0457612d03614109565b5b604051908082528060200260200182016040528015612d325781602001602082028036833780820191505090505b5090503081600081518110612d4a57612d49613c83565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e15919061414d565b81600181518110612e2957612e28613c83565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e6d3083610c1b565b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ed2959493929190614273565b600060405180830381600087803b158015612eec57600080fd5b505af1158015612f00573d6000803e3d6000fd5b505050505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612f91969594939291906142cd565b60606040518083038185885af1158015612faf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612fd4919061432e565b5050505050565b81600b600060028110612ff157612ff0613c83565b5b0160008282546130019190613801565b9250508190555080600b60016002811061301e5761301d613c83565b5b01600082825461302e9190613801565b925050819055505050565b506000815560010160009055565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061307c82613051565b9050919050565b61308c81613071565b811461309757600080fd5b50565b6000813590506130a981613083565b92915050565b6000602082840312156130c5576130c4613047565b5b60006130d38482850161309a565b91505092915050565b6000819050919050565b6130ef816130dc565b81146130fa57600080fd5b50565b60008135905061310c816130e6565b92915050565b6000806040838503121561312957613128613047565b5b6000613137858286016130fd565b9250506020613148858286016130fd565b9150509250929050565b61315b816130dc565b82525050565b60006020820190506131766000830184613152565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131b657808201518184015260208101905061319b565b838111156131c5576000848401525b50505050565b6000601f19601f8301169050919050565b60006131e78261317c565b6131f18185613187565b9350613201818560208601613198565b61320a816131cb565b840191505092915050565b6000602082019050818103600083015261322f81846131dc565b905092915050565b6000806040838503121561324e5761324d613047565b5b600061325c8582860161309a565b925050602061326d858286016130fd565b9150509250929050565b60008115159050919050565b61328c81613277565b82525050565b60006020820190506132a76000830184613283565b92915050565b6132b681613277565b81146132c157600080fd5b50565b6000813590506132d3816132ad565b92915050565b600080604083850312156132f0576132ef613047565b5b60006132fe8582860161309a565b925050602061330f858286016132c4565b9150509250929050565b60006020828403121561332f5761332e613047565b5b600061333d848285016130fd565b91505092915050565b60008060006060848603121561335f5761335e613047565b5b600061336d8682870161309a565b935050602061337e8682870161309a565b925050604061338f868287016130fd565b9150509250925092565b600060ff82169050919050565b6133af81613399565b82525050565b60006020820190506133ca60008301846133a6565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126133f5576133f46133d0565b5b8235905067ffffffffffffffff811115613412576134116133d5565b5b60208301915083602082028301111561342e5761342d6133da565b5b9250929050565b60008083601f84011261344b5761344a6133d0565b5b8235905067ffffffffffffffff811115613468576134676133d5565b5b602083019150836020820283011115613484576134836133da565b5b9250929050565b600080600080604085870312156134a5576134a4613047565b5b600085013567ffffffffffffffff8111156134c3576134c261304c565b5b6134cf878288016133df565b9450945050602085013567ffffffffffffffff8111156134f2576134f161304c565b5b6134fe87828801613435565b925092505092959194509250565b6000806040838503121561352357613522613047565b5b6000613531858286016132c4565b9250506020613542858286016130fd565b9150509250929050565b600061355782613051565b9050919050565b6135678161354c565b811461357257600080fd5b50565b6000813590506135848161355e565b92915050565b6000602082840312156135a05761359f613047565b5b60006135ae84828501613575565b91505092915050565b6135c081613071565b82525050565b60006020820190506135db60008301846135b7565b92915050565b6000806000604084860312156135fa576135f9613047565b5b600084013567ffffffffffffffff8111156136185761361761304c565b5b613624868287016133df565b93509350506020613637868287016130fd565b9150509250925092565b600061364c82613071565b9050919050565b61365c81613641565b811461366757600080fd5b50565b60008135905061367981613653565b92915050565b60006020828403121561369557613694613047565b5b60006136a38482850161366a565b91505092915050565b600080604083850312156136c3576136c2613047565b5b60006136d18582860161309a565b92505060206136e28582860161309a565b9150509250929050565b6000819050919050565b600061371161370c61370784613051565b6136ec565b613051565b9050919050565b6000613723826136f6565b9050919050565b600061373582613718565b9050919050565b6137458161372a565b82525050565b6000602082019050613760600083018461373c565b92915050565b7f43616e6e6f742062652073657420746f207a65726f2061646472657373000000600082015250565b600061379c601d83613187565b91506137a782613766565b602082019050919050565b600060208201905081810360008301526137cb8161378f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061380c826130dc565b9150613817836130dc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561384c5761384b6137d2565b5b828201905092915050565b7f4665657320546f6f204869676800000000000000000000000000000000000000600082015250565b600061388d600d83613187565b915061389882613857565b602082019050919050565b600060208201905081810360008301526138bc81613880565b9050919050565b60006040820190506138d86000830185613152565b6138e56020830184613152565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613926826130dc565b9150613931836130dc565b925082613941576139406138ec565b5b828204905092915050565b7f4d61782073686f756c642062652067726561746572207468616e20302e352500600082015250565b6000613982601f83613187565b915061398d8261394c565b602082019050919050565b600060208201905081810360008301526139b181613975565b9050919050565b60006139c3826130dc565b91506139ce836130dc565b9250828210156139e1576139e06137d2565b5b828203905092915050565b7f416c7265616479206c61756e6368656400000000000000000000000000000000600082015250565b6000613a22601083613187565b9150613a2d826139ec565b602082019050919050565b60006020820190508181036000830152613a5181613a15565b9050919050565b600081519050613a67816130e6565b92915050565b600060208284031215613a8357613a82613047565b5b6000613a9184828501613a58565b91505092915050565b6000604082019050613aaf60008301856135b7565b613abc6020830184613152565b9392505050565b600081519050613ad2816132ad565b92915050565b600060208284031215613aee57613aed613047565b5b6000613afc84828501613ac3565b91505092915050565b60008160011c9050919050565b6000808291508390505b6001851115613b5c57808604811115613b3857613b376137d2565b5b6001851615613b475780820291505b8081029050613b5585613b05565b9450613b1c565b94509492505050565b600082613b755760019050613c31565b81613b835760009050613c31565b8160018114613b995760028114613ba357613bd2565b6001915050613c31565b60ff841115613bb557613bb46137d2565b5b8360020a915084821115613bcc57613bcb6137d2565b5b50613c31565b5060208310610133831016604e8410600b8410161715613c075782820a905083811115613c0257613c016137d2565b5b613c31565b613c148484846001613b12565b92509050818404811115613c2b57613c2a6137d2565b5b81810290505b9392505050565b6000613c43826130dc565b9150613c4e83613399565b9250613c7b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613b65565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613cbd826130dc565b9150613cc8836130dc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d0157613d006137d2565b5b828202905092915050565b6000613d17826130dc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d4957613d486137d2565b5b600182019050919050565b6000604082019050613d696000830185613283565b613d766020830184613152565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613dd9602683613187565b9150613de482613d7d565b604082019050919050565b60006020820190508181036000830152613e0881613dcc565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613e45602083613187565b9150613e5082613e0f565b602082019050919050565b60006020820190508181036000830152613e7481613e38565b9050919050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ed7602583613187565b9150613ee282613e7b565b604082019050919050565b60006020820190508181036000830152613f0681613eca565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613f69602383613187565b9150613f7482613f0d565b604082019050919050565b60006020820190508181036000830152613f9881613f5c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613ffb602983613187565b915061400682613f9f565b604082019050919050565b6000602082019050818103600083015261402a81613fee565b9050919050565b7f54726164696e67206e6f74206163746976650000000000000000000000000000600082015250565b6000614067601283613187565b915061407282614031565b602082019050919050565b600060208201905081810360008301526140968161405a565b9050919050565b7f45786365656473204d61782057616c6c65740000000000000000000000000000600082015250565b60006140d3601283613187565b91506140de8261409d565b602082019050919050565b60006020820190508181036000830152614102816140c6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061414781613083565b92915050565b60006020828403121561416357614162613047565b5b600061417184828501614138565b91505092915050565b6000819050919050565b600061419f61419a6141958461417a565b6136ec565b6130dc565b9050919050565b6141af81614184565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141ea81613071565b82525050565b60006141fc83836141e1565b60208301905092915050565b6000602082019050919050565b6000614220826141b5565b61422a81856141c0565b9350614235836141d1565b8060005b8381101561426657815161424d88826141f0565b975061425883614208565b925050600181019050614239565b5085935050505092915050565b600060a0820190506142886000830188613152565b61429560208301876141a6565b81810360408301526142a78186614215565b90506142b660608301856135b7565b6142c36080830184613152565b9695505050505050565b600060c0820190506142e260008301896135b7565b6142ef6020830188613152565b6142fc60408301876141a6565b61430960608301866141a6565b61431660808301856135b7565b61432360a0830184613152565b979650505050505050565b60008060006060848603121561434757614346613047565b5b600061435586828701613a58565b935050602061436686828701613a58565b925050604061437786828701613a58565b915050925092509256fea26469706673582212205614c258b7f0ebd9d5d48e9180453aa4718ad0e5d0a4c50740f095505ab08e9464736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106102765760003560e01c806366eb37851161014f578063bf56b371116100c1578063dd62ed3e1161007a578063dd62ed3e14610939578063f2fde38b14610976578063f887ea401461099f578063f88de0c3146109ca578063f8b45b05146109e1578063ffb54a9914610a0c5761027d565b8063bf56b37114610827578063c45a015514610852578063c821fcb81461087d578063c851cc32146108ba578063d073a01f146108e3578063d726b2211461090e5761027d565b806388c5440f1161011357806388c5440f14610715578063893d20e81461073e5780638da5cb5b1461076957806395d89b4114610794578063a8aa1b31146107bf578063a9059cbb146107ea5761027d565b806366eb37851461065657806370a082311461066d578063715018a6146106aa57806375978c53146106c157806375f0a874146106ea5761027d565b8063313ce567116101e85780633f4218e0116101ac5780633f4218e0146105345780634a74bb0214610571578063571ac8b01461059c5780635d098b38146105d9578063665a11ca1461060257806366ca9b831461062d5761027d565b8063313ce56714610463578063346cc7be1461048e57806334bfe0df146104b75780633dab5269146104e05780633eaaf86b146105095761027d565b80630f3b70f51161023a5780630f3b70f51461036757806318160ddd146103905780631c499ab0146103bb57806323b872dd146103e45780632b112e49146104215780632ebcbf6c1461044c5761027d565b8063018770201461028257806302dbd8f8146102ab5780630445b667146102d457806306fdde03146102ff578063095ea7b31461032a5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b506102a960048036038101906102a491906130af565b610a37565b005b3480156102b757600080fd5b506102d260048036038101906102cd9190613112565b610b35565b005b3480156102e057600080fd5b506102e9610bd8565b6040516102f69190613161565b60405180910390f35b34801561030b57600080fd5b50610314610bde565b6040516103219190613215565b60405180910390f35b34801561033657600080fd5b50610351600480360381019061034c9190613237565b610c1b565b60405161035e9190613292565b60405180910390f35b34801561037357600080fd5b5061038e600480360381019061038991906132d9565b610d0d565b005b34801561039c57600080fd5b506103a5610dbe565b6040516103b29190613161565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd9190613319565b610dc8565b005b3480156103f057600080fd5b5061040b60048036038101906104069190613346565b610e62565b6040516104189190613292565b60405180910390f35b34801561042d57600080fd5b50610436611024565b6040516104439190613161565b60405180910390f35b34801561045857600080fd5b50610461611098565b005b34801561046f57600080fd5b50610478611109565b60405161048591906133b5565b60405180910390f35b34801561049a57600080fd5b506104b560048036038101906104b091906130af565b611112565b005b3480156104c357600080fd5b506104de60048036038101906104d9919061348b565b611285565b005b3480156104ec57600080fd5b506105076004803603810190610502919061350c565b611392565b005b34801561051557600080fd5b5061051e6113f8565b60405161052b9190613161565b60405180910390f35b34801561054057600080fd5b5061055b600480360381019061055691906130af565b6113fe565b6040516105689190613292565b60405180910390f35b34801561057d57600080fd5b5061058661141e565b6040516105939190613292565b60405180910390f35b3480156105a857600080fd5b506105c360048036038101906105be91906130af565b611431565b6040516105d09190613292565b60405180910390f35b3480156105e557600080fd5b5061060060048036038101906105fb919061358a565b611464565b005b34801561060e57600080fd5b50610617611656565b60405161062491906135c6565b60405180910390f35b34801561063957600080fd5b50610654600480360381019061064f9190613112565b61167c565b005b34801561066257600080fd5b5061066b61171f565b005b34801561067957600080fd5b50610694600480360381019061068f91906130af565b611731565b6040516106a19190613161565b60405180910390f35b3480156106b657600080fd5b506106bf61177a565b005b3480156106cd57600080fd5b506106e860048036038101906106e391906132d9565b6117af565b005b3480156106f657600080fd5b506106ff611860565b60405161070c91906135c6565b60405180910390f35b34801561072157600080fd5b5061073c600480360381019061073791906135e1565b611886565b005b34801561074a57600080fd5b50610753611979565b60405161076091906135c6565b60405180910390f35b34801561077557600080fd5b5061077e611988565b60405161078b91906135c6565b60405180910390f35b3480156107a057600080fd5b506107a96119b1565b6040516107b69190613215565b60405180910390f35b3480156107cb57600080fd5b506107d46119ee565b6040516107e191906135c6565b60405180910390f35b3480156107f657600080fd5b50610811600480360381019061080c9190613237565b611a14565b60405161081e9190613292565b60405180910390f35b34801561083357600080fd5b5061083c611a29565b6040516108499190613161565b60405180910390f35b34801561085e57600080fd5b50610867611a2f565b60405161087491906135c6565b60405180910390f35b34801561088957600080fd5b506108a4600480360381019061089f91906130af565b611a55565b6040516108b19190613292565b60405180910390f35b3480156108c657600080fd5b506108e160048036038101906108dc919061367f565b611a75565b005b3480156108ef57600080fd5b506108f8611c24565b6040516109059190613161565b60405180910390f35b34801561091a57600080fd5b50610923611c2e565b6040516109309190613161565b60405180910390f35b34801561094557600080fd5b50610960600480360381019061095b91906136ac565b611c38565b60405161096d9190613161565b60405180910390f35b34801561098257600080fd5b5061099d600480360381019061099891906130af565b611cbf565b005b3480156109ab57600080fd5b506109b4611d63565b6040516109c1919061374b565b60405180910390f35b3480156109d657600080fd5b506109df611d89565b005b3480156109ed57600080fd5b506109f6611e0c565b604051610a039190613161565b60405180910390f35b348015610a1857600080fd5b50610a21611e12565b604051610a2e9190613292565b60405180910390f35b610a3f611e25565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa5906137b2565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fedf1a035d265f6321083031b40acf4e5e06cd3e2e2025192fd308409b13b44c660405160405180910390a250565b610b3d611e25565b6103e88183610b4c9190613801565b1115610b8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b84906138a3565b60405180910390fd5b81601081905550806012819055507f2c7448b63380296b372453c5287509524b5b645dc6a93ffe09e0af53e6b8935b8282604051610bcc9291906138c3565b60405180910390a15050565b60045481565b60606040518060400160405280600b81526020017f44696c6c6f6e20436f696e000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610cfb9190613161565b60405180910390a36001905092915050565b610d15611e25565b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9f1eaee9ad9cb68284f0dc523aa42c465ed33b53f8da7fc7294ccea47358bbdf82604051610db29190613292565b60405180910390a25050565b6000600354905090565b610dd0611e25565b60c8600354610ddf919061391b565b811015610e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1890613998565b60405180910390fd5b806005819055507f12528a3c61e0f3b2d6fc707a9fc58b1af86e252cad0d7f4c154ebeabb162dace81604051610e579190613161565b60405180910390a150565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110105781600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f8f91906139b8565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61101b848484611ea3565b90509392505050565b6000611051600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611731565b61107c600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611731565b60035461108991906139b8565b61109391906139b8565b905090565b6110a0611e25565b6000600d54146110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc90613a38565b60405180910390fd5b43600d819055506001601860166101000a81548160ff021916908315150217905550565b60006012905090565b61111a611e25565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161115a91906135c6565b602060405180830381865afa158015611177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119b9190613a6d565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016111fa929190613a9a565b6020604051808303816000875af1158015611219573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123d9190613ad8565b503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128057600b600061127f9190613039565b5b505050565b61128d611e25565b60005b8484905081101561138b5760006012600a6112ab9190613c38565b8484848181106112be576112bd613c83565b5b905060200201356112cf9190613cb2565b90503073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb878785818110611300576112ff613c83565b5b905060200201602081019061131591906130af565b836040518363ffffffff1660e01b8152600401611333929190613a9a565b6020604051808303816000875af1158015611352573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113769190613ad8565b5050808061138390613d0c565b915050611290565b5050505050565b61139a611e25565b81601860156101000a81548160ff021916908315150217905550806004819055507f479b6e261fc1ed1b1a450fd333c906ece427a6ef5cdb37d2762bf1834ea0904882826040516113ec929190613d54565b60405180910390a15050565b60035481565b60086020528060005260406000206000915054906101000a900460ff1681565b601860159054906101000a900460ff1681565b600061145d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c1b565b9050919050565b61146c611e25565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d2906137b2565b60405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fbf86feedee5b30c30a8243bd21deebb704d141478d39b1be04fe5ee739f214e760405160405180910390a250565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611684611e25565b6103e881836116939190613801565b11156116d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cb906138a3565b60405180910390fd5b81600f81905550806011819055507f480af1f773972b1df72af32ec463e0fdeb1b49f1ca37d07982f677919d5fdd0c82826040516117139291906138c3565b60405180910390a15050565b611727611e25565b61172f612544565b565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611782611e25565b6117ad600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612741565b565b6117b7611e25565b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f58ea629b402c5ebf604affdb8e5aaab3f79da05da393af8f44946508ac49c734826040516118549190613292565b60405180910390a25050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61188e611e25565b60006012600a61189e9190613c38565b826118a99190613cb2565b905060005b84849050811015611972573073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8686848181106118e8576118e7613c83565b5b90506020020160208101906118fd91906130af565b846040518363ffffffff1660e01b815260040161191b929190613a9a565b6020604051808303816000875af115801561193a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195e9190613ad8565b50808061196a90613d0c565b9150506118ae565b5050505050565b6000611983611988565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f444c4c4e00000000000000000000000000000000000000000000000000000000815250905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611a21338484611ea3565b905092915050565b600d5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b611a7d611e25565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b04906137b2565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b94906137b2565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f7aed1d3e8155a07ccf395e44ea3109a0e2d6c9b29bbbe9f142d9790596f4dc8060405160405180910390a250565b6000601454905090565b6000601354905090565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611cc7611e25565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4e90613def565b60405180910390fd5b611d6081612741565b50565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d91611e25565b60004790506000811115611e0957601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e07573d6000803e3d6000fd5b505b50565b60055481565b601860169054906101000a900460ff1681565b611e2d612805565b73ffffffffffffffffffffffffffffffffffffffff16611e4b611988565b73ffffffffffffffffffffffffffffffffffffffff1614611ea1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9890613e5b565b60405180910390fd5b565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0a90613eed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7990613f7f565b60405180910390fd5b60008211611fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbc90614011565b60405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120695750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120be57601860169054906101000a900460ff166120bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b49061407d565b60405180910390fd5b5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166121f35760055482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215d9190613801565b1115806121b35750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6121f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e9906140e9565b60405180910390fd5b5b601860149054906101000a900460ff161561221a5761221384848461280d565b905061253d565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156122855750601860149054906101000a900460ff16155b801561229d5750601860159054906101000a900460ff165b80156122ea5750600454600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156122f8576122f7612544565b5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461234391906139b8565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561242c5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6124365782612442565b61244185858561299b565b5b905080600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248f9190613801565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161252f9190613161565b60405180910390a360019150505b9392505050565b6001601860146101000a81548160ff0219169083151502179055506000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600b6001600281106125ba576125b9613c83565b5b0154600b6000600281106125d1576125d0613c83565b5b01546125dd9190613801565b90506000600b6000600281106125f6576125f5613c83565b5b015490506000600b60016002811061261157612610613c83565b5b015490506000600282612624919061391b565b90506000818661263491906139b8565b905061263f81612ce7565b600047905060008686836126539190613cb2565b61265d919061391b565b9050600060028887856126709190613cb2565b61267a919061391b565b612684919061391b565b905060008311156126f957601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156126f7573d6000803e3d6000fd5b505b600085111561270d5761270c8582612f08565b5b600b600061271b9190613039565b5050505050505050506000601860146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600081600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285a91906139b8565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128e89190613801565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129889190613161565b60405180910390a3600190509392505050565b600080612710600f54846129af9190613cb2565b6129b9919061391b565b90506000612710601054856129ce9190613cb2565b6129d8919061391b565b90506000612710601154866129ed9190613cb2565b6129f7919061391b565b9050600061271060125487612a0c9190613cb2565b612a16919061391b565b90506000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16148015612ac55750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b8015612b1b5750600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b39578285612b2c9190613801565b9050612b388584612fdb565b5b601860149054906101000a900460ff16158015612ba45750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b8015612bbc5750601860169054906101000a900460ff165b15612bda578184612bcd9190613801565b9050612bd98483612fdb565b5b80600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c259190613801565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612cc59190613161565b60405180910390a38087612cd991906139b8565b955050505050509392505050565b6000600267ffffffffffffffff811115612d0457612d03614109565b5b604051908082528060200260200182016040528015612d325781602001602082028036833780820191505090505b5090503081600081518110612d4a57612d49613c83565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e15919061414d565b81600181518110612e2957612e28613c83565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e6d3083610c1b565b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ed2959493929190614273565b600060405180830381600087803b158015612eec57600080fd5b505af1158015612f00573d6000803e3d6000fd5b505050505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612f91969594939291906142cd565b60606040518083038185885af1158015612faf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612fd4919061432e565b5050505050565b81600b600060028110612ff157612ff0613c83565b5b0160008282546130019190613801565b9250508190555080600b60016002811061301e5761301d613c83565b5b01600082825461302e9190613801565b925050819055505050565b506000815560010160009055565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061307c82613051565b9050919050565b61308c81613071565b811461309757600080fd5b50565b6000813590506130a981613083565b92915050565b6000602082840312156130c5576130c4613047565b5b60006130d38482850161309a565b91505092915050565b6000819050919050565b6130ef816130dc565b81146130fa57600080fd5b50565b60008135905061310c816130e6565b92915050565b6000806040838503121561312957613128613047565b5b6000613137858286016130fd565b9250506020613148858286016130fd565b9150509250929050565b61315b816130dc565b82525050565b60006020820190506131766000830184613152565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131b657808201518184015260208101905061319b565b838111156131c5576000848401525b50505050565b6000601f19601f8301169050919050565b60006131e78261317c565b6131f18185613187565b9350613201818560208601613198565b61320a816131cb565b840191505092915050565b6000602082019050818103600083015261322f81846131dc565b905092915050565b6000806040838503121561324e5761324d613047565b5b600061325c8582860161309a565b925050602061326d858286016130fd565b9150509250929050565b60008115159050919050565b61328c81613277565b82525050565b60006020820190506132a76000830184613283565b92915050565b6132b681613277565b81146132c157600080fd5b50565b6000813590506132d3816132ad565b92915050565b600080604083850312156132f0576132ef613047565b5b60006132fe8582860161309a565b925050602061330f858286016132c4565b9150509250929050565b60006020828403121561332f5761332e613047565b5b600061333d848285016130fd565b91505092915050565b60008060006060848603121561335f5761335e613047565b5b600061336d8682870161309a565b935050602061337e8682870161309a565b925050604061338f868287016130fd565b9150509250925092565b600060ff82169050919050565b6133af81613399565b82525050565b60006020820190506133ca60008301846133a6565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126133f5576133f46133d0565b5b8235905067ffffffffffffffff811115613412576134116133d5565b5b60208301915083602082028301111561342e5761342d6133da565b5b9250929050565b60008083601f84011261344b5761344a6133d0565b5b8235905067ffffffffffffffff811115613468576134676133d5565b5b602083019150836020820283011115613484576134836133da565b5b9250929050565b600080600080604085870312156134a5576134a4613047565b5b600085013567ffffffffffffffff8111156134c3576134c261304c565b5b6134cf878288016133df565b9450945050602085013567ffffffffffffffff8111156134f2576134f161304c565b5b6134fe87828801613435565b925092505092959194509250565b6000806040838503121561352357613522613047565b5b6000613531858286016132c4565b9250506020613542858286016130fd565b9150509250929050565b600061355782613051565b9050919050565b6135678161354c565b811461357257600080fd5b50565b6000813590506135848161355e565b92915050565b6000602082840312156135a05761359f613047565b5b60006135ae84828501613575565b91505092915050565b6135c081613071565b82525050565b60006020820190506135db60008301846135b7565b92915050565b6000806000604084860312156135fa576135f9613047565b5b600084013567ffffffffffffffff8111156136185761361761304c565b5b613624868287016133df565b93509350506020613637868287016130fd565b9150509250925092565b600061364c82613071565b9050919050565b61365c81613641565b811461366757600080fd5b50565b60008135905061367981613653565b92915050565b60006020828403121561369557613694613047565b5b60006136a38482850161366a565b91505092915050565b600080604083850312156136c3576136c2613047565b5b60006136d18582860161309a565b92505060206136e28582860161309a565b9150509250929050565b6000819050919050565b600061371161370c61370784613051565b6136ec565b613051565b9050919050565b6000613723826136f6565b9050919050565b600061373582613718565b9050919050565b6137458161372a565b82525050565b6000602082019050613760600083018461373c565b92915050565b7f43616e6e6f742062652073657420746f207a65726f2061646472657373000000600082015250565b600061379c601d83613187565b91506137a782613766565b602082019050919050565b600060208201905081810360008301526137cb8161378f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061380c826130dc565b9150613817836130dc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561384c5761384b6137d2565b5b828201905092915050565b7f4665657320546f6f204869676800000000000000000000000000000000000000600082015250565b600061388d600d83613187565b915061389882613857565b602082019050919050565b600060208201905081810360008301526138bc81613880565b9050919050565b60006040820190506138d86000830185613152565b6138e56020830184613152565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613926826130dc565b9150613931836130dc565b925082613941576139406138ec565b5b828204905092915050565b7f4d61782073686f756c642062652067726561746572207468616e20302e352500600082015250565b6000613982601f83613187565b915061398d8261394c565b602082019050919050565b600060208201905081810360008301526139b181613975565b9050919050565b60006139c3826130dc565b91506139ce836130dc565b9250828210156139e1576139e06137d2565b5b828203905092915050565b7f416c7265616479206c61756e6368656400000000000000000000000000000000600082015250565b6000613a22601083613187565b9150613a2d826139ec565b602082019050919050565b60006020820190508181036000830152613a5181613a15565b9050919050565b600081519050613a67816130e6565b92915050565b600060208284031215613a8357613a82613047565b5b6000613a9184828501613a58565b91505092915050565b6000604082019050613aaf60008301856135b7565b613abc6020830184613152565b9392505050565b600081519050613ad2816132ad565b92915050565b600060208284031215613aee57613aed613047565b5b6000613afc84828501613ac3565b91505092915050565b60008160011c9050919050565b6000808291508390505b6001851115613b5c57808604811115613b3857613b376137d2565b5b6001851615613b475780820291505b8081029050613b5585613b05565b9450613b1c565b94509492505050565b600082613b755760019050613c31565b81613b835760009050613c31565b8160018114613b995760028114613ba357613bd2565b6001915050613c31565b60ff841115613bb557613bb46137d2565b5b8360020a915084821115613bcc57613bcb6137d2565b5b50613c31565b5060208310610133831016604e8410600b8410161715613c075782820a905083811115613c0257613c016137d2565b5b613c31565b613c148484846001613b12565b92509050818404811115613c2b57613c2a6137d2565b5b81810290505b9392505050565b6000613c43826130dc565b9150613c4e83613399565b9250613c7b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613b65565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613cbd826130dc565b9150613cc8836130dc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d0157613d006137d2565b5b828202905092915050565b6000613d17826130dc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d4957613d486137d2565b5b600182019050919050565b6000604082019050613d696000830185613283565b613d766020830184613152565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613dd9602683613187565b9150613de482613d7d565b604082019050919050565b60006020820190508181036000830152613e0881613dcc565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613e45602083613187565b9150613e5082613e0f565b602082019050919050565b60006020820190508181036000830152613e7481613e38565b9050919050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ed7602583613187565b9150613ee282613e7b565b604082019050919050565b60006020820190508181036000830152613f0681613eca565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613f69602383613187565b9150613f7482613f0d565b604082019050919050565b60006020820190508181036000830152613f9881613f5c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613ffb602983613187565b915061400682613f9f565b604082019050919050565b6000602082019050818103600083015261402a81613fee565b9050919050565b7f54726164696e67206e6f74206163746976650000000000000000000000000000600082015250565b6000614067601283613187565b915061407282614031565b602082019050919050565b600060208201905081810360008301526140968161405a565b9050919050565b7f45786365656473204d61782057616c6c65740000000000000000000000000000600082015250565b60006140d3601283613187565b91506140de8261409d565b602082019050919050565b60006020820190508181036000830152614102816140c6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061414781613083565b92915050565b60006020828403121561416357614162613047565b5b600061417184828501614138565b91505092915050565b6000819050919050565b600061419f61419a6141958461417a565b6136ec565b6130dc565b9050919050565b6141af81614184565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141ea81613071565b82525050565b60006141fc83836141e1565b60208301905092915050565b6000602082019050919050565b6000614220826141b5565b61422a81856141c0565b9350614235836141d1565b8060005b8381101561426657815161424d88826141f0565b975061425883614208565b925050600181019050614239565b5085935050505092915050565b600060a0820190506142886000830188613152565b61429560208301876141a6565b81810360408301526142a78186614215565b90506142b660608301856135b7565b6142c36080830184613152565b9695505050505050565b600060c0820190506142e260008301896135b7565b6142ef6020830188613152565b6142fc60408301876141a6565b61430960608301866141a6565b61431660808301856135b7565b61432360a0830184613152565b979650505050505050565b60008060006060848603121561434757614346613047565b5b600061435586828701613a58565b935050602061436686828701613a58565b925050604061437786828701613a58565b915050925092509256fea26469706673582212205614c258b7f0ebd9d5d48e9180453aa4718ad0e5d0a4c50740f095505ab08e9464736f6c634300080d0033

Deployed Bytecode Sourcemap

3963:13062:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14072:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15149:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4255:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7520:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8110:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13312:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7250:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14619:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8648:337;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7106:136;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6928:170;;;;;;;;;;;;;:::i;:::-;;7344:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15993:325;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16666:356;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14339:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4189:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4531:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5345:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8334:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13679:385;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4775:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14865:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13200:74;;;;;;;;;;;;;:::i;:::-;;7692:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1976:97;;;;;;;;;;;;;:::i;:::-;;13491:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5224:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16326:332;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7606:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1741:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7430:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5169:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8488:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4743:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5195:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4582:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15440:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8024:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7942:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7803:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2081:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5138:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15757:228;;;;;;;;;;;;;:::i;:::-;;4332:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5392:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14072:259;1700:13;:11;:13::i;:::-;14190:1:::1;14162:30;;:16;:30;;::::0;14154:72:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14253:16;14237:13;;:32;;;;;;;;;;;;;;;;;;14306:16;14285:38;;;;;;;;;;;;14072:259:::0;:::o;15149:283::-;1700:13;:11;:13::i;:::-;15282:4:::1;15266:12;15250:13;:28;;;;:::i;:::-;:36;;15242:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;15322:13;15312:7;:23;;;;15352:12;15343:6;:21;;;;15380:44;15396:13;15411:12;15380:44;;;;;;;:::i;:::-;;;;;;;;15149:283:::0;;:::o;4255:50::-;;;;:::o;7520:80::-;7568:13;7592:5;;;;;;;;;;;;;;;;;7585:12;;7520:80;:::o;8110:216::-;8185:4;8237:6;8202:11;:23;8214:10;8202:23;;;;;;;;;;;;;;;:32;8226:7;8202:32;;;;;;;;;;;;;;;:41;;;;8280:7;8259:37;;8268:10;8259:37;;;8289:6;8259:37;;;;;;:::i;:::-;;;;;;;;8314:4;8307:11;;8110:216;;;;:::o;13312:171::-;1700:13;:11;:13::i;:::-;13418:6:::1;13396:11;:19;13408:6;13396:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13460:6;13440:35;;;13468:6;13440:35;;;;;;:::i;:::-;;;;;;;;13312:171:::0;;:::o;7250:88::-;7305:7;7323:12;;7316:19;;7250:88;:::o;14619:238::-;1700:13;:11;:13::i;:::-;14731:3:::1;14716:12;;:18;;;;:::i;:::-;14699:12;:36;;14691:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;14791:12;14779:9;:24;;;;14819:30;14836:12;14819:30;;;;;;:::i;:::-;;;;;;;;14619:238:::0;:::o;8648:337::-;8748:4;8803:17;8768:11;:19;8780:6;8768:19;;;;;;;;;;;;;;;:31;8788:10;8768:31;;;;;;;;;;;;;;;;:52;8765:157;;8904:6;8870:11;:19;8882:6;8870:19;;;;;;;;;;;;;;;:31;8890:10;8870:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;8836:11;:19;8848:6;8836:19;;;;;;;;;;;;;;;:31;8856:10;8836:31;;;;;;;;;;;;;;;:74;;;;8765:157;8941:36;8951:6;8959:9;8970:6;8941:9;:36::i;:::-;8934:43;;8648:337;;;;;:::o;7106:136::-;7159:7;7219:15;7229:4;;;;;;;;;;;7219:9;:15::i;:::-;7201;7211:4;;;;;;;;;;;7201:9;:15::i;:::-;7186:12;;:30;;;;:::i;:::-;:48;;;;:::i;:::-;7179:55;;7106:136;:::o;6928:170::-;1700:13;:11;:13::i;:::-;7003:1:::1;6989:10;;:15;6981:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;7049:12;7036:10;:25;;;;7086:4;7072:11;;:18;;;;;;;;;;;;;;;;;;6928:170::o:0;7344:80::-;7396:5;4174:2;7405:16;;7344:80;:::o;15993:325::-;1700:13;:11;:13::i;:::-;16074:17:::1;16101:15;16074:43;;16128:15;16146:10;:20;;;16175:4;16146:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16128:53;;16192:10;:19;;;16212:15;;;;;;;;;;;16229:7;16192:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16278:4;16251:32;;:15;:32;;::::0;16248:63:::1;;16294:14;;16287:21;;;;:::i;:::-;16248:63;16063:255;;15993:325:::0;:::o;16666:356::-;1700:13;:11;:13::i;:::-;16803:6:::1;16798:217;16819:17;;:24;;16815:1;:28;16798:217;;;16865:18;4174:2;16908;:15;;;;:::i;:::-;16886;;16902:1;16886:18;;;;;;;:::i;:::-;;;;;;;;:38;;;;:::i;:::-;16865:59;;16951:4;16936:30;;;16967:17;;16985:1;16967:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;16989:13;16936:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16850:165;16845:3;;;;;:::i;:::-;;;;16798:217;;;;16666:356:::0;;;;:::o;14339:272::-;1700:13;:11;:13::i;:::-;14473:14:::1;14448:21;;:39;;;;;;;;;;;;;;;;;;14514:16;14498:13;:32;;;;14546:57;14570:14;14586:16;14546:57;;;;;;;:::i;:::-;;;;;;;;14339:272:::0;;:::o;4189:59::-;;;;:::o;4531:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;5345:40::-;;;;;;;;;;;;;:::o;8334:122::-;8389:4;8413:35;8421:7;8430:17;8413:7;:35::i;:::-;8406:42;;8334:122;;;:::o;13679:385::-;1700:13;:11;:13::i;:::-;13811:1:::1;13781:32;;:18;:32;;::::0;13773:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;13884:18;13858:15;;:45;;;;;;;;;;;;;;;;;;13945:4;13914:11;:28;13926:15;;;;;;;;;;;13914:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;13994:4;13960:14;:31;13975:15;;;;;;;;;;;13960:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;14037:18;14014:42;;;;;;;;;;;;13679:385:::0;:::o;4775:73::-;;;;;;;;;;;;;:::o;14865:272::-;1700:13;:11;:13::i;:::-;14994:4:::1;14979:11;14964:12;:26;;;;:::i;:::-;:34;;14956:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;15033:12;15024:6;:21;;;;15061:11;15053:5;:19;;;;15088:41;15103:12;15117:11;15088:41;;;;;;;:::i;:::-;;;;;;;;14865:272:::0;;:::o;13200:74::-;1700:13;:11;:13::i;:::-;13256:10:::1;:8;:10::i;:::-;13200:74::o:0;7692:105::-;7758:7;7776:9;:18;7786:7;7776:18;;;;;;;;;;;;;;;;7769:25;;7692:105;;;:::o;1976:97::-;1700:13;:11;:13::i;:::-;2041:24:::1;2060:4;;;;;;;;;;;2041:18;:24::i;:::-;1976:97::o:0;13491:180::-;1700:13;:11;:13::i;:::-;13603:6:::1;13578:14;:22;13593:6;13578:22;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;13648:6;13625:38;;;13656:6;13625:38;;;;;;:::i;:::-;;;;;;;;13491:180:::0;;:::o;5224:84::-;;;;;;;;;;;;;:::o;16326:332::-;1700:13;:11;:13::i;:::-;16445:18:::1;4174:2;16484;:15;;;;:::i;:::-;16466:14;:34;;;;:::i;:::-;16445:55;;16513:6;16508:143;16529:17;;:24;;16525:1;:28;16508:143;;;16587:4;16572:30;;;16603:17;;16621:1;16603:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;16625:13;16572:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16555:3;;;;;:::i;:::-;;;;16508:143;;;;16434:224;16326:332:::0;;;:::o;7606:80::-;7658:7;7676;:5;:7::i;:::-;7669:14;;7606:80;:::o;1741:87::-;1787:7;1814:6;;;;;;;;;;;1807:13;;1741:87;:::o;7430:84::-;7480:13;7504:7;;;;;;;;;;;;;;;;;7497:14;;7430:84;:::o;5169:19::-;;;;;;;;;;;;;:::o;8488:152::-;8568:4;8592:40;8602:10;8614:9;8625:6;8592:9;:40::i;:::-;8585:47;;8488:152;;;;:::o;4743:25::-;;;;:::o;5195:22::-;;;;;;;;;;;;;:::o;4582:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;15440:309::-;1700:13;:11;:13::i;:::-;15548:4:::1;;;;;;;;;;;15523:30;;:10;:30;;::::0;15515:72:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;15631:4;;;;;;;;;;;15606:30;;:10;:30;;::::0;15598:72:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;15690:10;15681:6;;:19;;;;;;;;;;;;;;;;;;15730:10;15716:25;;;;;;;;;;;;15440:309:::0;:::o;8024:78::-;8070:7;8087:12;;8080:19;;8024:78;:::o;7942:76::-;7987:7;8004:11;;7997:18;;7942:76;:::o;7803:133::-;7887:7;7905:11;:19;7917:6;7905:19;;;;;;;;;;;;;;;:28;7925:7;7905:28;;;;;;;;;;;;;;;;7898:35;;7803:133;;;;:::o;2081:195::-;1700:13;:11;:13::i;:::-;2182:4:::1;;;;;;;;;;;2170:16;;:8;:16;;::::0;2162:67:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2240:28;2259:8;2240:18;:28::i;:::-;2081:195:::0;:::o;5138:24::-;;;;;;;;;;;;;:::o;15757:228::-;1700:13;:11;:13::i;:::-;15812:26:::1;15841:21;15812:50;;15897:1;15876:18;:22;15873:105;;;15924:15;;;;;;;;;;;15916:33;;:53;15950:18;15916:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15873:105;15801:184;15757:228::o:0;4332:44::-;;;;:::o;5392:31::-;;;;;;;;;;;;;:::o;1836:132::-;1911:12;:10;:12::i;:::-;1900:23;;:7;:5;:7::i;:::-;:23;;;1892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1836:132::o;8993:1181::-;9081:4;9124:1;9106:20;;:6;:20;;;9098:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9208:1;9187:23;;:9;:23;;;9179:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9278:1;9269:6;:10;9261:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9342:11;:19;9354:6;9342:19;;;;;;;;;;;;;;;;;;;;;;;;;9341:20;:47;;;;;9366:11;:22;9378:9;9366:22;;;;;;;;;;;;;;;;;;;;;;;;;9365:23;9341:47;9338:99;;;9400:11;;;;;;;;;;;9392:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;9338:99;9451:14;:25;9466:9;9451:25;;;;;;;;;;;;;;;;;;;;;;;;;9447:154;;9534:9;;9524:6;9501:9;:20;9511:9;9501:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:42;;:65;;;;9547:11;:19;9559:6;9547:19;;;;;;;;;;;;;;;;;;;;;;;;;9501:65;9493:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;9447:154;9614:16;;;;;;;;;;;9611:73;;;9640:41;9655:6;9663:9;9674:6;9640:14;:41::i;:::-;9633:48;;;;9611:73;9711:4;;;;;;;;;;;9697:18;;:10;:18;;;;:39;;;;;9720:16;;;;;;;;;;;9719:17;9697:39;:64;;;;;9740:21;;;;;;;;;;;9697:64;:109;;;;;9793:13;;9765:9;:24;9783:4;9765:24;;;;;;;;;;;;;;;;:41;;9697:109;9694:128;;;9809:10;:8;:10::i;:::-;9694:128;9874:6;9854:9;:17;9864:6;9854:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9834:9;:17;9844:6;9834:17;;;;;;;;;;;;;;;:46;;;;9901:19;9924:11;:19;9936:6;9924:19;;;;;;;;;;;;;;;;;;;;;;;;;9923:20;:47;;;;;9948:11;:22;9960:9;9948:22;;;;;;;;;;;;;;;;;;;;;;;;;9947:23;9923:47;:93;;10010:6;9923:93;;;9973:34;9981:6;9989:9;10000:6;9973:7;:34::i;:::-;9923:93;9901:115;;10075:11;10052:9;:20;10062:9;10052:20;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;10029:9;:20;10039:9;10029:20;;;;;;;;;;;;;;;:57;;;;10121:9;10104:40;;10113:6;10104:40;;;10132:11;10104:40;;;;;;:::i;:::-;;;;;;;;10162:4;10155:11;;;8993:1181;;;;;;:::o;12267:925::-;6092:4;6073:16;;:23;;;;;;;;;;;;;;;;;;12325:20:::1;12348:9;:24;12366:4;12348:24;;;;;;;;;;;;;;;;12325:47;;12383:23;12429:14;12444:1;12429:17;;;;;;;:::i;:::-;;;;12409:14;12424:1;12409:17;;;;;;;:::i;:::-;;;;:37;;;;:::i;:::-;12383:63;;12457:16;12476:14;12491:1;12476:17;;;;;;;:::i;:::-;;;;12457:36;;12504:15;12522:14;12537:1;12522:17;;;;;;;:::i;:::-;;;;12504:35;;12550:26;12589:1;12579:7;:11;;;;:::i;:::-;12550:40;;12603:20;12641:18;12626:12;:33;;;;:::i;:::-;12603:56;;12672:30;12689:12;12672:16;:30::i;:::-;12715:23;12741:21;12715:47;;12773:17;12822:15;12811:8;12793:15;:26;;;;:::i;:::-;:44;;;;:::i;:::-;12773:64;;12848:23;12920:1;12902:15;12892:7;12874:15;:25;;;;:::i;:::-;:43;;;;:::i;:::-;:47;;;;:::i;:::-;12848:73;;12962:1;12944:15;:19;12940:96;;;12988:15;;;;;;;;;;;12980:33;;:44;13014:9;12980:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12940:96;13075:1;13054:18;:22;13050:104;;;13093:49;13106:18;13126:15;13093:12;:49::i;:::-;13050:104;13170:14;;13163:21;;;;:::i;:::-;12308:884;;;;;;;;;6138:5:::0;6119:16;;:24;;;;;;;;;;;;;;;;;;12267:925::o;2284:191::-;2358:16;2377:6;;;;;;;;;;;2358:25;;2403:8;2394:6;;:17;;;;;;;;;;;;;;;;;;2458:8;2427:40;;2448:8;2427:40;;;;;;;;;;;;2347:128;2284:191;:::o;1148:98::-;1201:7;1228:10;1221:17;;1148:98;:::o;10184:300::-;10277:4;10334:6;10314:9;:17;10324:6;10314:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;10294:9;:17;10304:6;10294:17;;;;;;;;;;;;;;;:46;;;;10397:6;10374:9;:20;10384:9;10374:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;10351:9;:20;10361:9;10351:20;;;;;;;;;;;;;;;:52;;;;10436:9;10419:35;;10428:6;10419:35;;;10447:6;10419:35;;;;;;:::i;:::-;;;;;;;;10472:4;10465:11;;10184:300;;;;;:::o;10513:845::-;10599:7;10629:15;10665:5;10656:6;;10647;:15;;;;:::i;:::-;:23;;;;:::i;:::-;10629:41;;10678:15;10715:5;10705:7;;10696:6;:16;;;;:::i;:::-;:24;;;;:::i;:::-;10678:42;;10731:14;10765:5;10757;;10748:6;:14;;;;:::i;:::-;:22;;;;:::i;:::-;10731:39;;10778:14;10813:5;10804:6;;10795;:15;;;;:::i;:::-;:23;;;;:::i;:::-;10778:40;;10829:16;10868:4;;;;;;;;;;;10858:14;;:6;:14;;;:44;;;;;10897:4;;;;;;;;;;;10876:26;;:9;:26;;;;10858:44;:71;;;;;10907:11;:22;10919:9;10907:22;;;;;;;;;;;;;;;;;;;;;;;;;10906:23;10858:71;10855:171;;;10967:6;10957:7;:16;;;;:::i;:::-;10946:27;;10985:32;11001:7;11010:6;10985:15;:32::i;:::-;10855:171;11039:16;;;;;;;;;;;11038:17;:35;;;;;11069:4;;;;;;;;;;;11059:14;;:6;:14;;;;11038:35;:50;;;;;11077:11;;;;;;;;;;;11038:50;11035:147;;;11123:6;11113:7;:16;;;;:::i;:::-;11102:27;;11141:32;11157:7;11166:6;11141:15;:32::i;:::-;11035:147;11248:8;11221:9;:24;11239:4;11221:24;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;11194:9;:24;11212:4;11194:24;;;;;;;;;;;;;;;:62;;;;11297:4;11272:41;;11281:6;11272:41;;;11304:8;11272:41;;;;;;:::i;:::-;;;;;;;;11342:8;11333:6;:17;;;;:::i;:::-;11326:24;;;;;;;10513:845;;;;;:::o;11535:432::-;11603:21;11641:1;11627:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11603:40;;11672:4;11654;11659:1;11654:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11698:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11688:4;11693:1;11688:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11724:35;11740:4;11747:11;11724:7;:35::i;:::-;;11772:6;;;;;;;;;;;:57;;;11844:11;11870:1;11886:4;11913;11933:15;11772:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11590:377;11535:432;:::o;11975:284::-;12056:6;;;;;;;;;;;:22;;;12086:9;12119:4;12139:11;12165:1;12181;12197:13;;;;;;;;;;;12225:15;12056:195;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11975:284;;:::o;11366:130::-;11451:3;11430:14;11445:1;11430:17;;;;;;;:::i;:::-;;;;:24;;;;;;;:::i;:::-;;;;;;;;11486:2;11465:14;11480:1;11465:17;;;;;;;:::i;:::-;;;;:23;;;;;;;:::i;:::-;;;;;;;;11366:130;;:::o;-1:-1:-1:-;;;;;;;;;;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:122::-;1332:24;1350:5;1332:24;:::i;:::-;1325:5;1322:35;1312:63;;1371:1;1368;1361:12;1312:63;1259:122;:::o;1387:139::-;1433:5;1471:6;1458:20;1449:29;;1487:33;1514:5;1487:33;:::i;:::-;1387:139;;;;:::o;1532:474::-;1600:6;1608;1657:2;1645:9;1636:7;1632:23;1628:32;1625:119;;;1663:79;;:::i;:::-;1625:119;1783:1;1808:53;1853:7;1844:6;1833:9;1829:22;1808:53;:::i;:::-;1798:63;;1754:117;1910:2;1936:53;1981:7;1972:6;1961:9;1957:22;1936:53;:::i;:::-;1926:63;;1881:118;1532:474;;;;;:::o;2012:118::-;2099:24;2117:5;2099:24;:::i;:::-;2094:3;2087:37;2012:118;;:::o;2136:222::-;2229:4;2267:2;2256:9;2252:18;2244:26;;2280:71;2348:1;2337:9;2333:17;2324:6;2280:71;:::i;:::-;2136:222;;;;:::o;2364:99::-;2416:6;2450:5;2444:12;2434:22;;2364:99;;;:::o;2469:169::-;2553:11;2587:6;2582:3;2575:19;2627:4;2622:3;2618:14;2603:29;;2469:169;;;;:::o;2644:307::-;2712:1;2722:113;2736:6;2733:1;2730:13;2722:113;;;2821:1;2816:3;2812:11;2806:18;2802:1;2797:3;2793:11;2786:39;2758:2;2755:1;2751:10;2746:15;;2722:113;;;2853:6;2850:1;2847:13;2844:101;;;2933:1;2924:6;2919:3;2915:16;2908:27;2844:101;2693:258;2644:307;;;:::o;2957:102::-;2998:6;3049:2;3045:7;3040:2;3033:5;3029:14;3025:28;3015:38;;2957:102;;;:::o;3065:364::-;3153:3;3181:39;3214:5;3181:39;:::i;:::-;3236:71;3300:6;3295:3;3236:71;:::i;:::-;3229:78;;3316:52;3361:6;3356:3;3349:4;3342:5;3338:16;3316:52;:::i;:::-;3393:29;3415:6;3393:29;:::i;:::-;3388:3;3384:39;3377:46;;3157:272;3065:364;;;;:::o;3435:313::-;3548:4;3586:2;3575:9;3571:18;3563:26;;3635:9;3629:4;3625:20;3621:1;3610:9;3606:17;3599:47;3663:78;3736:4;3727:6;3663:78;:::i;:::-;3655:86;;3435:313;;;;:::o;3754:474::-;3822:6;3830;3879:2;3867:9;3858:7;3854:23;3850:32;3847:119;;;3885:79;;:::i;:::-;3847:119;4005:1;4030:53;4075:7;4066:6;4055:9;4051:22;4030:53;:::i;:::-;4020:63;;3976:117;4132:2;4158:53;4203:7;4194:6;4183:9;4179:22;4158:53;:::i;:::-;4148:63;;4103:118;3754:474;;;;;:::o;4234:90::-;4268:7;4311:5;4304:13;4297:21;4286:32;;4234:90;;;:::o;4330:109::-;4411:21;4426:5;4411:21;:::i;:::-;4406:3;4399:34;4330:109;;:::o;4445:210::-;4532:4;4570:2;4559:9;4555:18;4547:26;;4583:65;4645:1;4634:9;4630:17;4621:6;4583:65;:::i;:::-;4445:210;;;;:::o;4661:116::-;4731:21;4746:5;4731:21;:::i;:::-;4724:5;4721:32;4711:60;;4767:1;4764;4757:12;4711:60;4661:116;:::o;4783:133::-;4826:5;4864:6;4851:20;4842:29;;4880:30;4904:5;4880:30;:::i;:::-;4783:133;;;;:::o;4922:468::-;4987:6;4995;5044:2;5032:9;5023:7;5019:23;5015:32;5012:119;;;5050:79;;:::i;:::-;5012:119;5170:1;5195:53;5240:7;5231:6;5220:9;5216:22;5195:53;:::i;:::-;5185:63;;5141:117;5297:2;5323:50;5365:7;5356:6;5345:9;5341:22;5323:50;:::i;:::-;5313:60;;5268:115;4922:468;;;;;:::o;5396:329::-;5455:6;5504:2;5492:9;5483:7;5479:23;5475:32;5472:119;;;5510:79;;:::i;:::-;5472:119;5630:1;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5601:117;5396:329;;;;:::o;5731:619::-;5808:6;5816;5824;5873:2;5861:9;5852:7;5848:23;5844:32;5841:119;;;5879:79;;:::i;:::-;5841:119;5999:1;6024:53;6069:7;6060:6;6049:9;6045:22;6024:53;:::i;:::-;6014:63;;5970:117;6126:2;6152:53;6197:7;6188:6;6177:9;6173:22;6152:53;:::i;:::-;6142:63;;6097:118;6254:2;6280:53;6325:7;6316:6;6305:9;6301:22;6280:53;:::i;:::-;6270:63;;6225:118;5731:619;;;;;:::o;6356:86::-;6391:7;6431:4;6424:5;6420:16;6409:27;;6356:86;;;:::o;6448:112::-;6531:22;6547:5;6531:22;:::i;:::-;6526:3;6519:35;6448:112;;:::o;6566:214::-;6655:4;6693:2;6682:9;6678:18;6670:26;;6706:67;6770:1;6759:9;6755:17;6746:6;6706:67;:::i;:::-;6566:214;;;;:::o;6786:117::-;6895:1;6892;6885:12;6909:117;7018:1;7015;7008:12;7032:117;7141:1;7138;7131:12;7172:568;7245:8;7255:6;7305:3;7298:4;7290:6;7286:17;7282:27;7272:122;;7313:79;;:::i;:::-;7272:122;7426:6;7413:20;7403:30;;7456:18;7448:6;7445:30;7442:117;;;7478:79;;:::i;:::-;7442:117;7592:4;7584:6;7580:17;7568:29;;7646:3;7638:4;7630:6;7626:17;7616:8;7612:32;7609:41;7606:128;;;7653:79;;:::i;:::-;7606:128;7172:568;;;;;:::o;7763:::-;7836:8;7846:6;7896:3;7889:4;7881:6;7877:17;7873:27;7863:122;;7904:79;;:::i;:::-;7863:122;8017:6;8004:20;7994:30;;8047:18;8039:6;8036:30;8033:117;;;8069:79;;:::i;:::-;8033:117;8183:4;8175:6;8171:17;8159:29;;8237:3;8229:4;8221:6;8217:17;8207:8;8203:32;8200:41;8197:128;;;8244:79;;:::i;:::-;8197:128;7763:568;;;;;:::o;8337:934::-;8459:6;8467;8475;8483;8532:2;8520:9;8511:7;8507:23;8503:32;8500:119;;;8538:79;;:::i;:::-;8500:119;8686:1;8675:9;8671:17;8658:31;8716:18;8708:6;8705:30;8702:117;;;8738:79;;:::i;:::-;8702:117;8851:80;8923:7;8914:6;8903:9;8899:22;8851:80;:::i;:::-;8833:98;;;;8629:312;9008:2;8997:9;8993:18;8980:32;9039:18;9031:6;9028:30;9025:117;;;9061:79;;:::i;:::-;9025:117;9174:80;9246:7;9237:6;9226:9;9222:22;9174:80;:::i;:::-;9156:98;;;;8951:313;8337:934;;;;;;;:::o;9277:468::-;9342:6;9350;9399:2;9387:9;9378:7;9374:23;9370:32;9367:119;;;9405:79;;:::i;:::-;9367:119;9525:1;9550:50;9592:7;9583:6;9572:9;9568:22;9550:50;:::i;:::-;9540:60;;9496:114;9649:2;9675:53;9720:7;9711:6;9700:9;9696:22;9675:53;:::i;:::-;9665:63;;9620:118;9277:468;;;;;:::o;9751:104::-;9796:7;9825:24;9843:5;9825:24;:::i;:::-;9814:35;;9751:104;;;:::o;9861:138::-;9942:32;9968:5;9942:32;:::i;:::-;9935:5;9932:43;9922:71;;9989:1;9986;9979:12;9922:71;9861:138;:::o;10005:155::-;10059:5;10097:6;10084:20;10075:29;;10113:41;10148:5;10113:41;:::i;:::-;10005:155;;;;:::o;10166:345::-;10233:6;10282:2;10270:9;10261:7;10257:23;10253:32;10250:119;;;10288:79;;:::i;:::-;10250:119;10408:1;10433:61;10486:7;10477:6;10466:9;10462:22;10433:61;:::i;:::-;10423:71;;10379:125;10166:345;;;;:::o;10517:118::-;10604:24;10622:5;10604:24;:::i;:::-;10599:3;10592:37;10517:118;;:::o;10641:222::-;10734:4;10772:2;10761:9;10757:18;10749:26;;10785:71;10853:1;10842:9;10838:17;10829:6;10785:71;:::i;:::-;10641:222;;;;:::o;10869:704::-;10964:6;10972;10980;11029:2;11017:9;11008:7;11004:23;11000:32;10997:119;;;11035:79;;:::i;:::-;10997:119;11183:1;11172:9;11168:17;11155:31;11213:18;11205:6;11202:30;11199:117;;;11235:79;;:::i;:::-;11199:117;11348:80;11420:7;11411:6;11400:9;11396:22;11348:80;:::i;:::-;11330:98;;;;11126:312;11477:2;11503:53;11548:7;11539:6;11528:9;11524:22;11503:53;:::i;:::-;11493:63;;11448:118;10869:704;;;;;:::o;11579:114::-;11634:7;11663:24;11681:5;11663:24;:::i;:::-;11652:35;;11579:114;;;:::o;11699:158::-;11790:42;11826:5;11790:42;:::i;:::-;11783:5;11780:53;11770:81;;11847:1;11844;11837:12;11770:81;11699:158;:::o;11863:175::-;11927:5;11965:6;11952:20;11943:29;;11981:51;12026:5;11981:51;:::i;:::-;11863:175;;;;:::o;12044:365::-;12121:6;12170:2;12158:9;12149:7;12145:23;12141:32;12138:119;;;12176:79;;:::i;:::-;12138:119;12296:1;12321:71;12384:7;12375:6;12364:9;12360:22;12321:71;:::i;:::-;12311:81;;12267:135;12044:365;;;;:::o;12415:474::-;12483:6;12491;12540:2;12528:9;12519:7;12515:23;12511:32;12508:119;;;12546:79;;:::i;:::-;12508:119;12666:1;12691:53;12736:7;12727:6;12716:9;12712:22;12691:53;:::i;:::-;12681:63;;12637:117;12793:2;12819:53;12864:7;12855:6;12844:9;12840:22;12819:53;:::i;:::-;12809:63;;12764:118;12415:474;;;;;:::o;12895:60::-;12923:3;12944:5;12937:12;;12895:60;;;:::o;12961:142::-;13011:9;13044:53;13062:34;13071:24;13089:5;13071:24;:::i;:::-;13062:34;:::i;:::-;13044:53;:::i;:::-;13031:66;;12961:142;;;:::o;13109:126::-;13159:9;13192:37;13223:5;13192:37;:::i;:::-;13179:50;;13109:126;;;:::o;13241:144::-;13309:9;13342:37;13373:5;13342:37;:::i;:::-;13329:50;;13241:144;;;:::o;13391:167::-;13496:55;13545:5;13496:55;:::i;:::-;13491:3;13484:68;13391:167;;:::o;13564:258::-;13675:4;13713:2;13702:9;13698:18;13690:26;;13726:89;13812:1;13801:9;13797:17;13788:6;13726:89;:::i;:::-;13564:258;;;;:::o;13828:179::-;13968:31;13964:1;13956:6;13952:14;13945:55;13828:179;:::o;14013:366::-;14155:3;14176:67;14240:2;14235:3;14176:67;:::i;:::-;14169:74;;14252:93;14341:3;14252:93;:::i;:::-;14370:2;14365:3;14361:12;14354:19;;14013:366;;;:::o;14385:419::-;14551:4;14589:2;14578:9;14574:18;14566:26;;14638:9;14632:4;14628:20;14624:1;14613:9;14609:17;14602:47;14666:131;14792:4;14666:131;:::i;:::-;14658:139;;14385:419;;;:::o;14810:180::-;14858:77;14855:1;14848:88;14955:4;14952:1;14945:15;14979:4;14976:1;14969:15;14996:305;15036:3;15055:20;15073:1;15055:20;:::i;:::-;15050:25;;15089:20;15107:1;15089:20;:::i;:::-;15084:25;;15243:1;15175:66;15171:74;15168:1;15165:81;15162:107;;;15249:18;;:::i;:::-;15162:107;15293:1;15290;15286:9;15279:16;;14996:305;;;;:::o;15307:163::-;15447:15;15443:1;15435:6;15431:14;15424:39;15307:163;:::o;15476:366::-;15618:3;15639:67;15703:2;15698:3;15639:67;:::i;:::-;15632:74;;15715:93;15804:3;15715:93;:::i;:::-;15833:2;15828:3;15824:12;15817:19;;15476:366;;;:::o;15848:419::-;16014:4;16052:2;16041:9;16037:18;16029:26;;16101:9;16095:4;16091:20;16087:1;16076:9;16072:17;16065:47;16129:131;16255:4;16129:131;:::i;:::-;16121:139;;15848:419;;;:::o;16273:332::-;16394:4;16432:2;16421:9;16417:18;16409:26;;16445:71;16513:1;16502:9;16498:17;16489:6;16445:71;:::i;:::-;16526:72;16594:2;16583:9;16579:18;16570:6;16526:72;:::i;:::-;16273:332;;;;;:::o;16611:180::-;16659:77;16656:1;16649:88;16756:4;16753:1;16746:15;16780:4;16777:1;16770:15;16797:185;16837:1;16854:20;16872:1;16854:20;:::i;:::-;16849:25;;16888:20;16906:1;16888:20;:::i;:::-;16883:25;;16927:1;16917:35;;16932:18;;:::i;:::-;16917:35;16974:1;16971;16967:9;16962:14;;16797:185;;;;:::o;16988:181::-;17128:33;17124:1;17116:6;17112:14;17105:57;16988:181;:::o;17175:366::-;17317:3;17338:67;17402:2;17397:3;17338:67;:::i;:::-;17331:74;;17414:93;17503:3;17414:93;:::i;:::-;17532:2;17527:3;17523:12;17516:19;;17175:366;;;:::o;17547:419::-;17713:4;17751:2;17740:9;17736:18;17728:26;;17800:9;17794:4;17790:20;17786:1;17775:9;17771:17;17764:47;17828:131;17954:4;17828:131;:::i;:::-;17820:139;;17547:419;;;:::o;17972:191::-;18012:4;18032:20;18050:1;18032:20;:::i;:::-;18027:25;;18066:20;18084:1;18066:20;:::i;:::-;18061:25;;18105:1;18102;18099:8;18096:34;;;18110:18;;:::i;:::-;18096:34;18155:1;18152;18148:9;18140:17;;17972:191;;;;:::o;18169:166::-;18309:18;18305:1;18297:6;18293:14;18286:42;18169:166;:::o;18341:366::-;18483:3;18504:67;18568:2;18563:3;18504:67;:::i;:::-;18497:74;;18580:93;18669:3;18580:93;:::i;:::-;18698:2;18693:3;18689:12;18682:19;;18341:366;;;:::o;18713:419::-;18879:4;18917:2;18906:9;18902:18;18894:26;;18966:9;18960:4;18956:20;18952:1;18941:9;18937:17;18930:47;18994:131;19120:4;18994:131;:::i;:::-;18986:139;;18713:419;;;:::o;19138:143::-;19195:5;19226:6;19220:13;19211:22;;19242:33;19269:5;19242:33;:::i;:::-;19138:143;;;;:::o;19287:351::-;19357:6;19406:2;19394:9;19385:7;19381:23;19377:32;19374:119;;;19412:79;;:::i;:::-;19374:119;19532:1;19557:64;19613:7;19604:6;19593:9;19589:22;19557:64;:::i;:::-;19547:74;;19503:128;19287:351;;;;:::o;19644:332::-;19765:4;19803:2;19792:9;19788:18;19780:26;;19816:71;19884:1;19873:9;19869:17;19860:6;19816:71;:::i;:::-;19897:72;19965:2;19954:9;19950:18;19941:6;19897:72;:::i;:::-;19644:332;;;;;:::o;19982:137::-;20036:5;20067:6;20061:13;20052:22;;20083:30;20107:5;20083:30;:::i;:::-;19982:137;;;;:::o;20125:345::-;20192:6;20241:2;20229:9;20220:7;20216:23;20212:32;20209:119;;;20247:79;;:::i;:::-;20209:119;20367:1;20392:61;20445:7;20436:6;20425:9;20421:22;20392:61;:::i;:::-;20382:71;;20338:125;20125:345;;;;:::o;20476:102::-;20518:8;20565:5;20562:1;20558:13;20537:34;;20476:102;;;:::o;20584:848::-;20645:5;20652:4;20676:6;20667:15;;20700:5;20691:14;;20714:712;20735:1;20725:8;20722:15;20714:712;;;20830:4;20825:3;20821:14;20815:4;20812:24;20809:50;;;20839:18;;:::i;:::-;20809:50;20889:1;20879:8;20875:16;20872:451;;;21304:4;21297:5;21293:16;21284:25;;20872:451;21354:4;21348;21344:15;21336:23;;21384:32;21407:8;21384:32;:::i;:::-;21372:44;;20714:712;;;20584:848;;;;;;;:::o;21438:1073::-;21492:5;21683:8;21673:40;;21704:1;21695:10;;21706:5;;21673:40;21732:4;21722:36;;21749:1;21740:10;;21751:5;;21722:36;21818:4;21866:1;21861:27;;;;21902:1;21897:191;;;;21811:277;;21861:27;21879:1;21870:10;;21881:5;;;21897:191;21942:3;21932:8;21929:17;21926:43;;;21949:18;;:::i;:::-;21926:43;21998:8;21995:1;21991:16;21982:25;;22033:3;22026:5;22023:14;22020:40;;;22040:18;;:::i;:::-;22020:40;22073:5;;;21811:277;;22197:2;22187:8;22184:16;22178:3;22172:4;22169:13;22165:36;22147:2;22137:8;22134:16;22129:2;22123:4;22120:12;22116:35;22100:111;22097:246;;;22253:8;22247:4;22243:19;22234:28;;22288:3;22281:5;22278:14;22275:40;;;22295:18;;:::i;:::-;22275:40;22328:5;;22097:246;22368:42;22406:3;22396:8;22390:4;22387:1;22368:42;:::i;:::-;22353:57;;;;22442:4;22437:3;22433:14;22426:5;22423:25;22420:51;;;22451:18;;:::i;:::-;22420:51;22500:4;22493:5;22489:16;22480:25;;21438:1073;;;;;;:::o;22517:281::-;22575:5;22599:23;22617:4;22599:23;:::i;:::-;22591:31;;22643:25;22659:8;22643:25;:::i;:::-;22631:37;;22687:104;22724:66;22714:8;22708:4;22687:104;:::i;:::-;22678:113;;22517:281;;;;:::o;22804:180::-;22852:77;22849:1;22842:88;22949:4;22946:1;22939:15;22973:4;22970:1;22963:15;22990:348;23030:7;23053:20;23071:1;23053:20;:::i;:::-;23048:25;;23087:20;23105:1;23087:20;:::i;:::-;23082:25;;23275:1;23207:66;23203:74;23200:1;23197:81;23192:1;23185:9;23178:17;23174:105;23171:131;;;23282:18;;:::i;:::-;23171:131;23330:1;23327;23323:9;23312:20;;22990:348;;;;:::o;23344:233::-;23383:3;23406:24;23424:5;23406:24;:::i;:::-;23397:33;;23452:66;23445:5;23442:77;23439:103;;23522:18;;:::i;:::-;23439:103;23569:1;23562:5;23558:13;23551:20;;23344:233;;;:::o;23583:320::-;23698:4;23736:2;23725:9;23721:18;23713:26;;23749:65;23811:1;23800:9;23796:17;23787:6;23749:65;:::i;:::-;23824:72;23892:2;23881:9;23877:18;23868:6;23824:72;:::i;:::-;23583:320;;;;;:::o;23909:225::-;24049:34;24045:1;24037:6;24033:14;24026:58;24118:8;24113:2;24105:6;24101:15;24094:33;23909:225;:::o;24140:366::-;24282:3;24303:67;24367:2;24362:3;24303:67;:::i;:::-;24296:74;;24379:93;24468:3;24379:93;:::i;:::-;24497:2;24492:3;24488:12;24481:19;;24140:366;;;:::o;24512:419::-;24678:4;24716:2;24705:9;24701:18;24693:26;;24765:9;24759:4;24755:20;24751:1;24740:9;24736:17;24729:47;24793:131;24919:4;24793:131;:::i;:::-;24785:139;;24512:419;;;:::o;24937:182::-;25077:34;25073:1;25065:6;25061:14;25054:58;24937:182;:::o;25125:366::-;25267:3;25288:67;25352:2;25347:3;25288:67;:::i;:::-;25281:74;;25364:93;25453:3;25364:93;:::i;:::-;25482:2;25477:3;25473:12;25466:19;;25125:366;;;:::o;25497:419::-;25663:4;25701:2;25690:9;25686:18;25678:26;;25750:9;25744:4;25740:20;25736:1;25725:9;25721:17;25714:47;25778:131;25904:4;25778:131;:::i;:::-;25770:139;;25497:419;;;:::o;25922:224::-;26062:34;26058:1;26050:6;26046:14;26039:58;26131:7;26126:2;26118:6;26114:15;26107:32;25922:224;:::o;26152:366::-;26294:3;26315:67;26379:2;26374:3;26315:67;:::i;:::-;26308:74;;26391:93;26480:3;26391:93;:::i;:::-;26509:2;26504:3;26500:12;26493:19;;26152:366;;;:::o;26524:419::-;26690:4;26728:2;26717:9;26713:18;26705:26;;26777:9;26771:4;26767:20;26763:1;26752:9;26748:17;26741:47;26805:131;26931:4;26805:131;:::i;:::-;26797:139;;26524:419;;;:::o;26949:222::-;27089:34;27085:1;27077:6;27073:14;27066:58;27158:5;27153:2;27145:6;27141:15;27134:30;26949:222;:::o;27177:366::-;27319:3;27340:67;27404:2;27399:3;27340:67;:::i;:::-;27333:74;;27416:93;27505:3;27416:93;:::i;:::-;27534:2;27529:3;27525:12;27518:19;;27177:366;;;:::o;27549:419::-;27715:4;27753:2;27742:9;27738:18;27730:26;;27802:9;27796:4;27792:20;27788:1;27777:9;27773:17;27766:47;27830:131;27956:4;27830:131;:::i;:::-;27822:139;;27549:419;;;:::o;27974:228::-;28114:34;28110:1;28102:6;28098:14;28091:58;28183:11;28178:2;28170:6;28166:15;28159:36;27974:228;:::o;28208:366::-;28350:3;28371:67;28435:2;28430:3;28371:67;:::i;:::-;28364:74;;28447:93;28536:3;28447:93;:::i;:::-;28565:2;28560:3;28556:12;28549:19;;28208:366;;;:::o;28580:419::-;28746:4;28784:2;28773:9;28769:18;28761:26;;28833:9;28827:4;28823:20;28819:1;28808:9;28804:17;28797:47;28861:131;28987:4;28861:131;:::i;:::-;28853:139;;28580:419;;;:::o;29005:168::-;29145:20;29141:1;29133:6;29129:14;29122:44;29005:168;:::o;29179:366::-;29321:3;29342:67;29406:2;29401:3;29342:67;:::i;:::-;29335:74;;29418:93;29507:3;29418:93;:::i;:::-;29536:2;29531:3;29527:12;29520:19;;29179:366;;;:::o;29551:419::-;29717:4;29755:2;29744:9;29740:18;29732:26;;29804:9;29798:4;29794:20;29790:1;29779:9;29775:17;29768:47;29832:131;29958:4;29832:131;:::i;:::-;29824:139;;29551:419;;;:::o;29976:168::-;30116:20;30112:1;30104:6;30100:14;30093:44;29976:168;:::o;30150:366::-;30292:3;30313:67;30377:2;30372:3;30313:67;:::i;:::-;30306:74;;30389:93;30478:3;30389:93;:::i;:::-;30507:2;30502:3;30498:12;30491:19;;30150:366;;;:::o;30522:419::-;30688:4;30726:2;30715:9;30711:18;30703:26;;30775:9;30769:4;30765:20;30761:1;30750:9;30746:17;30739:47;30803:131;30929:4;30803:131;:::i;:::-;30795:139;;30522:419;;;:::o;30947:180::-;30995:77;30992:1;30985:88;31092:4;31089:1;31082:15;31116:4;31113:1;31106:15;31133:143;31190:5;31221:6;31215:13;31206:22;;31237:33;31264:5;31237:33;:::i;:::-;31133:143;;;;:::o;31282:351::-;31352:6;31401:2;31389:9;31380:7;31376:23;31372:32;31369:119;;;31407:79;;:::i;:::-;31369:119;31527:1;31552:64;31608:7;31599:6;31588:9;31584:22;31552:64;:::i;:::-;31542:74;;31498:128;31282:351;;;;:::o;31639:85::-;31684:7;31713:5;31702:16;;31639:85;;;:::o;31730:158::-;31788:9;31821:61;31839:42;31848:32;31874:5;31848:32;:::i;:::-;31839:42;:::i;:::-;31821:61;:::i;:::-;31808:74;;31730:158;;;:::o;31894:147::-;31989:45;32028:5;31989:45;:::i;:::-;31984:3;31977:58;31894:147;;:::o;32047:114::-;32114:6;32148:5;32142:12;32132:22;;32047:114;;;:::o;32167:184::-;32266:11;32300:6;32295:3;32288:19;32340:4;32335:3;32331:14;32316:29;;32167:184;;;;:::o;32357:132::-;32424:4;32447:3;32439:11;;32477:4;32472:3;32468:14;32460:22;;32357:132;;;:::o;32495:108::-;32572:24;32590:5;32572:24;:::i;:::-;32567:3;32560:37;32495:108;;:::o;32609:179::-;32678:10;32699:46;32741:3;32733:6;32699:46;:::i;:::-;32777:4;32772:3;32768:14;32754:28;;32609:179;;;;:::o;32794:113::-;32864:4;32896;32891:3;32887:14;32879:22;;32794:113;;;:::o;32943:732::-;33062:3;33091:54;33139:5;33091:54;:::i;:::-;33161:86;33240:6;33235:3;33161:86;:::i;:::-;33154:93;;33271:56;33321:5;33271:56;:::i;:::-;33350:7;33381:1;33366:284;33391:6;33388:1;33385:13;33366:284;;;33467:6;33461:13;33494:63;33553:3;33538:13;33494:63;:::i;:::-;33487:70;;33580:60;33633:6;33580:60;:::i;:::-;33570:70;;33426:224;33413:1;33410;33406:9;33401:14;;33366:284;;;33370:14;33666:3;33659:10;;33067:608;;;32943:732;;;;:::o;33681:831::-;33944:4;33982:3;33971:9;33967:19;33959:27;;33996:71;34064:1;34053:9;34049:17;34040:6;33996:71;:::i;:::-;34077:80;34153:2;34142:9;34138:18;34129:6;34077:80;:::i;:::-;34204:9;34198:4;34194:20;34189:2;34178:9;34174:18;34167:48;34232:108;34335:4;34326:6;34232:108;:::i;:::-;34224:116;;34350:72;34418:2;34407:9;34403:18;34394:6;34350:72;:::i;:::-;34432:73;34500:3;34489:9;34485:19;34476:6;34432:73;:::i;:::-;33681:831;;;;;;;;:::o;34518:807::-;34767:4;34805:3;34794:9;34790:19;34782:27;;34819:71;34887:1;34876:9;34872:17;34863:6;34819:71;:::i;:::-;34900:72;34968:2;34957:9;34953:18;34944:6;34900:72;:::i;:::-;34982:80;35058:2;35047:9;35043:18;35034:6;34982:80;:::i;:::-;35072;35148:2;35137:9;35133:18;35124:6;35072:80;:::i;:::-;35162:73;35230:3;35219:9;35215:19;35206:6;35162:73;:::i;:::-;35245;35313:3;35302:9;35298:19;35289:6;35245:73;:::i;:::-;34518:807;;;;;;;;;:::o;35331:663::-;35419:6;35427;35435;35484:2;35472:9;35463:7;35459:23;35455:32;35452:119;;;35490:79;;:::i;:::-;35452:119;35610:1;35635:64;35691:7;35682:6;35671:9;35667:22;35635:64;:::i;:::-;35625:74;;35581:128;35748:2;35774:64;35830:7;35821:6;35810:9;35806:22;35774:64;:::i;:::-;35764:74;;35719:129;35887:2;35913:64;35969:7;35960:6;35949:9;35945:22;35913:64;:::i;:::-;35903:74;;35858:129;35331:663;;;;;:::o

Swarm Source

ipfs://5614c258b7f0ebd9d5d48e9180453aa4718ad0e5d0a4c50740f095505ab08e94
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.