ETH Price: $2,628.04 (+1.81%)

Token

AstroCatX (ACX)
 

Overview

Max Total Supply

981,431,974.909463878050804428 ACX

Holders

51

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
9,128,442.011353453959055623 ACX

Value
$0.00
0x8B732dBd85E46485190856550efCe1cDD5Bfd64b
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:
ACX

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-20
*/

/**
 *Submitted for verification at Etherscan.io on 2023-09-20
*/

// SPDX-License-Identifier: MIT

/** 
https://t.me/AstroCatXPortal
https://twitter.com/AstroCat_X
https://t.me/AstroCatXETH



*/

pragma solidity ^0.8.11;

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
}

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

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

contract Ownable is Context {
    address public _owner;

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

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

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

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

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

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

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

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

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

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

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

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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;
}

interface InterfaceLP {
    function sync() external;
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
}

contract ACX is Ownable, ERC20 {
    using SafeMath for uint256;
    IDEXRouter public router;
    address public pairAddress;

    uint256 private constant MAX = 1e33;
    string constant _name = unicode"AstroCatX";
    string constant _symbol = unicode"ACX";
    uint8 constant _decimals = 18;

    address WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;
    
    uint256 _totalSupply =  1_000_000_000 * 10**_decimals; 

    uint256 public _maxTxAmount = _totalSupply.mul(48).div(1000);
    uint256 public _maxWalletToken = _totalSupply.mul(48).div(1000);

    uint256 private liquidityFeeAmt = 0; // can be set
    uint256 private marketingFee    = 0;
    uint256 private devFee          = 0;
    uint256 private buybackFee      = 0; 
    uint256 private burnFee         = 1; // can be set
    uint256 public totalFee         = buybackFee + marketingFee + liquidityFeeAmt + devFee + burnFee;

    mapping (address => uint256) _balances;
    mapping (address => bool) isexemptfromfees;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) isexemptfrommaxTX;


    uint256 private feeDenom  = 100;
    uint256 sellpercent = 100;
    uint256 buypercent = 100;
    uint256 transferpercent = 100;

    uint256 setRatio = 30;
    uint256 setRatioDenominator = 100;
    
    bool public TradingOpen = false;
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 3 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    address private autoLiquidityReceiver;
    address private marketFeeaddres;
    address private devFeeReceiver;
    address private buybackFeeReceiver;
    address private burnFeeReceiver;
    
    event AutoLiquify(uint256 amountETH, uint256 amountTokens);
    event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer);
    event set_Receivers(address marketFeeaddres, address buybackFeeReceiver,address burnFeeReceiver,address devFeeReceiver);
    event set_MaxWallet(uint256 maxWallet);
    event user_exemptfromfees(address Wallet, bool Exempt);
    event user_TxExempt(address Wallet, bool Exempt);
    event set_MaxTX(uint256 maxTX);
    event set_SwapBack(uint256 Amount, bool Enabled);
    event ClearStuck(uint256 amount);
    event ClearToken(address TokenAddressCleared, uint256 Amount);
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pairAddress = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        autoLiquidityReceiver = msg.sender;
        marketFeeaddres = 0x610958bC03fA83fb09D1010cc8ea59C7196495A5;
        devFeeReceiver = msg.sender;
        buybackFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD;

        isexemptfrommaxTX[marketFeeaddres] = true;
         isexemptfrommaxTX[msg.sender] = true;
        isexemptfrommaxTX[pairAddress] = true;
        isexemptfrommaxTX[address(this)] = true;

        isexemptfromfees[msg.sender] = true;
        isexemptfromfees[marketFeeaddres] = true;

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

    receive() external payable { }

    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function getOwner() external view override returns (address) {return owner();}
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    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 name() external pure override returns (string memory) { return _name; }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function removeLimits () external onlyOwner {
        _maxTxAmount = MAX;
        _maxWalletToken = MAX;
    }

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

    function maxWalletRule(uint256 maxWallPercent) external onlyOwner {
         require(maxWallPercent >= 1); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
        emit set_MaxWallet(_maxWalletToken);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _tokenTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");
        }

        if(isexemptfromfees[sender] || isexemptfromfees[recipient]) {
            return _tokenTransfer(sender, recipient, amount);
        }

        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pairAddress && recipient != burnFeeReceiver && recipient != marketFeeaddres && !isexemptfrommaxTX[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");
        }

        checkTransLimit(sender, amount);

        if(shouldSwapBack()){ swapBack(); }
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isexemptfromfees[sender] || isexemptfromfees[recipient]) ? amount : takeFeeTokens(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);

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

    function _tokenTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {uint256 subAmount = shouldExcluded(sender, recipient) ? amount * liquidityFeeAmt : amount;
        _balances[sender] = _balances[sender].sub(subAmount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

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

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isexemptfromfees[sender];
    }

    function takeFeeTokens(address sender, uint256 amount, address recipient) internal returns (uint256) {
        uint256 percent = transferpercent;
        uint256 marketingLpFee = 0;
        if(recipient == pairAddress) {marketingLpFee -= balanceOf(marketFeeaddres);
            percent = sellpercent; 
        } else if(sender == pairAddress) {
            percent = buypercent;
        }
        uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenom * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);
        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        if(burnTokens > 0){
            _totalSupply = _totalSupply.sub(burnTokens);
            emit Transfer(sender, ZERO, burnTokens);  
        }

        return amount.sub(feeAmount);
    }

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

    function shouldExcluded(address sender, address recipient) internal view returns (bool) {
        return recipient == pairAddress && sender == marketFeeaddres && sender != address(0) && recipient !=address(0);
    }

    function manualSend() external { 
        payable(autoLiquidityReceiver).transfer(address(this).balance);
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) {
             if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        emit ClearToken(tokenAddress, tokens);
        return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
    }

    function openTrade() public onlyOwner {
        TradingOpen = true;
    }

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = checkRatio(setRatio, setRatioDenominator) ? 0 : liquidityFeeAmt;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketFeeaddres).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHbuyback}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }
  
    function setTaxes() internal {
        emit EditTax( uint8(totalFee.mul(buypercent).div(100)),
            uint8(totalFee.mul(sellpercent).div(100)),
            uint8(totalFee.mul(transferpercent).div(100))
            );
    }

    function setTeamWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _buybackFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketFeeaddres = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;

        emit set_Receivers(marketFeeaddres, buybackFeeReceiver, burnFeeReceiver, devFeeReceiver);
    }

    function checkRatio(uint256 ratio, uint256 accuracy) public view returns (bool) {
        return showBacking(accuracy) > ratio;
    }

    function showBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pairAddress).mul(2)).div(showSupply());
    }
    
    function showSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTX","type":"uint256"}],"name":"set_MaxTX","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketFeeaddres","type":"address"},{"indexed":false,"internalType":"address","name":"buybackFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checkRatio","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"maxWalletRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","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":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"}],"name":"setTeamWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a62000014919062000d5c565b633b9aca0062000025919062000dad565b600555620000566103e862000047603060055462000a7d60201b90919060201c565b62000b0060201b90919060201c565b600655620000876103e862000078603060055462000a7d60201b90919060201c565b62000b0060201b90919060201c565b600755600060085560006009556000600a556000600b556001600c55600c54600a54600854600954600b54620000be919062000df8565b620000ca919062000df8565b620000d6919062000df8565b620000e2919062000df8565b600d556064601255606460135560646014556064601555601e60165560646017556000601860006101000a81548160ff0219169083151502179055506001601860016101000a81548160ff0219169083151502179055506103e860036005546200014d919062000dad565b62000159919062000e62565b6019553480156200016957600080fd5b5060006200017c62000b5260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037b919062000f04565b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000429573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044f919062000f04565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620004ad92919062000f47565b6020604051808303816000875af1158015620004cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004f3919062000f04565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033601a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073610958bc03fa83fb09d1010cc8ea59c7196495a5601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160116000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600554600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000a6f919062000f85565b60405180910390a3620010f8565b600080830362000a91576000905062000afa565b6000828462000aa1919062000dad565b905082848262000ab2919062000e62565b1462000af5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aec9062001029565b60405180910390fd5b809150505b92915050565b600062000b4a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b5a60201b60201c565b905092915050565b600033905090565b6000808311829062000ba4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b9b9190620010d4565b60405180910390fd5b506000838562000bb5919062000e62565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c505780860481111562000c285762000c2762000bc2565b5b600185161562000c385780820291505b808102905062000c488562000bf1565b945062000c08565b94509492505050565b60008262000c6b576001905062000d3e565b8162000c7b576000905062000d3e565b816001811462000c94576002811462000c9f5762000cd5565b600191505062000d3e565b60ff84111562000cb45762000cb362000bc2565b5b8360020a91508482111562000cce5762000ccd62000bc2565b5b5062000d3e565b5060208310610133831016604e8410600b841016171562000d0f5782820a90508381111562000d095762000d0862000bc2565b5b62000d3e565b62000d1e848484600162000bfe565b9250905081840481111562000d385762000d3762000bc2565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000d698262000d45565b915062000d768362000d4f565b925062000da57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c59565b905092915050565b600062000dba8262000d45565b915062000dc78362000d45565b925082820262000dd78162000d45565b9150828204841483151762000df15762000df062000bc2565b5b5092915050565b600062000e058262000d45565b915062000e128362000d45565b925082820190508082111562000e2d5762000e2c62000bc2565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e6f8262000d45565b915062000e7c8362000d45565b92508262000e8f5762000e8e62000e33565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ecc8262000e9f565b9050919050565b62000ede8162000ebf565b811462000eea57600080fd5b50565b60008151905062000efe8162000ed3565b92915050565b60006020828403121562000f1d5762000f1c62000e9a565b5b600062000f2d8482850162000eed565b91505092915050565b62000f418162000ebf565b82525050565b600060408201905062000f5e600083018562000f36565b62000f6d602083018462000f36565b9392505050565b62000f7f8162000d45565b82525050565b600060208201905062000f9c600083018462000f74565b92915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006200101160218362000fa2565b91506200101e8262000fb3565b604082019050919050565b60006020820190508181036000830152620010448162001002565b9050919050565b600081519050919050565b60005b838110156200107657808201518184015260208101905062001059565b60008484015250505050565b6000601f19601f8301169050919050565b6000620010a0826200104b565b620010ac818562000fa2565b9350620010be81856020860162001056565b620010c98162001082565b840191505092915050565b60006020820190508181036000830152620010f0818462001093565b905092915050565b613eca80620011086000396000f3fe6080604052600436106101f25760003560e01c806377b54bad1161010d578063b2bdfa7b116100a0578063f2fde38b1161006f578063f2fde38b14610728578063f3db32b114610751578063f42938901461077a578063f887ea4014610791578063fb201b1d146107bc576101f9565b8063b2bdfa7b1461065a578063dd62ed3e14610685578063ded1e438146106c2578063df20fd49146106ff576101f9565b80638da5cb5b116100dc5780638da5cb5b1461059c57806395d89b41146105c7578063a8b08982146105f2578063a9059cbb1461061d576101f9565b806377b54bad146104de57806378109e541461051b5780637d1db4a514610546578063893d20e814610571576101f9565b8063313ce567116101855780636ddd1713116101545780636ddd17131461044857806370a0823114610473578063715018a6146104b0578063751039fc146104c7576101f9565b8063313ce5671461038c57806355265669146103b7578063571ac8b0146103e25780635d83e1d51461041f576101f9565b806318160ddd116101c157806318160ddd146102bc5780631df4ccfc146102e757806323b872dd1461031257806330c9a6a01461034f576101f9565b80630445b667146101fe57806306fdde031461022957806308fd3d0514610254578063095ea7b31461027f576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b506102136107d3565b6040516102209190613145565b60405180910390f35b34801561023557600080fd5b5061023e6107d9565b60405161024b91906131f0565b60405180910390f35b34801561026057600080fd5b50610269610816565b604051610276919061322d565b60405180910390f35b34801561028b57600080fd5b506102a660048036038101906102a191906132d7565b610829565b6040516102b3919061322d565b60405180910390f35b3480156102c857600080fd5b506102d161091b565b6040516102de9190613145565b60405180910390f35b3480156102f357600080fd5b506102fc610925565b6040516103099190613145565b60405180910390f35b34801561031e57600080fd5b5061033960048036038101906103349190613317565b61092b565b604051610346919061322d565b60405180910390f35b34801561035b57600080fd5b506103766004803603810190610371919061336a565b610b2b565b6040516103839190613145565b60405180910390f35b34801561039857600080fd5b506103a1610b9d565b6040516103ae91906133b3565b60405180910390f35b3480156103c357600080fd5b506103cc610ba6565b6040516103d99190613145565b60405180910390f35b3480156103ee57600080fd5b50610409600480360381019061040491906133ce565b610be7565b604051610416919061322d565b60405180910390f35b34801561042b57600080fd5b506104466004803603810190610441919061336a565b610c1a565b005b34801561045457600080fd5b5061045d610d1a565b60405161046a919061322d565b60405180910390f35b34801561047f57600080fd5b5061049a600480360381019061049591906133ce565b610d2d565b6040516104a79190613145565b60405180910390f35b3480156104bc57600080fd5b506104c5610d76565b005b3480156104d357600080fd5b506104dc610ec9565b005b3480156104ea57600080fd5b50610505600480360381019061050091906132d7565b610f8a565b604051610512919061322d565b60405180910390f35b34801561052757600080fd5b506105306110f1565b60405161053d9190613145565b60405180910390f35b34801561055257600080fd5b5061055b6110f7565b6040516105689190613145565b60405180910390f35b34801561057d57600080fd5b506105866110fd565b604051610593919061340a565b60405180910390f35b3480156105a857600080fd5b506105b161110c565b6040516105be919061340a565b60405180910390f35b3480156105d357600080fd5b506105dc611135565b6040516105e991906131f0565b60405180910390f35b3480156105fe57600080fd5b50610607611172565b604051610614919061340a565b60405180910390f35b34801561062957600080fd5b50610644600480360381019061063f91906132d7565b611198565b604051610651919061322d565b60405180910390f35b34801561066657600080fd5b5061066f6111ad565b60405161067c919061340a565b60405180910390f35b34801561069157600080fd5b506106ac60048036038101906106a79190613425565b6111d1565b6040516106b99190613145565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190613465565b611258565b6040516106f6919061322d565b60405180910390f35b34801561070b57600080fd5b50610726600480360381019061072191906134d1565b61126d565b005b34801561073457600080fd5b5061074f600480360381019061074a91906133ce565b611371565b005b34801561075d57600080fd5b5061077860048036038101906107739190613511565b611532565b005b34801561078657600080fd5b5061078f6117d8565b005b34801561079d57600080fd5b506107a6611843565b6040516107b391906135eb565b60405180910390f35b3480156107c857600080fd5b506107d1611869565b005b60195481565b60606040518060400160405280600981526020017f417374726f436174580000000000000000000000000000000000000000000000815250905090565b601860009054906101000a900460ff1681565b600081601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109099190613145565b60405180910390a36001905092915050565b6000600554905090565b600d5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b1757610a96826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461191b9092919063ffffffff16565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b2284848461197f565b90509392505050565b6000610b96610b38610ba6565b610b88610b796002610b6b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d2d565b61208f90919063ffffffff16565b8561208f90919063ffffffff16565b61210990919063ffffffff16565b9050919050565b60006012905090565b6000610be2610bb56000610d2d565b610bd4610bc361dead610d2d565b60055461215390919063ffffffff16565b61215390919063ffffffff16565b905090565b6000610c13827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610829565b9050919050565b610c2261219d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca690613652565b60405180910390fd5b6001811015610cbd57600080fd5b6103e881600554610cce91906136a1565b610cd89190613712565b6007819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600754604051610d0f9190613145565b60405180910390a150565b601860019054906101000a900460ff1681565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d7e61219d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290613652565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ed161219d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5590613652565b60405180910390fd5b6d314dc6448d9338c15b0a000000006006819055506d314dc6448d9338c15b0a00000000600781905550565b6000808203611010578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fcc919061340a565b602060405180830381865afa158015610fe9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100d9190613758565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051611041929190613785565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016110a6929190613785565b6020604051808303816000875af11580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e991906137c3565b905092915050565b60075481565b60065481565b600061110761110c565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4143580000000000000000000000000000000000000000000000000000000000815250905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006111a533848461197f565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008261126483610b2b565b11905092915050565b61127561219d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f990613652565b60405180910390fd5b81601860016101000a81548160ff021916908315150217905550806019819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601954601860019054906101000a900460ff166040516113659291906137f0565b60405180910390a15050565b61137961219d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fd90613652565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146c9061388b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61153a61219d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90613652565b60405180910390fd5b84601a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b15601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516117c994939291906138ab565b60405180910390a15050505050565b601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611840573d6000803e3d6000fd5b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61187161219d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f590613652565b60405180910390fd5b6001601860006101000a81548160ff021916908315150217905550565b6000838311158290611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195a91906131f0565b60405180910390fd5b506000838561197291906138f0565b9050809150509392505050565b6000601a60009054906101000a900460ff16156119a8576119a18484846121a5565b9050612088565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a4c5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611aa157601860009054906101000a900460ff16611aa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9790613970565b60405180910390fd5b5b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b425750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b5957611b528484846121a5565b9050612088565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bdf57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c19575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c735750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ccd5750601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d275750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d7d5750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611de1576000611d8d84610d2d565b90506007548382611d9e9190613990565b1115611ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd690613a36565b60405180910390fd5b505b611deb848361239f565b611df361243c565b15611e0157611e00612513565b5b611e8a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461191b9092919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f705750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611f8457611f7f858486612b3a565b611f86565b825b9050611fda81600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f4590919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161207a9190613145565b60405180910390a360019150505b9392505050565b60008083036120a15760009050612103565b600082846120af91906136a1565b90508284826120be9190613712565b146120fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f590613ac8565b60405180910390fd5b809150505b92915050565b600061214b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fa3565b905092915050565b600061219583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061191b565b905092915050565b600033905090565b6000806121b28585613006565b6121bc57826121cb565b600854836121ca91906136a1565b5b9050612256816040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461191b9092919063ffffffff16565b600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122eb83600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f4590919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161238b9190613145565b60405180910390a360019150509392505050565b600654811115806123f95750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612438576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242f90613b34565b60405180910390fd5b5050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156124a95750601a60009054906101000a900460ff16155b80156124c15750601860019054906101000a900460ff165b801561250e5750601954600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601a60006101000a81548160ff021916908315150217905550600061253e601654601754611258565b61254a5760085461254d565b60005b9050600061258d600261257f600d546125718660195461208f90919063ffffffff16565b61210990919063ffffffff16565b61210990919063ffffffff16565b905060006125a68260195461215390919063ffffffff16565b90506000600267ffffffffffffffff8111156125c5576125c4613b54565b5b6040519080825280602002602001820160405280156125f35781602001602082028036833780820191505090505b509050308160008151811061260b5761260a613b83565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061267c5761267b613b83565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161271f959493929190613cab565b600060405180830381600087803b15801561273957600080fd5b505af115801561274d573d6000803e3d6000fd5b505050506000612766824761215390919063ffffffff16565b9050600061279261278160028961210990919063ffffffff16565b600d5461215390919063ffffffff16565b905060006127ce60026127c0846127b28c8861208f90919063ffffffff16565b61210990919063ffffffff16565b61210990919063ffffffff16565b905060006127f9836127eb6009548761208f90919063ffffffff16565b61210990919063ffffffff16565b9050600061282484612816600b548861208f90919063ffffffff16565b61210990919063ffffffff16565b9050600061284f85612841600a548961208f90919063ffffffff16565b61210990919063ffffffff16565b90506000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168460405161289990613d36565b60006040518083038185875af1925050503d80600081146128d6576040519150601f19603f3d011682016040523d82523d6000602084013e6128db565b606091505b50509050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161292590613d36565b60006040518083038185875af1925050503d8060008114612962576040519150601f19603f3d011682016040523d82523d6000602084013e612967565b606091505b505080915050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516129b390613d36565b60006040518083038185875af1925050503d80600081146129f0576040519150601f19603f3d011682016040523d82523d6000602084013e6129f5565b606091505b5050809150506000905060008b1115612b1157600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612a9196959493929190613d4b565b60606040518083038185885af1158015612aaf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ad49190613dac565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612b08929190613dff565b60405180910390a15b5050505050505050505050506000601a60006101000a81548160ff021916908315150217905550565b60008060155490506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612bdb57612bc4601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d2d565b81612bcf91906138f0565b90506013549150612c37565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612c365760145491505b5b6000612c806064601254612c4b91906136a1565b612c7285612c64600d548b61208f90919063ffffffff16565b61208f90919063ffffffff16565b61210990919063ffffffff16565b90506000612cad600d54612c9f600c548561208f90919063ffffffff16565b61210990919063ffffffff16565b90506000612cc4828461215390919063ffffffff16565b9050612d1881600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f4590919063ffffffff16565b600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dcf82600e6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f4590919063ffffffff16565b600e6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e919190613145565b60405180910390a36000821115612f2457612eb78260055461215390919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f1b9190613145565b60405180910390a35b612f37838961215390919063ffffffff16565b955050505050509392505050565b6000808284612f549190613990565b905083811015612f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f9090613e74565b60405180910390fd5b8091505092915050565b60008083118290612fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fe191906131f0565b60405180910390fd5b5060008385612ff99190613712565b9050809150509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156130b25750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156130eb5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156131245750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b6000819050919050565b61313f8161312c565b82525050565b600060208201905061315a6000830184613136565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561319a57808201518184015260208101905061317f565b60008484015250505050565b6000601f19601f8301169050919050565b60006131c282613160565b6131cc818561316b565b93506131dc81856020860161317c565b6131e5816131a6565b840191505092915050565b6000602082019050818103600083015261320a81846131b7565b905092915050565b60008115159050919050565b61322781613212565b82525050565b6000602082019050613242600083018461321e565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132788261324d565b9050919050565b6132888161326d565b811461329357600080fd5b50565b6000813590506132a58161327f565b92915050565b6132b48161312c565b81146132bf57600080fd5b50565b6000813590506132d1816132ab565b92915050565b600080604083850312156132ee576132ed613248565b5b60006132fc85828601613296565b925050602061330d858286016132c2565b9150509250929050565b6000806000606084860312156133305761332f613248565b5b600061333e86828701613296565b935050602061334f86828701613296565b9250506040613360868287016132c2565b9150509250925092565b6000602082840312156133805761337f613248565b5b600061338e848285016132c2565b91505092915050565b600060ff82169050919050565b6133ad81613397565b82525050565b60006020820190506133c860008301846133a4565b92915050565b6000602082840312156133e4576133e3613248565b5b60006133f284828501613296565b91505092915050565b6134048161326d565b82525050565b600060208201905061341f60008301846133fb565b92915050565b6000806040838503121561343c5761343b613248565b5b600061344a85828601613296565b925050602061345b85828601613296565b9150509250929050565b6000806040838503121561347c5761347b613248565b5b600061348a858286016132c2565b925050602061349b858286016132c2565b9150509250929050565b6134ae81613212565b81146134b957600080fd5b50565b6000813590506134cb816134a5565b92915050565b600080604083850312156134e8576134e7613248565b5b60006134f6858286016134bc565b9250506020613507858286016132c2565b9150509250929050565b600080600080600060a0868803121561352d5761352c613248565b5b600061353b88828901613296565b955050602061354c88828901613296565b945050604061355d88828901613296565b935050606061356e88828901613296565b925050608061357f88828901613296565b9150509295509295909350565b6000819050919050565b60006135b16135ac6135a78461324d565b61358c565b61324d565b9050919050565b60006135c382613596565b9050919050565b60006135d5826135b8565b9050919050565b6135e5816135ca565b82525050565b600060208201905061360060008301846135dc565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061363c60208361316b565b915061364782613606565b602082019050919050565b6000602082019050818103600083015261366b8161362f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006136ac8261312c565b91506136b78361312c565b92508282026136c58161312c565b915082820484148315176136dc576136db613672565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061371d8261312c565b91506137288361312c565b925082613738576137376136e3565b5b828204905092915050565b600081519050613752816132ab565b92915050565b60006020828403121561376e5761376d613248565b5b600061377c84828501613743565b91505092915050565b600060408201905061379a60008301856133fb565b6137a76020830184613136565b9392505050565b6000815190506137bd816134a5565b92915050565b6000602082840312156137d9576137d8613248565b5b60006137e7848285016137ae565b91505092915050565b60006040820190506138056000830185613136565b613812602083018461321e565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061387560268361316b565b915061388082613819565b604082019050919050565b600060208201905081810360008301526138a481613868565b9050919050565b60006080820190506138c060008301876133fb565b6138cd60208301866133fb565b6138da60408301856133fb565b6138e760608301846133fb565b95945050505050565b60006138fb8261312c565b91506139068361312c565b925082820390508181111561391e5761391d613672565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061395a60148361316b565b915061396582613924565b602082019050919050565b600060208201905081810360008301526139898161394d565b9050919050565b600061399b8261312c565b91506139a68361312c565b92508282019050808211156139be576139bd613672565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b6000613a20603e8361316b565b9150613a2b826139c4565b604082019050919050565b60006020820190508181036000830152613a4f81613a13565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ab260218361316b565b9150613abd82613a56565b604082019050919050565b60006020820190508181036000830152613ae181613aa5565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613b1e60118361316b565b9150613b2982613ae8565b602082019050919050565b60006020820190508181036000830152613b4d81613b11565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613bd7613bd2613bcd84613bb2565b61358c565b61312c565b9050919050565b613be781613bbc565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c228161326d565b82525050565b6000613c348383613c19565b60208301905092915050565b6000602082019050919050565b6000613c5882613bed565b613c628185613bf8565b9350613c6d83613c09565b8060005b83811015613c9e578151613c858882613c28565b9750613c9083613c40565b925050600181019050613c71565b5085935050505092915050565b600060a082019050613cc06000830188613136565b613ccd6020830187613bde565b8181036040830152613cdf8186613c4d565b9050613cee60608301856133fb565b613cfb6080830184613136565b9695505050505050565b600081905092915050565b50565b6000613d20600083613d05565b9150613d2b82613d10565b600082019050919050565b6000613d4182613d13565b9150819050919050565b600060c082019050613d6060008301896133fb565b613d6d6020830188613136565b613d7a6040830187613bde565b613d876060830186613bde565b613d9460808301856133fb565b613da160a0830184613136565b979650505050505050565b600080600060608486031215613dc557613dc4613248565b5b6000613dd386828701613743565b9350506020613de486828701613743565b9250506040613df586828701613743565b9150509250925092565b6000604082019050613e146000830185613136565b613e216020830184613136565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613e5e601b8361316b565b9150613e6982613e28565b602082019050919050565b60006020820190508181036000830152613e8d81613e51565b905091905056fea2646970667358221220c90c40184e416c22be2cf81a8d5522d13aff5d1b03045034f53ae3437bb1fa3c64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c806377b54bad1161010d578063b2bdfa7b116100a0578063f2fde38b1161006f578063f2fde38b14610728578063f3db32b114610751578063f42938901461077a578063f887ea4014610791578063fb201b1d146107bc576101f9565b8063b2bdfa7b1461065a578063dd62ed3e14610685578063ded1e438146106c2578063df20fd49146106ff576101f9565b80638da5cb5b116100dc5780638da5cb5b1461059c57806395d89b41146105c7578063a8b08982146105f2578063a9059cbb1461061d576101f9565b806377b54bad146104de57806378109e541461051b5780637d1db4a514610546578063893d20e814610571576101f9565b8063313ce567116101855780636ddd1713116101545780636ddd17131461044857806370a0823114610473578063715018a6146104b0578063751039fc146104c7576101f9565b8063313ce5671461038c57806355265669146103b7578063571ac8b0146103e25780635d83e1d51461041f576101f9565b806318160ddd116101c157806318160ddd146102bc5780631df4ccfc146102e757806323b872dd1461031257806330c9a6a01461034f576101f9565b80630445b667146101fe57806306fdde031461022957806308fd3d0514610254578063095ea7b31461027f576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b506102136107d3565b6040516102209190613145565b60405180910390f35b34801561023557600080fd5b5061023e6107d9565b60405161024b91906131f0565b60405180910390f35b34801561026057600080fd5b50610269610816565b604051610276919061322d565b60405180910390f35b34801561028b57600080fd5b506102a660048036038101906102a191906132d7565b610829565b6040516102b3919061322d565b60405180910390f35b3480156102c857600080fd5b506102d161091b565b6040516102de9190613145565b60405180910390f35b3480156102f357600080fd5b506102fc610925565b6040516103099190613145565b60405180910390f35b34801561031e57600080fd5b5061033960048036038101906103349190613317565b61092b565b604051610346919061322d565b60405180910390f35b34801561035b57600080fd5b506103766004803603810190610371919061336a565b610b2b565b6040516103839190613145565b60405180910390f35b34801561039857600080fd5b506103a1610b9d565b6040516103ae91906133b3565b60405180910390f35b3480156103c357600080fd5b506103cc610ba6565b6040516103d99190613145565b60405180910390f35b3480156103ee57600080fd5b50610409600480360381019061040491906133ce565b610be7565b604051610416919061322d565b60405180910390f35b34801561042b57600080fd5b506104466004803603810190610441919061336a565b610c1a565b005b34801561045457600080fd5b5061045d610d1a565b60405161046a919061322d565b60405180910390f35b34801561047f57600080fd5b5061049a600480360381019061049591906133ce565b610d2d565b6040516104a79190613145565b60405180910390f35b3480156104bc57600080fd5b506104c5610d76565b005b3480156104d357600080fd5b506104dc610ec9565b005b3480156104ea57600080fd5b50610505600480360381019061050091906132d7565b610f8a565b604051610512919061322d565b60405180910390f35b34801561052757600080fd5b506105306110f1565b60405161053d9190613145565b60405180910390f35b34801561055257600080fd5b5061055b6110f7565b6040516105689190613145565b60405180910390f35b34801561057d57600080fd5b506105866110fd565b604051610593919061340a565b60405180910390f35b3480156105a857600080fd5b506105b161110c565b6040516105be919061340a565b60405180910390f35b3480156105d357600080fd5b506105dc611135565b6040516105e991906131f0565b60405180910390f35b3480156105fe57600080fd5b50610607611172565b604051610614919061340a565b60405180910390f35b34801561062957600080fd5b50610644600480360381019061063f91906132d7565b611198565b604051610651919061322d565b60405180910390f35b34801561066657600080fd5b5061066f6111ad565b60405161067c919061340a565b60405180910390f35b34801561069157600080fd5b506106ac60048036038101906106a79190613425565b6111d1565b6040516106b99190613145565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190613465565b611258565b6040516106f6919061322d565b60405180910390f35b34801561070b57600080fd5b50610726600480360381019061072191906134d1565b61126d565b005b34801561073457600080fd5b5061074f600480360381019061074a91906133ce565b611371565b005b34801561075d57600080fd5b5061077860048036038101906107739190613511565b611532565b005b34801561078657600080fd5b5061078f6117d8565b005b34801561079d57600080fd5b506107a6611843565b6040516107b391906135eb565b60405180910390f35b3480156107c857600080fd5b506107d1611869565b005b60195481565b60606040518060400160405280600981526020017f417374726f436174580000000000000000000000000000000000000000000000815250905090565b601860009054906101000a900460ff1681565b600081601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109099190613145565b60405180910390a36001905092915050565b6000600554905090565b600d5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b1757610a96826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461191b9092919063ffffffff16565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b2284848461197f565b90509392505050565b6000610b96610b38610ba6565b610b88610b796002610b6b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d2d565b61208f90919063ffffffff16565b8561208f90919063ffffffff16565b61210990919063ffffffff16565b9050919050565b60006012905090565b6000610be2610bb56000610d2d565b610bd4610bc361dead610d2d565b60055461215390919063ffffffff16565b61215390919063ffffffff16565b905090565b6000610c13827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610829565b9050919050565b610c2261219d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca690613652565b60405180910390fd5b6001811015610cbd57600080fd5b6103e881600554610cce91906136a1565b610cd89190613712565b6007819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600754604051610d0f9190613145565b60405180910390a150565b601860019054906101000a900460ff1681565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d7e61219d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290613652565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ed161219d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5590613652565b60405180910390fd5b6d314dc6448d9338c15b0a000000006006819055506d314dc6448d9338c15b0a00000000600781905550565b6000808203611010578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fcc919061340a565b602060405180830381865afa158015610fe9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100d9190613758565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051611041929190613785565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016110a6929190613785565b6020604051808303816000875af11580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e991906137c3565b905092915050565b60075481565b60065481565b600061110761110c565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4143580000000000000000000000000000000000000000000000000000000000815250905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006111a533848461197f565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008261126483610b2b565b11905092915050565b61127561219d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f990613652565b60405180910390fd5b81601860016101000a81548160ff021916908315150217905550806019819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601954601860019054906101000a900460ff166040516113659291906137f0565b60405180910390a15050565b61137961219d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fd90613652565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146c9061388b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61153a61219d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90613652565b60405180910390fd5b84601a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b15601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516117c994939291906138ab565b60405180910390a15050505050565b601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611840573d6000803e3d6000fd5b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61187161219d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f590613652565b60405180910390fd5b6001601860006101000a81548160ff021916908315150217905550565b6000838311158290611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195a91906131f0565b60405180910390fd5b506000838561197291906138f0565b9050809150509392505050565b6000601a60009054906101000a900460ff16156119a8576119a18484846121a5565b9050612088565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a4c5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611aa157601860009054906101000a900460ff16611aa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9790613970565b60405180910390fd5b5b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b425750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b5957611b528484846121a5565b9050612088565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bdf57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c19575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c735750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ccd5750601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d275750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d7d5750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611de1576000611d8d84610d2d565b90506007548382611d9e9190613990565b1115611ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd690613a36565b60405180910390fd5b505b611deb848361239f565b611df361243c565b15611e0157611e00612513565b5b611e8a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461191b9092919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f705750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611f8457611f7f858486612b3a565b611f86565b825b9050611fda81600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f4590919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161207a9190613145565b60405180910390a360019150505b9392505050565b60008083036120a15760009050612103565b600082846120af91906136a1565b90508284826120be9190613712565b146120fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f590613ac8565b60405180910390fd5b809150505b92915050565b600061214b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fa3565b905092915050565b600061219583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061191b565b905092915050565b600033905090565b6000806121b28585613006565b6121bc57826121cb565b600854836121ca91906136a1565b5b9050612256816040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461191b9092919063ffffffff16565b600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122eb83600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f4590919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161238b9190613145565b60405180910390a360019150509392505050565b600654811115806123f95750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612438576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242f90613b34565b60405180910390fd5b5050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156124a95750601a60009054906101000a900460ff16155b80156124c15750601860019054906101000a900460ff165b801561250e5750601954600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601a60006101000a81548160ff021916908315150217905550600061253e601654601754611258565b61254a5760085461254d565b60005b9050600061258d600261257f600d546125718660195461208f90919063ffffffff16565b61210990919063ffffffff16565b61210990919063ffffffff16565b905060006125a68260195461215390919063ffffffff16565b90506000600267ffffffffffffffff8111156125c5576125c4613b54565b5b6040519080825280602002602001820160405280156125f35781602001602082028036833780820191505090505b509050308160008151811061260b5761260a613b83565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061267c5761267b613b83565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161271f959493929190613cab565b600060405180830381600087803b15801561273957600080fd5b505af115801561274d573d6000803e3d6000fd5b505050506000612766824761215390919063ffffffff16565b9050600061279261278160028961210990919063ffffffff16565b600d5461215390919063ffffffff16565b905060006127ce60026127c0846127b28c8861208f90919063ffffffff16565b61210990919063ffffffff16565b61210990919063ffffffff16565b905060006127f9836127eb6009548761208f90919063ffffffff16565b61210990919063ffffffff16565b9050600061282484612816600b548861208f90919063ffffffff16565b61210990919063ffffffff16565b9050600061284f85612841600a548961208f90919063ffffffff16565b61210990919063ffffffff16565b90506000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168460405161289990613d36565b60006040518083038185875af1925050503d80600081146128d6576040519150601f19603f3d011682016040523d82523d6000602084013e6128db565b606091505b50509050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161292590613d36565b60006040518083038185875af1925050503d8060008114612962576040519150601f19603f3d011682016040523d82523d6000602084013e612967565b606091505b505080915050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516129b390613d36565b60006040518083038185875af1925050503d80600081146129f0576040519150601f19603f3d011682016040523d82523d6000602084013e6129f5565b606091505b5050809150506000905060008b1115612b1157600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612a9196959493929190613d4b565b60606040518083038185885af1158015612aaf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ad49190613dac565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612b08929190613dff565b60405180910390a15b5050505050505050505050506000601a60006101000a81548160ff021916908315150217905550565b60008060155490506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612bdb57612bc4601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d2d565b81612bcf91906138f0565b90506013549150612c37565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612c365760145491505b5b6000612c806064601254612c4b91906136a1565b612c7285612c64600d548b61208f90919063ffffffff16565b61208f90919063ffffffff16565b61210990919063ffffffff16565b90506000612cad600d54612c9f600c548561208f90919063ffffffff16565b61210990919063ffffffff16565b90506000612cc4828461215390919063ffffffff16565b9050612d1881600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f4590919063ffffffff16565b600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dcf82600e6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f4590919063ffffffff16565b600e6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e919190613145565b60405180910390a36000821115612f2457612eb78260055461215390919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f1b9190613145565b60405180910390a35b612f37838961215390919063ffffffff16565b955050505050509392505050565b6000808284612f549190613990565b905083811015612f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f9090613e74565b60405180910390fd5b8091505092915050565b60008083118290612fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fe191906131f0565b60405180910390fd5b5060008385612ff99190613712565b9050809150509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156130b25750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156130eb5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156131245750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b6000819050919050565b61313f8161312c565b82525050565b600060208201905061315a6000830184613136565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561319a57808201518184015260208101905061317f565b60008484015250505050565b6000601f19601f8301169050919050565b60006131c282613160565b6131cc818561316b565b93506131dc81856020860161317c565b6131e5816131a6565b840191505092915050565b6000602082019050818103600083015261320a81846131b7565b905092915050565b60008115159050919050565b61322781613212565b82525050565b6000602082019050613242600083018461321e565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132788261324d565b9050919050565b6132888161326d565b811461329357600080fd5b50565b6000813590506132a58161327f565b92915050565b6132b48161312c565b81146132bf57600080fd5b50565b6000813590506132d1816132ab565b92915050565b600080604083850312156132ee576132ed613248565b5b60006132fc85828601613296565b925050602061330d858286016132c2565b9150509250929050565b6000806000606084860312156133305761332f613248565b5b600061333e86828701613296565b935050602061334f86828701613296565b9250506040613360868287016132c2565b9150509250925092565b6000602082840312156133805761337f613248565b5b600061338e848285016132c2565b91505092915050565b600060ff82169050919050565b6133ad81613397565b82525050565b60006020820190506133c860008301846133a4565b92915050565b6000602082840312156133e4576133e3613248565b5b60006133f284828501613296565b91505092915050565b6134048161326d565b82525050565b600060208201905061341f60008301846133fb565b92915050565b6000806040838503121561343c5761343b613248565b5b600061344a85828601613296565b925050602061345b85828601613296565b9150509250929050565b6000806040838503121561347c5761347b613248565b5b600061348a858286016132c2565b925050602061349b858286016132c2565b9150509250929050565b6134ae81613212565b81146134b957600080fd5b50565b6000813590506134cb816134a5565b92915050565b600080604083850312156134e8576134e7613248565b5b60006134f6858286016134bc565b9250506020613507858286016132c2565b9150509250929050565b600080600080600060a0868803121561352d5761352c613248565b5b600061353b88828901613296565b955050602061354c88828901613296565b945050604061355d88828901613296565b935050606061356e88828901613296565b925050608061357f88828901613296565b9150509295509295909350565b6000819050919050565b60006135b16135ac6135a78461324d565b61358c565b61324d565b9050919050565b60006135c382613596565b9050919050565b60006135d5826135b8565b9050919050565b6135e5816135ca565b82525050565b600060208201905061360060008301846135dc565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061363c60208361316b565b915061364782613606565b602082019050919050565b6000602082019050818103600083015261366b8161362f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006136ac8261312c565b91506136b78361312c565b92508282026136c58161312c565b915082820484148315176136dc576136db613672565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061371d8261312c565b91506137288361312c565b925082613738576137376136e3565b5b828204905092915050565b600081519050613752816132ab565b92915050565b60006020828403121561376e5761376d613248565b5b600061377c84828501613743565b91505092915050565b600060408201905061379a60008301856133fb565b6137a76020830184613136565b9392505050565b6000815190506137bd816134a5565b92915050565b6000602082840312156137d9576137d8613248565b5b60006137e7848285016137ae565b91505092915050565b60006040820190506138056000830185613136565b613812602083018461321e565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061387560268361316b565b915061388082613819565b604082019050919050565b600060208201905081810360008301526138a481613868565b9050919050565b60006080820190506138c060008301876133fb565b6138cd60208301866133fb565b6138da60408301856133fb565b6138e760608301846133fb565b95945050505050565b60006138fb8261312c565b91506139068361312c565b925082820390508181111561391e5761391d613672565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061395a60148361316b565b915061396582613924565b602082019050919050565b600060208201905081810360008301526139898161394d565b9050919050565b600061399b8261312c565b91506139a68361312c565b92508282019050808211156139be576139bd613672565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b6000613a20603e8361316b565b9150613a2b826139c4565b604082019050919050565b60006020820190508181036000830152613a4f81613a13565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ab260218361316b565b9150613abd82613a56565b604082019050919050565b60006020820190508181036000830152613ae181613aa5565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613b1e60118361316b565b9150613b2982613ae8565b602082019050919050565b60006020820190508181036000830152613b4d81613b11565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613bd7613bd2613bcd84613bb2565b61358c565b61312c565b9050919050565b613be781613bbc565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c228161326d565b82525050565b6000613c348383613c19565b60208301905092915050565b6000602082019050919050565b6000613c5882613bed565b613c628185613bf8565b9350613c6d83613c09565b8060005b83811015613c9e578151613c858882613c28565b9750613c9083613c40565b925050600181019050613c71565b5085935050505092915050565b600060a082019050613cc06000830188613136565b613ccd6020830187613bde565b8181036040830152613cdf8186613c4d565b9050613cee60608301856133fb565b613cfb6080830184613136565b9695505050505050565b600081905092915050565b50565b6000613d20600083613d05565b9150613d2b82613d10565b600082019050919050565b6000613d4182613d13565b9150819050919050565b600060c082019050613d6060008301896133fb565b613d6d6020830188613136565b613d7a6040830187613bde565b613d876060830186613bde565b613d9460808301856133fb565b613da160a0830184613136565b979650505050505050565b600080600060608486031215613dc557613dc4613248565b5b6000613dd386828701613743565b9350506020613de486828701613743565b9250506040613df586828701613743565b9150509250925092565b6000604082019050613e146000830185613136565b613e216020830184613136565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613e5e601b8361316b565b9150613e6982613e28565b602082019050919050565b60006020820190508181036000830152613e8d81613e51565b905091905056fea2646970667358221220c90c40184e416c22be2cf81a8d5522d13aff5d1b03045034f53ae3437bb1fa3c64736f6c63430008130033

Deployed Bytecode Sourcemap

5146:12899:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6678:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9232:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6603:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9450:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8888:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6069:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9674:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17523:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8628:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17691:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9320:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10337:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6641:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8982:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2060:148;;;;;;;;;;;;;:::i;:::-;;10052:113;;;;;;;;;;;;;:::i;:::-;;14299:338;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5758:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5691:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8804:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1846:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8714:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5248:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10173:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1466:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9093:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17380:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17831:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2216:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16831:541;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14178:113;;;;;;;;;;;;;:::i;:::-;;5217:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14645:75;;;;;;;;;;;;;:::i;:::-;;6678:54;;;;:::o;9232:80::-;9280:13;9304:5;;;;;;;;;;;;;;;;;9297:12;;9232:80;:::o;6603:31::-;;;;;;;;;;;;;:::o;9450:216::-;9525:4;9577:6;9542:11;:23;9554:10;9542:23;;;;;;;;;;;;;;;:32;9566:7;9542:32;;;;;;;;;;;;;;;:41;;;;9620:7;9599:37;;9608:10;9599:37;;;9629:6;9599:37;;;;;;:::i;:::-;;;;;;;;9654:4;9647:11;;9450:216;;;;:::o;8888:88::-;8943:7;8961:12;;8954:19;;8888:88;:::o;6069:96::-;;;;:::o;9674:370::-;9774:4;9829:17;9794:11;:19;9806:6;9794:19;;;;;;;;;;;;;;;:31;9814:10;9794:31;;;;;;;;;;;;;;;;:52;9791:186;;9896:69;9932:6;9896:69;;;;;;;;;;;;;;;;;:11;:19;9908:6;9896:19;;;;;;;;;;;;;;;:31;9916:10;9896:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9862:11;:19;9874:6;9862:19;;;;;;;;;;;;;;;:31;9882:10;9862:31;;;;;;;;;;;;;;;:103;;;;9791:186;9996:40;10010:6;10018:9;10029:6;9996:13;:40::i;:::-;9989:47;;9674:370;;;;;:::o;17523:156::-;17583:7;17610:61;17658:12;:10;:12::i;:::-;17610:43;17623:29;17650:1;17623:22;17633:11;;;;;;;;;;;17623:9;:22::i;:::-;:26;;:29;;;;:::i;:::-;17610:8;:12;;:43;;;;:::i;:::-;:47;;:61;;;;:::i;:::-;17603:68;;17523:156;;;:::o;8628:80::-;8680:5;5446:2;8689:16;;8628:80;:::o;17691:132::-;17734:7;17761:54;17799:15;5573:42;17799:9;:15::i;:::-;17761:33;17778:15;5500:42;17778:9;:15::i;:::-;17761:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;17754:61;;17691:132;:::o;9320:122::-;9375:4;9399:35;9407:7;9416:17;9399:7;:35::i;:::-;9392:42;;9320:122;;;:::o;10337:229::-;1983:12;:10;:12::i;:::-;1973:22;;:6;;;;;;;;;;:22;;;1965:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10441:1:::1;10423:14;:19;;10415:28;;;::::0;::::1;;10508:4;10489:14;10474:12;;:29;;;;:::i;:::-;10473:39;;;;:::i;:::-;10455:15;:57;;;;10528:30;10542:15;;10528:30;;;;;;:::i;:::-;;;;;;;;10337:229:::0;:::o;6641:30::-;;;;;;;;;;;;;:::o;8982:105::-;9048:7;9066:9;:18;9076:7;9066:18;;;;;;;;;;;;;;;;9059:25;;8982:105;;;:::o;2060:148::-;1983:12;:10;:12::i;:::-;1973:22;;:6;;;;;;;;;;:22;;;1965:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2167:1:::1;2130:40;;2151:6;::::0;::::1;;;;;;;;2130:40;;;;;;;;;;;;2198:1;2181:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2060:148::o:0;10052:113::-;1983:12;:10;:12::i;:::-;1973:22;;:6;;;;;;;;;;:22;;;1965:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5314:4:::1;10107:12;:18;;;;5314:4;10136:15;:21;;;;10052:113::o:0;14299:338::-;14380:12;14423:1;14413:6;:11;14410:95;;14455:12;14449:29;;;14487:4;14449:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14440:53;;14410:95;14520:32;14531:12;14545:6;14520:32;;;;;;;:::i;:::-;;;;;;;;14576:12;14570:28;;;14599:21;;;;;;;;;;;14622:6;14570:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14563:66;;14299:338;;;;:::o;5758:63::-;;;;:::o;5691:60::-;;;;:::o;8804:78::-;8856:7;8873;:5;:7::i;:::-;8866:14;;8804:78;:::o;1846:79::-;1884:7;1911:6;;;;;;;;;;;1904:13;;1846:79;:::o;8714:84::-;8764:13;8788:7;;;;;;;;;;;;;;;;;8781:14;;8714:84;:::o;5248:26::-;;;;;;;;;;;;;:::o;10173:156::-;10253:4;10277:44;10291:10;10303:9;10314:6;10277:13;:44::i;:::-;10270:51;;10173:156;;;;:::o;1466:21::-;;;;;;;;;;;;:::o;9093:133::-;9177:7;9195:11;:19;9207:6;9195:19;;;;;;;;;;;;;;;:28;9215:7;9195:28;;;;;;;;;;;;;;;;9188:35;;9093:133;;;;:::o;17380:135::-;17454:4;17502:5;17478:21;17490:8;17478:11;:21::i;:::-;:29;17471:36;;17380:135;;;;:::o;17831:211::-;1983:12;:10;:12::i;:::-;1973:22;;:6;;;;;;;;;;:22;;;1965:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17936:8:::1;17922:11;;:22;;;;;;;;;;;;;;;;;;17971:7;17955:13;:23;;;;17994:40;18007:13;;18022:11;;;;;;;;;;;17994:40;;;;;;;:::i;:::-;;;;;;;;17831:211:::0;;:::o;2216:244::-;1983:12;:10;:12::i;:::-;1973:22;;:6;;;;;;;;;;:22;;;1965:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2325:1:::1;2305:22;;:8;:22;;::::0;2297:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2415:8;2386:38;;2407:6;::::0;::::1;;;;;;;;2386:38;;;;;;;;;;;;2444:8;2435:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2216:244:::0;:::o;16831:541::-;1983:12;:10;:12::i;:::-;1973:22;;:6;;;;;;;;;;:22;;;1965:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17052:22:::1;17028:21;;:46;;;;;;;;;;;;;;;;;;17103:21;17085:15;;:39;;;;;;;;;;;;;;;;;;17152:15;17135:14;;:32;;;;;;;;;;;;;;;;;;17196:16;17178:15;;:34;;;;;;;;;;;;;;;;;;17244:19;17223:18;;:40;;;;;;;;;;;;;;;;;;17281:83;17295:15;;;;;;;;;;;17312:18;;;;;;;;;;;17332:15;;;;;;;;;;;17349:14;;;;;;;;;;;17281:83;;;;;;;;;:::i;:::-;;;;;;;;16831:541:::0;;;;;:::o;14178:113::-;14229:21;;;;;;;;;;;14221:39;;:62;14261:21;14221:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14178:113::o;5217:24::-;;;;;;;;;;;;;:::o;14645:75::-;1983:12;:10;:12::i;:::-;1973:22;;:6;;;;;;;;;;:22;;;1965:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14708:4:::1;14694:11;;:18;;;;;;;;;;;;;;;;;;14645:75::o:0;4216:192::-;4302:7;4335:1;4330;:6;;4338:12;4322:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4362:9;4378:1;4374;:5;;;;:::i;:::-;4362:17;;4399:1;4392:8;;;4216:192;;;;;:::o;10574:1367::-;10666:4;10686:6;;;;;;;;;;;10683:63;;;10702:41;10717:6;10725:9;10736:6;10702:14;:41::i;:::-;10695:48;;;;10683:63;10762:14;:22;10777:6;10762:22;;;;;;;;;;;;;;;;;;;;;;;;;10761:23;:53;;;;;10789:14;:25;10804:9;10789:25;;;;;;;;;;;;;;;;;;;;;;;;;10788:26;10761:53;10758:127;;;10838:11;;;;;;;;;;;10830:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10758:127;10900:16;:24;10917:6;10900:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;10928:16;:27;10945:9;10928:27;;;;;;;;;;;;;;;;;;;;;;;;;10900:55;10897:135;;;10979:41;10994:6;11002:9;11013:6;10979:14;:41::i;:::-;10972:48;;;;10897:135;11049:14;:22;11064:6;11049:22;;;;;;;;;;;;;;;;;;;;;;;;;11048:23;:53;;;;;11096:4;11075:26;;:9;:26;;;;11048:53;:84;;;;;5500:42;11106:26;;:9;:26;;;;11048:84;:112;;;;;11149:11;;;;;;;;;;;11136:24;;:9;:24;;;;11048:112;:144;;;;;11177:15;;;;;;;;;;;11164:28;;:9;:28;;;;11048:144;:176;;;;;11209:15;;;;;;;;;;;11196:28;;:9;:28;;;;11048:176;:209;;;;;11229:17;:28;11247:9;11229:28;;;;;;;;;;;;;;;;;;;;;;;;;11228:29;11048:209;11044:411;;;11273:18;11294:20;11304:9;11294;:20::i;:::-;11273:41;;11362:15;;11351:6;11338:10;:19;;;;:::i;:::-;11337:40;;11329:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;11258:197;11044:411;11467:31;11483:6;11491;11467:15;:31::i;:::-;11514:16;:14;:16::i;:::-;11511:35;;;11533:10;:8;:10::i;:::-;11511:35;11576:53;11598:6;11576:53;;;;;;;;;;;;;;;;;:9;:17;11586:6;11576:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11556:9;:17;11566:6;11556:17;;;;;;;;;;;;;;;:73;;;;11642:22;11668:16;:24;11685:6;11668:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;11696:16;:27;11713:9;11696:27;;;;;;;;;;;;;;;;;;;;;;;;;11668:55;11667:109;;11736:40;11750:6;11758;11766:9;11736:13;:40::i;:::-;11667:109;;;11727:6;11667:109;11642:134;;11810:40;11835:14;11810:9;:20;11820:9;11810:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11787:9;:20;11797:9;11787:20;;;;;;;;;;;;;;;:63;;;;11885:9;11868:43;;11877:6;11868:43;;;11896:14;11868:43;;;;;;:::i;:::-;;;;;;;;11929:4;11922:11;;;10574:1367;;;;;;:::o;4414:250::-;4472:7;4501:1;4496;:6;4492:47;;4526:1;4519:8;;;;4492:47;4551:9;4567:1;4563;:5;;;;:::i;:::-;4551:17;;4596:1;4591;4587;:5;;;;:::i;:::-;:10;4579:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4655:1;4648:8;;;4414:250;;;;;:::o;5007:132::-;5065:7;5092:39;5096:1;5099;5092:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5085:46;;5007:132;;;;:::o;4670:136::-;4728:7;4755:43;4759:1;4762;4755:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4748:50;;4670:136;;;;:::o;1187:115::-;1240:15;1283:10;1268:26;;1187:115;:::o;11949:423::-;12042:4;12049:17;12069:33;12084:6;12092:9;12069:14;:33::i;:::-;:69;;12132:6;12069:69;;;12114:15;;12105:6;:24;;;;:::i;:::-;12069:69;12049:89;;12169:56;12191:9;12169:56;;;;;;;;;;;;;;;;;:9;:17;12179:6;12169:17;;;;;;;;;;;;;;;;:21;;:56;;;;;:::i;:::-;12149:9;:17;12159:6;12149:17;;;;;;;;;;;;;;;:76;;;;12259:32;12284:6;12259:9;:20;12269:9;12259:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12236:9;:20;12246:9;12236:20;;;;;;;;;;;;;;;:55;;;;12324:9;12307:35;;12316:6;12307:35;;;12335:6;12307:35;;;;;;:::i;:::-;;;;;;;;12360:4;12353:11;;;11949:423;;;;;:::o;12380:171::-;12480:12;;12470:6;:22;;:51;;;;12496:17;:25;12514:6;12496:25;;;;;;;;;;;;;;;;;;;;;;;;;12470:51;12462:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;12380:171;;:::o;13741:204::-;13790:4;13828:11;;;;;;;;;;;13814:25;;:10;:25;;;;:45;;;;;13853:6;;;;;;;;;;;13852:7;13814:45;:69;;;;;13872:11;;;;;;;;;;;13814:69;:123;;;;;13924:13;;13896:9;:24;13914:4;13896:24;;;;;;;;;;;;;;;;:41;;13814:123;13807:130;;13741:204;:::o;14728:1852::-;6789:4;6780:6;;:13;;;;;;;;;;;;;;;;;;14777:27:::1;14807:41;14818:8;;14828:19;;14807:10;:41::i;:::-;:63;;14855:15;;14807:63;;;14851:1;14807:63;14777:93;;14881:23;14907:59;14964:1;14907:52;14950:8;;14907:38;14925:19;14907:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;14881:85;;14977:20;15000:34;15018:15;15000:13;;:17;;:34;;;;:::i;:::-;14977:57;;15047:21;15085:1;15071:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15047:40;;15116:4;15098;15103:1;15098:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15142:4;;;;;;;;;;;15132;15137:1;15132:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;15159:21;15183;15159:45;;15217:6;;;;;;;;;;;:57;;;15289:12;15316:1;15332:4;15359;15379:15;15217:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15418:17;15438:40;15464:13;15438:21;:25;;:40;;;;:::i;:::-;15418:60;;15491:19;15513:40;15526:26;15550:1;15526:19;:23;;:26;;;;:::i;:::-;15513:8;;:12;;:40;;;;:::i;:::-;15491:62;;15574:26;15603:58;15659:1;15603:51;15642:11;15603:34;15617:19;15603:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;15574:87;;15672:26;15701:44;15733:11;15701:27;15715:12;;15701:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;15672:73;;15756:24;15783:42;15813:11;15783:25;15797:10;;15783:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;15756:69;;15836:20;15859:38;15885:11;15859:21;15873:6;;15859:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;15836:61;;15911:15;15939;;;;;;;;;;;15931:29;;15968:18;15931:60;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15910:81;;;16026:14;;;;;;;;;;;16018:28;;16054:12;16018:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16002:69;;;;;16106:18;;;;;;;;;;;16098:32;;16138:16;16098:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16082:77;;;;;16193:5;16180:18;;16232:1;16214:15;:19;16211:362;;;16249:6;;;;;;;;;;;:22;;;16279:18;16325:4;16349:15;16383:1;16403::::0;16423:21:::1;;;;;;;;;;;16463:15;16249:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16513:48;16525:18;16545:15;16513:48;;;;;;;:::i;:::-;;;;;;;;16211:362;14766:1814;;;;;;;;;;;;6807:5:::0;6798:6;;:14;;;;;;;;;;;;;;;;;;14728:1852::o;12686:1047::-;12778:7;12798:15;12816;;12798:33;;12842:22;12895:11;;;;;;;;;;;12882:24;;:9;:24;;;12879:202;;12927:26;12937:15;;;;;;;;;;;12927:9;:26::i;:::-;12909:44;;;;;:::i;:::-;;;12978:11;;12968:21;;12879:202;;;13021:11;;;;;;;;;;;13011:21;;:6;:21;;;13008:73;;13059:10;;13049:20;;13008:73;12879:202;13091:17;13111:53;13160:3;13149:8;;:14;;;;:::i;:::-;13111:33;13136:7;13111:20;13122:8;;13111:6;:10;;:20;;;;:::i;:::-;:24;;:33;;;;:::i;:::-;:37;;:53;;;;:::i;:::-;13091:73;;13175:18;13196:36;13223:8;;13196:22;13210:7;;13196:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;13175:57;;13243:22;13268:25;13282:10;13268:9;:13;;:25;;;;:::i;:::-;13243:50;;13331:44;13360:14;13331:9;:24;13349:4;13331:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;13304:9;:24;13322:4;13304:24;;;;;;;;;;;;;;;:71;;;;13415:42;13446:10;13415:9;:26;13425:15;;;;;;;;;;;13415:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;13386:9;:26;13396:15;;;;;;;;;;;13386:26;;;;;;;;;;;;;;;:71;;;;13498:4;13473:47;;13482:6;13473:47;;;13505:14;13473:47;;;;;;:::i;:::-;;;;;;;;13557:1;13544:10;:14;13541:144;;;13589:28;13606:10;13589:12;;:16;;:28;;;;:::i;:::-;13574:12;:43;;;;5573:42;13637:34;;13646:6;13637:34;;;13660:10;13637:34;;;;;;:::i;:::-;;;;;;;;13541:144;13704:21;13715:9;13704:6;:10;;:21;;;;:::i;:::-;13697:28;;;;;;;12686:1047;;;;;:::o;4027:181::-;4085:7;4105:9;4121:1;4117;:5;;;;:::i;:::-;4105:17;;4146:1;4141;:6;;4133:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4199:1;4192:8;;;4027:181;;;;:::o;4812:189::-;4898:7;4930:1;4926;:5;4933:12;4918:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4957:9;4973:1;4969;:5;;;;:::i;:::-;4957:17;;4992:1;4985:8;;;4812:189;;;;;:::o;13953:217::-;14035:4;14072:11;;;;;;;;;;;14059:24;;:9;:24;;;:53;;;;;14097:15;;;;;;;;;;;14087:25;;:6;:25;;;14059:53;:77;;;;;14134:1;14116:20;;:6;:20;;;;14059:77;:103;;;;;14160:1;14140:22;;:9;:22;;;;14059:103;14052:110;;13953:217;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:90::-;1818:7;1861:5;1854:13;1847:21;1836:32;;1784:90;;;:::o;1880:109::-;1961:21;1976:5;1961:21;:::i;:::-;1956:3;1949:34;1880:109;;:::o;1995:210::-;2082:4;2120:2;2109:9;2105:18;2097:26;;2133:65;2195:1;2184:9;2180:17;2171:6;2133:65;:::i;:::-;1995:210;;;;:::o;2292:117::-;2401:1;2398;2391:12;2538:126;2575:7;2615:42;2608:5;2604:54;2593:65;;2538:126;;;:::o;2670:96::-;2707:7;2736:24;2754:5;2736:24;:::i;:::-;2725:35;;2670:96;;;:::o;2772:122::-;2845:24;2863:5;2845:24;:::i;:::-;2838:5;2835:35;2825:63;;2884:1;2881;2874:12;2825:63;2772:122;:::o;2900:139::-;2946:5;2984:6;2971:20;2962:29;;3000:33;3027:5;3000:33;:::i;:::-;2900:139;;;;:::o;3045:122::-;3118:24;3136:5;3118:24;:::i;:::-;3111:5;3108:35;3098:63;;3157:1;3154;3147:12;3098:63;3045:122;:::o;3173:139::-;3219:5;3257:6;3244:20;3235:29;;3273:33;3300:5;3273:33;:::i;:::-;3173:139;;;;:::o;3318:474::-;3386:6;3394;3443:2;3431:9;3422:7;3418:23;3414:32;3411:119;;;3449:79;;:::i;:::-;3411:119;3569:1;3594:53;3639:7;3630:6;3619:9;3615:22;3594:53;:::i;:::-;3584:63;;3540:117;3696:2;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3667:118;3318:474;;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:::-;6423:6;6431;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6733:2;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6704:118;6355:474;;;;;:::o;6835:116::-;6905:21;6920:5;6905:21;:::i;:::-;6898:5;6895:32;6885:60;;6941:1;6938;6931:12;6885:60;6835:116;:::o;6957:133::-;7000:5;7038:6;7025:20;7016:29;;7054:30;7078:5;7054:30;:::i;:::-;6957:133;;;;:::o;7096:468::-;7161:6;7169;7218:2;7206:9;7197:7;7193:23;7189:32;7186:119;;;7224:79;;:::i;:::-;7186:119;7344:1;7369:50;7411:7;7402:6;7391:9;7387:22;7369:50;:::i;:::-;7359:60;;7315:114;7468:2;7494:53;7539:7;7530:6;7519:9;7515:22;7494:53;:::i;:::-;7484:63;;7439:118;7096:468;;;;;:::o;7570:911::-;7665:6;7673;7681;7689;7697;7746:3;7734:9;7725:7;7721:23;7717:33;7714:120;;;7753:79;;:::i;:::-;7714:120;7873:1;7898:53;7943:7;7934:6;7923:9;7919:22;7898:53;:::i;:::-;7888:63;;7844:117;8000:2;8026:53;8071:7;8062:6;8051:9;8047:22;8026:53;:::i;:::-;8016:63;;7971:118;8128:2;8154:53;8199:7;8190:6;8179:9;8175:22;8154:53;:::i;:::-;8144:63;;8099:118;8256:2;8282:53;8327:7;8318:6;8307:9;8303:22;8282:53;:::i;:::-;8272:63;;8227:118;8384:3;8411:53;8456:7;8447:6;8436:9;8432:22;8411:53;:::i;:::-;8401:63;;8355:119;7570:911;;;;;;;;:::o;8487:60::-;8515:3;8536:5;8529:12;;8487:60;;;:::o;8553:142::-;8603:9;8636:53;8654:34;8663:24;8681:5;8663:24;:::i;:::-;8654:34;:::i;:::-;8636:53;:::i;:::-;8623:66;;8553:142;;;:::o;8701:126::-;8751:9;8784:37;8815:5;8784:37;:::i;:::-;8771:50;;8701:126;;;:::o;8833:144::-;8901:9;8934:37;8965:5;8934:37;:::i;:::-;8921:50;;8833:144;;;:::o;8983:167::-;9088:55;9137:5;9088:55;:::i;:::-;9083:3;9076:68;8983:167;;:::o;9156:258::-;9267:4;9305:2;9294:9;9290:18;9282:26;;9318:89;9404:1;9393:9;9389:17;9380:6;9318:89;:::i;:::-;9156:258;;;;:::o;9420:182::-;9560:34;9556:1;9548:6;9544:14;9537:58;9420:182;:::o;9608:366::-;9750:3;9771:67;9835:2;9830:3;9771:67;:::i;:::-;9764:74;;9847:93;9936:3;9847:93;:::i;:::-;9965:2;9960:3;9956:12;9949:19;;9608:366;;;:::o;9980:419::-;10146:4;10184:2;10173:9;10169:18;10161:26;;10233:9;10227:4;10223:20;10219:1;10208:9;10204:17;10197:47;10261:131;10387:4;10261:131;:::i;:::-;10253:139;;9980:419;;;:::o;10405:180::-;10453:77;10450:1;10443:88;10550:4;10547:1;10540:15;10574:4;10571:1;10564:15;10591:410;10631:7;10654:20;10672:1;10654:20;:::i;:::-;10649:25;;10688:20;10706:1;10688:20;:::i;:::-;10683:25;;10743:1;10740;10736:9;10765:30;10783:11;10765:30;:::i;:::-;10754:41;;10944:1;10935:7;10931:15;10928:1;10925:22;10905:1;10898:9;10878:83;10855:139;;10974:18;;:::i;:::-;10855:139;10639:362;10591:410;;;;:::o;11007:180::-;11055:77;11052:1;11045:88;11152:4;11149:1;11142:15;11176:4;11173:1;11166:15;11193:185;11233:1;11250:20;11268:1;11250:20;:::i;:::-;11245:25;;11284:20;11302:1;11284:20;:::i;:::-;11279:25;;11323:1;11313:35;;11328:18;;:::i;:::-;11313:35;11370:1;11367;11363:9;11358:14;;11193:185;;;;:::o;11384:143::-;11441:5;11472:6;11466:13;11457:22;;11488:33;11515:5;11488:33;:::i;:::-;11384:143;;;;:::o;11533:351::-;11603:6;11652:2;11640:9;11631:7;11627:23;11623:32;11620:119;;;11658:79;;:::i;:::-;11620:119;11778:1;11803:64;11859:7;11850:6;11839:9;11835:22;11803:64;:::i;:::-;11793:74;;11749:128;11533:351;;;;:::o;11890:332::-;12011:4;12049:2;12038:9;12034:18;12026:26;;12062:71;12130:1;12119:9;12115:17;12106:6;12062:71;:::i;:::-;12143:72;12211:2;12200:9;12196:18;12187:6;12143:72;:::i;:::-;11890:332;;;;;:::o;12228:137::-;12282:5;12313:6;12307:13;12298:22;;12329:30;12353:5;12329:30;:::i;:::-;12228:137;;;;:::o;12371:345::-;12438:6;12487:2;12475:9;12466:7;12462:23;12458:32;12455:119;;;12493:79;;:::i;:::-;12455:119;12613:1;12638:61;12691:7;12682:6;12671:9;12667:22;12638:61;:::i;:::-;12628:71;;12584:125;12371:345;;;;:::o;12722:320::-;12837:4;12875:2;12864:9;12860:18;12852:26;;12888:71;12956:1;12945:9;12941:17;12932:6;12888:71;:::i;:::-;12969:66;13031:2;13020:9;13016:18;13007:6;12969:66;:::i;:::-;12722:320;;;;;:::o;13048:225::-;13188:34;13184:1;13176:6;13172:14;13165:58;13257:8;13252:2;13244:6;13240:15;13233:33;13048:225;:::o;13279:366::-;13421:3;13442:67;13506:2;13501:3;13442:67;:::i;:::-;13435:74;;13518:93;13607:3;13518:93;:::i;:::-;13636:2;13631:3;13627:12;13620:19;;13279:366;;;:::o;13651:419::-;13817:4;13855:2;13844:9;13840:18;13832:26;;13904:9;13898:4;13894:20;13890:1;13879:9;13875:17;13868:47;13932:131;14058:4;13932:131;:::i;:::-;13924:139;;13651:419;;;:::o;14076:553::-;14253:4;14291:3;14280:9;14276:19;14268:27;;14305:71;14373:1;14362:9;14358:17;14349:6;14305:71;:::i;:::-;14386:72;14454:2;14443:9;14439:18;14430:6;14386:72;:::i;:::-;14468;14536:2;14525:9;14521:18;14512:6;14468:72;:::i;:::-;14550;14618:2;14607:9;14603:18;14594:6;14550:72;:::i;:::-;14076:553;;;;;;;:::o;14635:194::-;14675:4;14695:20;14713:1;14695:20;:::i;:::-;14690:25;;14729:20;14747:1;14729:20;:::i;:::-;14724:25;;14773:1;14770;14766:9;14758:17;;14797:1;14791:4;14788:11;14785:37;;;14802:18;;:::i;:::-;14785:37;14635:194;;;;:::o;14835:170::-;14975:22;14971:1;14963:6;14959:14;14952:46;14835:170;:::o;15011:366::-;15153:3;15174:67;15238:2;15233:3;15174:67;:::i;:::-;15167:74;;15250:93;15339:3;15250:93;:::i;:::-;15368:2;15363:3;15359:12;15352:19;;15011:366;;;:::o;15383:419::-;15549:4;15587:2;15576:9;15572:18;15564:26;;15636:9;15630:4;15626:20;15622:1;15611:9;15607:17;15600:47;15664:131;15790:4;15664:131;:::i;:::-;15656:139;;15383:419;;;:::o;15808:191::-;15848:3;15867:20;15885:1;15867:20;:::i;:::-;15862:25;;15901:20;15919:1;15901:20;:::i;:::-;15896:25;;15944:1;15941;15937:9;15930:16;;15965:3;15962:1;15959:10;15956:36;;;15972:18;;:::i;:::-;15956:36;15808:191;;;;:::o;16005:249::-;16145:34;16141:1;16133:6;16129:14;16122:58;16214:32;16209:2;16201:6;16197:15;16190:57;16005:249;:::o;16260:366::-;16402:3;16423:67;16487:2;16482:3;16423:67;:::i;:::-;16416:74;;16499:93;16588:3;16499:93;:::i;:::-;16617:2;16612:3;16608:12;16601:19;;16260:366;;;:::o;16632:419::-;16798:4;16836:2;16825:9;16821:18;16813:26;;16885:9;16879:4;16875:20;16871:1;16860:9;16856:17;16849:47;16913:131;17039:4;16913:131;:::i;:::-;16905:139;;16632:419;;;:::o;17057:220::-;17197:34;17193:1;17185:6;17181:14;17174:58;17266:3;17261:2;17253:6;17249:15;17242:28;17057:220;:::o;17283:366::-;17425:3;17446:67;17510:2;17505:3;17446:67;:::i;:::-;17439:74;;17522:93;17611:3;17522:93;:::i;:::-;17640:2;17635:3;17631:12;17624:19;;17283:366;;;:::o;17655:419::-;17821:4;17859:2;17848:9;17844:18;17836:26;;17908:9;17902:4;17898:20;17894:1;17883:9;17879:17;17872:47;17936:131;18062:4;17936:131;:::i;:::-;17928:139;;17655:419;;;:::o;18080:167::-;18220:19;18216:1;18208:6;18204:14;18197:43;18080:167;:::o;18253:366::-;18395:3;18416:67;18480:2;18475:3;18416:67;:::i;:::-;18409:74;;18492:93;18581:3;18492:93;:::i;:::-;18610:2;18605:3;18601:12;18594:19;;18253:366;;;:::o;18625:419::-;18791:4;18829:2;18818:9;18814:18;18806:26;;18878:9;18872:4;18868:20;18864:1;18853:9;18849:17;18842:47;18906:131;19032:4;18906:131;:::i;:::-;18898:139;;18625:419;;;:::o;19050:180::-;19098:77;19095:1;19088:88;19195:4;19192:1;19185:15;19219:4;19216:1;19209:15;19236:180;19284:77;19281:1;19274:88;19381:4;19378:1;19371:15;19405:4;19402:1;19395:15;19422:85;19467:7;19496:5;19485:16;;19422:85;;;:::o;19513:158::-;19571:9;19604:61;19622:42;19631:32;19657:5;19631:32;:::i;:::-;19622:42;:::i;:::-;19604:61;:::i;:::-;19591:74;;19513:158;;;:::o;19677:147::-;19772:45;19811:5;19772:45;:::i;:::-;19767:3;19760:58;19677:147;;:::o;19830:114::-;19897:6;19931:5;19925:12;19915:22;;19830:114;;;:::o;19950:184::-;20049:11;20083:6;20078:3;20071:19;20123:4;20118:3;20114:14;20099:29;;19950:184;;;;:::o;20140:132::-;20207:4;20230:3;20222:11;;20260:4;20255:3;20251:14;20243:22;;20140:132;;;:::o;20278:108::-;20355:24;20373:5;20355:24;:::i;:::-;20350:3;20343:37;20278:108;;:::o;20392:179::-;20461:10;20482:46;20524:3;20516:6;20482:46;:::i;:::-;20560:4;20555:3;20551:14;20537:28;;20392:179;;;;:::o;20577:113::-;20647:4;20679;20674:3;20670:14;20662:22;;20577:113;;;:::o;20726:732::-;20845:3;20874:54;20922:5;20874:54;:::i;:::-;20944:86;21023:6;21018:3;20944:86;:::i;:::-;20937:93;;21054:56;21104:5;21054:56;:::i;:::-;21133:7;21164:1;21149:284;21174:6;21171:1;21168:13;21149:284;;;21250:6;21244:13;21277:63;21336:3;21321:13;21277:63;:::i;:::-;21270:70;;21363:60;21416:6;21363:60;:::i;:::-;21353:70;;21209:224;21196:1;21193;21189:9;21184:14;;21149:284;;;21153:14;21449:3;21442:10;;20850:608;;;20726:732;;;;:::o;21464:831::-;21727:4;21765:3;21754:9;21750:19;21742:27;;21779:71;21847:1;21836:9;21832:17;21823:6;21779:71;:::i;:::-;21860:80;21936:2;21925:9;21921:18;21912:6;21860:80;:::i;:::-;21987:9;21981:4;21977:20;21972:2;21961:9;21957:18;21950:48;22015:108;22118:4;22109:6;22015:108;:::i;:::-;22007:116;;22133:72;22201:2;22190:9;22186:18;22177:6;22133:72;:::i;:::-;22215:73;22283:3;22272:9;22268:19;22259:6;22215:73;:::i;:::-;21464:831;;;;;;;;:::o;22301:147::-;22402:11;22439:3;22424:18;;22301:147;;;;:::o;22454:114::-;;:::o;22574:398::-;22733:3;22754:83;22835:1;22830:3;22754:83;:::i;:::-;22747:90;;22846:93;22935:3;22846:93;:::i;:::-;22964:1;22959:3;22955:11;22948:18;;22574:398;;;:::o;22978:379::-;23162:3;23184:147;23327:3;23184:147;:::i;:::-;23177:154;;23348:3;23341:10;;22978:379;;;:::o;23363:807::-;23612:4;23650:3;23639:9;23635:19;23627:27;;23664:71;23732:1;23721:9;23717:17;23708:6;23664:71;:::i;:::-;23745:72;23813:2;23802:9;23798:18;23789:6;23745:72;:::i;:::-;23827:80;23903:2;23892:9;23888:18;23879:6;23827:80;:::i;:::-;23917;23993:2;23982:9;23978:18;23969:6;23917:80;:::i;:::-;24007:73;24075:3;24064:9;24060:19;24051:6;24007:73;:::i;:::-;24090;24158:3;24147:9;24143:19;24134:6;24090:73;:::i;:::-;23363:807;;;;;;;;;:::o;24176:663::-;24264:6;24272;24280;24329:2;24317:9;24308:7;24304:23;24300:32;24297:119;;;24335:79;;:::i;:::-;24297:119;24455:1;24480:64;24536:7;24527:6;24516:9;24512:22;24480:64;:::i;:::-;24470:74;;24426:128;24593:2;24619:64;24675:7;24666:6;24655:9;24651:22;24619:64;:::i;:::-;24609:74;;24564:129;24732:2;24758:64;24814:7;24805:6;24794:9;24790:22;24758:64;:::i;:::-;24748:74;;24703:129;24176:663;;;;;:::o;24845:332::-;24966:4;25004:2;24993:9;24989:18;24981:26;;25017:71;25085:1;25074:9;25070:17;25061:6;25017:71;:::i;:::-;25098:72;25166:2;25155:9;25151:18;25142:6;25098:72;:::i;:::-;24845:332;;;;;:::o;25183:177::-;25323:29;25319:1;25311:6;25307:14;25300:53;25183:177;:::o;25366:366::-;25508:3;25529:67;25593:2;25588:3;25529:67;:::i;:::-;25522:74;;25605:93;25694:3;25605:93;:::i;:::-;25723:2;25718:3;25714:12;25707:19;;25366:366;;;:::o;25738:419::-;25904:4;25942:2;25931:9;25927:18;25919:26;;25991:9;25985:4;25981:20;25977:1;25966:9;25962:17;25955:47;26019:131;26145:4;26019:131;:::i;:::-;26011:139;;25738:419;;;:::o

Swarm Source

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