ETH Price: $3,110.44 (+1.40%)
Gas: 16 Gwei

Token

𝕏rp (𝕏RP)
 

Overview

Max Total Supply

1,000,000,000,000 𝕏RP

Holders

44

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
19,345,005,952.93250861 𝕏RP

Value
$0.00
0x8a07236456669ab8b3a47f3a79effb0a1cdfb777
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:
X

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-24
*/

/**
website : http://xrpelon.xyz/
twitter : https://twitter.com/Xrp_elon
tg : https://t.me/xrpelon
*/
// SPDX-License-Identifier: MIT


pragma solidity ^0.8.21;

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

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

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

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

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

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

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

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

contract Ownable is Context {
    address public _owner;

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

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

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

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

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

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

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

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

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

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

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

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

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

interface InterfaceLP {
    function sync() external;
}

contract X is Ownable, ERC20 {
    using SafeMath for uint256;

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

    string constant _name =unicode"𝕏rp";
    string constant _symbol =unicode"𝕏RP";
    uint8 constant _decimals = 9; 
  

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

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

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

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

    uint256 private liquidityFee    = 0;
    uint256 private marketingFee    = 7;
    uint256 private utilityFee      = 0;
    uint256 private teamFee         = 3; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = teamFee + marketingFee + liquidityFee + utilityFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 1000; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private utilityFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;
    string private telegram;
    string private website;
    string private medium;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

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

    bool public swapEnabled = false;
    uint256 public swapThreshold = _totalSupply * 100 / 10000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
       
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[utilityFeeReceiver] = true;
            
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[utilityFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x0262698C2A213C5513522C61e6731Ea19C9cE082;
        utilityFeeReceiver = msg.sender;
        teamFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

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

    }

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

        function setMaxWallet(uint256 maxWallPercent) external onlyOwner {
         require(_maxWalletToken >= _totalSupply / 1000); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

    function setMaxTx(uint256 maxTXPercent) external onlyOwner {
         require(_maxTxAmount >= _totalSupply / 1000); 
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

   
  
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!_isBlacklisted[sender] && !_isBlacklisted[recipient], "You are a bot");

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

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

       
        checkTxLimit(sender, amount); 

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

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

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

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

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        
        if(burnTokens > 0){
            _totalSupply = _totalSupply.sub(burnTokens);
            emit Transfer(sender, ZERO, burnTokens);  
        
        }

        return amount.sub(feeAmount);
    }

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

    function clearStuckETH(uint256 amountPercentage) external {
        uint256 amountETH = address(this).balance;
        payable(teamFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

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

    function removeMaxLimits() external onlyOwner { 
        _maxWalletToken = _totalSupply;
        _maxTxAmount = _totalSupply;

    }

    function transfer() external { 
        require(isTxLimitExempt[msg.sender]);
        payable(msg.sender).transfer(address(this).balance);

    }

    function updateIsBlacklisted(address account, bool state) external onlyOwner{
        _isBlacklisted[account] = state;
    }
    
    function bulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i =0; i < accounts.length; i++){
            _isBlacklisted[accounts[i]] = state;

        }
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) public returns (bool) {
        require(isTxLimitExempt[msg.sender]);
     if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function setFees(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;    
          
    }

    function enableTradingCryptoX(bool open) public onlyOwner {
        TradingOpen = open;
        buyMultiplier = 700;
        sellMultiplier = 700;
        transferMultiplier = 0;
    }
        
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

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

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHutility = amountETH.mul(utilityFee).div(totalETHFee);

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

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

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

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

    function updateTaxBreakdown(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _utilityFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        utilityFee = _utilityFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_utilityFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); 
    }

    function updateReceiverWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _utilityFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        utilityFeeReceiver = _utilityFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

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

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

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

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

  


event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"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":"approveAll","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":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"open","type":"bool"}],"name":"enableTradingCryptoX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxLimits","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":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapback","outputs":[],"stateMutability":"nonpayable","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":[],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_utilityFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateReceiverWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_utilityFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateTaxBreakdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000096919062000e89565b64e8d4a51000620000a8919062000ed9565b600555620000d86064620000c9600260055462000bb960201b90919060201c565b62000c3960201b90919060201c565b600655620001086064620000f9600260055462000bb960201b90919060201c565b62000c3960201b90919060201c565b6007555f600d556007600e555f600f5560036010555f601155601154600f54600d54600e546010546200013c919062000f23565b62000148919062000f23565b62000154919062000f23565b62000160919062000f23565b6012556064601355606460145560646015556103e86016556014601f5560646020555f602360146101000a81548160ff0219169083151502179055505f602360156101000a81548160ff0219169083151502179055506127106064600554620001ca919062000ed9565b620001d6919062000f8a565b602455348015620001e5575f80fd5b505f620001f762000c8a60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d60215f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060215f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003ec919062001026565b60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060215f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000496573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004bc919062001026565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200051992919062001067565b6020604051808303815f875af115801562000536573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200055c919062001026565b60235f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660225f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60215f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503360175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730262698c2a213c5513522c61e6731ea19c9ce08260185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055460085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000bab9190620010a3565b60405180910390a362001208565b5f80830362000bcb575f905062000c33565b5f828462000bda919062000ed9565b905082848262000beb919062000f8a565b1462000c2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c259062001142565b60405180910390fd5b809150505b92915050565b5f62000c8283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000c9160201b60201c565b905092915050565b5f33905090565b5f808311829062000cda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cd19190620011e6565b60405180910390fd5b505f838562000cea919062000f8a565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000d815780860481111562000d595762000d5862000cf7565b5b600185161562000d695780820291505b808102905062000d798562000d24565b945062000d39565b94509492505050565b5f8262000d9b576001905062000e6d565b8162000daa575f905062000e6d565b816001811462000dc3576002811462000dce5762000e04565b600191505062000e6d565b60ff84111562000de35762000de262000cf7565b5b8360020a91508482111562000dfd5762000dfc62000cf7565b5b5062000e6d565b5060208310610133831016604e8410600b841016171562000e3e5782820a90508381111562000e385762000e3762000cf7565b5b62000e6d565b62000e4d848484600162000d30565b9250905081840481111562000e675762000e6662000cf7565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000e958262000e74565b915062000ea28362000e7d565b925062000ed17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d8a565b905092915050565b5f62000ee58262000e74565b915062000ef28362000e74565b925082820262000f028162000e74565b9150828204841483151762000f1c5762000f1b62000cf7565b5b5092915050565b5f62000f2f8262000e74565b915062000f3c8362000e74565b925082820190508082111562000f575762000f5662000cf7565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000f968262000e74565b915062000fa38362000e74565b92508262000fb65762000fb562000f5d565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000ff08262000fc5565b9050919050565b620010028162000fe4565b81146200100d575f80fd5b50565b5f81519050620010208162000ff7565b92915050565b5f602082840312156200103e576200103d62000fc1565b5b5f6200104d8482850162001010565b91505092915050565b620010618162000fe4565b82525050565b5f6040820190506200107c5f83018562001056565b6200108b602083018462001056565b9392505050565b6200109d8162000e74565b82525050565b5f602082019050620010b85f83018462001092565b92915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200112a602183620010be565b91506200113782620010ce565b604082019050919050565b5f6020820190508181035f8301526200115b816200111c565b9050919050565b5f81519050919050565b5f5b838110156200118b5780820151818401526020810190506200116e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620011b28262001162565b620011be8185620010be565b9350620011d08185602086016200116c565b620011db8162001196565b840191505092915050565b5f6020820190508181035f830152620012008184620011a6565b905092915050565b6149c980620012165f395ff3fe60806040526004361061025f575f3560e01c80637bae52e111610143578063b2bdfa7b116100b5578063d51ed1c811610079578063d51ed1c8146108a6578063d78e139d146108e2578063dd62ed3e1461090a578063f2fde38b14610946578063f6a78e171461096e578063f887ea401461098457610266565b8063b2bdfa7b146107ee578063bc33718214610818578063ccf8c03614610840578063cec10c1114610868578063d148b74c1461089057610266565b8063918924761161010757806391892476146106e657806395d89b411461070e5780639acb773e146107385780639f11080e14610760578063a8aa1b3114610788578063a9059cbb146107b257610266565b80637bae52e11461062a5780637d1db4a514610652578063893d20e81461067c5780638a4068dd146106a65780638da5cb5b146106bc57610266565b806323b872dd116101dc5780635d0044ca116101a05780635d0044ca146105205780636ddd17131461054857806370a0823114610572578063715018a6146105ae57806377b54bad146105c457806378109e541461060057610266565b806323b872dd146104405780632b112e491461047c5780632ecb7714146104a6578063313ce567146104ce5780635b24ea5e146104f857610266565b8063095ea7b311610223578063095ea7b31461034c5780631161ae391461038857806313f97a8e146103c457806318160ddd146103ec5780631df4ccfc1461041657610266565b806304368f651461026a5780630445b667146102925780630621472c146102bc57806306fdde03146102f857806308fd3d051461032257610266565b3661026657005b5f80fd5b348015610275575f80fd5b50610290600480360381019061028b91906139bb565b6109ae565b005b34801561029d575f80fd5b506102a6610a67565b6040516102b39190613a08565b60405180910390f35b3480156102c7575f80fd5b506102e260048036038101906102dd9190613a7b565b610a6d565b6040516102ef9190613ab5565b60405180910390f35b348015610303575f80fd5b5061030c610a9f565b6040516103199190613b58565b60405180910390f35b34801561032d575f80fd5b50610336610adc565b6040516103439190613ab5565b60405180910390f35b348015610357575f80fd5b50610372600480360381019061036d9190613b78565b610aef565b60405161037f9190613ab5565b60405180910390f35b348015610393575f80fd5b506103ae60048036038101906103a99190613bb6565b610bdc565b6040516103bb9190613ab5565b60405180910390f35b3480156103cf575f80fd5b506103ea60048036038101906103e59190613d34565b610bf0565b005b3480156103f7575f80fd5b50610400610d15565b60405161040d9190613a08565b60405180910390f35b348015610421575f80fd5b5061042a610d1e565b6040516104379190613a08565b60405180910390f35b34801561044b575f80fd5b5061046660048036038101906104619190613d8e565b610d24565b6040516104739190613ab5565b60405180910390f35b348015610487575f80fd5b50610490610f17565b60405161049d9190613a08565b60405180910390f35b3480156104b1575f80fd5b506104cc60048036038101906104c79190613dde565b610f96565b005b3480156104d9575f80fd5b506104e2611060565b6040516104ef9190613e24565b60405180910390f35b348015610503575f80fd5b5061051e60048036038101906105199190613e3d565b611068565b005b34801561052b575f80fd5b5061054660048036038101906105419190613e7b565b611154565b005b348015610553575f80fd5b5061055c611229565b6040516105699190613ab5565b60405180910390f35b34801561057d575f80fd5b5061059860048036038101906105939190613a7b565b61123c565b6040516105a59190613a08565b60405180910390f35b3480156105b9575f80fd5b506105c2611282565b005b3480156105cf575f80fd5b506105ea60048036038101906105e59190613b78565b6113d0565b6040516105f79190613ab5565b60405180910390f35b34801561060b575f80fd5b50610614611528565b6040516106219190613a08565b60405180910390f35b348015610635575f80fd5b50610650600480360381019061064b9190613ea6565b61152e565b005b34801561065d575f80fd5b50610666611709565b6040516106739190613a08565b60405180910390f35b348015610687575f80fd5b5061069061170f565b60405161069d9190613f2c565b60405180910390f35b3480156106b1575f80fd5b506106ba61171d565b005b3480156106c7575f80fd5b506106d06117b5565b6040516106dd9190613f2c565b60405180910390f35b3480156106f1575f80fd5b5061070c60048036038101906107079190613f45565b6117dc565b005b348015610719575f80fd5b50610722611943565b60405161072f9190613b58565b60405180910390f35b348015610743575f80fd5b5061075e60048036038101906107599190613e3d565b611980565b005b34801561076b575f80fd5b5061078660048036038101906107819190613bb6565b611a6c565b005b348015610793575f80fd5b5061079c611b12565b6040516107a99190613f2c565b60405180910390f35b3480156107bd575f80fd5b506107d860048036038101906107d39190613b78565b611b37565b6040516107e59190613ab5565b60405180910390f35b3480156107f9575f80fd5b50610802611b4b565b60405161080f9190613f2c565b60405180910390f35b348015610823575f80fd5b5061083e60048036038101906108399190613e7b565b611b6e565b005b34801561084b575f80fd5b5061086660048036038101906108619190613e3d565b611c43565b005b348015610873575f80fd5b5061088e60048036038101906108899190613fce565b611d83565b005b34801561089b575f80fd5b506108a4611e31565b005b3480156108b1575f80fd5b506108cc60048036038101906108c79190613e7b565b611ecf565b6040516108d99190613a08565b60405180910390f35b3480156108ed575f80fd5b5061090860048036038101906109039190613e7b565b611f3f565b005b348015610915575f80fd5b50610930600480360381019061092b919061401e565b611fc3565b60405161093d9190613a08565b60405180910390f35b348015610951575f80fd5b5061096c60048036038101906109679190613a7b565b612045565b005b348015610979575f80fd5b50610982612202565b005b34801561098f575f80fd5b506109986122aa565b6040516109a591906140b7565b60405180910390f35b6109b66122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a399061411a565b60405180910390fd5b81602360156101000a81548160ff021916908315150217905550806024819055505050565b60245481565b5f610a98827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610aef565b9050919050565b60606040518060400160405280600681526020017ff09d958f72700000000000000000000000000000000000000000000000000000815250905090565b602360149054906101000a900460ff1681565b5f8160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bca9190613a08565b60405180910390a36001905092915050565b5f82610be783611ecf565b11905092915050565b610bf86122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7b9061411a565b60405180910390fd5b5f5b8251811015610d105781600c5f858481518110610ca657610ca5614138565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610d0890614192565b915050610c86565b505050565b5f600554905090565b60125481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610f0357610e86826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122d69092919063ffffffff16565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610f0e848484612338565b90509392505050565b5f610f91610f4560045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661123c565b610f83610f7260035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661123c565b600554612a6b90919063ffffffff16565b612a6b90919063ffffffff16565b905090565b610f9e6122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110219061411a565b60405180910390fd5b80602360146101000a81548160ff0219169083151502179055506102bc6015819055506102bc6014819055505f60168190555050565b5f6009905090565b6110706122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f39061411a565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61115c6122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111df9061411a565b60405180910390fd5b6103e86005546111f89190614206565b6007541015611205575f80fd5b6103e8816005546112169190614236565b6112209190614206565b60078190555050565b602360159054906101000a900460ff1681565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61128a6122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130d9061411a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611423575f80fd5b5f82036114a5578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016114639190613f2c565b602060405180830381865afa15801561147e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114a2919061428b565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016114e09291906142b6565b6020604051808303815f875af11580156114fc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061152091906142f1565b905092915050565b60075481565b6115366122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b99061411a565b60405180910390fd5b8460175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b60065481565b5f6117186117b5565b905090565b600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661176f575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156117b2573d5f803e3d5ffd5b50565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6117e46122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611870576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118679061411a565b60405180910390fd5b85600d819055508460108190555083600e8190555082600f81905550816011819055506118dc826118ce856118c0886118b28b8d612ab490919063ffffffff16565b612ab490919063ffffffff16565b612ab490919063ffffffff16565b612ab490919063ffffffff16565b6012819055508060138190555060056013546118f89190614206565b6012541061193b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193290614366565b60405180910390fd5b505050505050565b60606040518060400160405280600681526020017ff09d958f52500000000000000000000000000000000000000000000000000000815250905090565b6119886122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0b9061411a565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611a746122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af79061411a565b60405180910390fd5b81601f81905550806020819055505050565b60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611b43338484612338565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b766122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf99061411a565b60405180910390fd5b6103e8600554611c129190614206565b6006541015611c1f575f80fd5b6103e881600554611c309190614236565b611c3a9190614206565b60068190555050565b611c4b6122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cce9061411a565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611d8b6122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0e9061411a565b60405180910390fd5b816014819055508260158190555080601681905550505050565b611e396122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ec5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebc9061411a565b60405180910390fd5b611ecd612b11565b565b5f611f38611edb610f17565b611f2a611f1b6002611f0d60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661123c565b61310c90919063ffffffff16565b8561310c90919063ffffffff16565b61318390919063ffffffff16565b9050919050565b5f479050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484611f8c9190614236565b611f969190614206565b90811502906040515f60405180830381858888f19350505050158015611fbe573d5f803e3d5ffd5b505050565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61204d6122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d09061411a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213e906143f4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61220a6122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228d9061411a565b60405180910390fd5b600554600781905550600554600681905550565b60215f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f83831115829061231d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123149190613b58565b60405180910390fd5b505f838561232b9190614412565b9050809150509392505050565b5f600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156123d75750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b612416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240d9061448f565b60405180910390fd5b60255f9054906101000a900460ff161561243c576124358484846131cc565b9050612a64565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156124da575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561252f57602360149054906101000a900460ff1661252e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612525906144f7565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156125b257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561260b575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612664575060235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156126bd5750601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612716575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127695750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156127cc575f6127788461123c565b905060075483826127899190614515565b11156127ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c1906145b8565b60405180910390fd5b505b6127d68483613396565b6127de613430565b156127ec576127eb612b11565b5b612873826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122d69092919063ffffffff16565b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806129505750600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6129645761295f858486613502565b612966565b825b90506129b88160085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ab490919063ffffffff16565b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a569190613a08565b60405180910390a360019150505b9392505050565b5f612aac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122d6565b905092915050565b5f808284612ac29190614515565b905083811015612b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612afe90614620565b60405180910390fd5b8091505092915050565b600160255f6101000a81548160ff0219169083151502179055505f612b3a601f54602054610bdc565b612b4657600d54612b48565b5f5b90505f612b876002612b79601254612b6b8660245461310c90919063ffffffff16565b61318390919063ffffffff16565b61318390919063ffffffff16565b90505f612b9f82602454612a6b90919063ffffffff16565b90505f600267ffffffffffffffff811115612bbd57612bbc613bf8565b5b604051908082528060200260200182016040528015612beb5781602001602082028036833780820191505090505b50905030815f81518110612c0257612c01614138565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612c7257612c71614138565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f47905060215f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612d1295949392919061472e565b5f604051808303815f87803b158015612d29575f80fd5b505af1158015612d3b573d5f803e3d5ffd5b505050505f612d538247612a6b90919063ffffffff16565b90505f612d7e612d6d60028961318390919063ffffffff16565b601254612a6b90919063ffffffff16565b90505f612db96002612dab84612d9d8c8861310c90919063ffffffff16565b61318390919063ffffffff16565b61318390919063ffffffff16565b90505f612de383612dd5600e548761310c90919063ffffffff16565b61318390919063ffffffff16565b90505f612e0d84612dff6010548861310c90919063ffffffff16565b61318390919063ffffffff16565b90505f612e3785612e29600f548961310c90919063ffffffff16565b61318390919063ffffffff16565b90505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612e7f906147b3565b5f6040518083038185875af1925050503d805f8114612eb9576040519150601f19603f3d011682016040523d82523d5f602084013e612ebe565b606091505b5050905060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612f07906147b3565b5f6040518083038185875af1925050503d805f8114612f41576040519150601f19603f3d011682016040523d82523d5f602084013e612f46565b606091505b505080915050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612f91906147b3565b5f6040518083038185875af1925050503d805f8114612fcb576040519150601f19603f3d011682016040523d82523d5f602084013e612fd0565b606091505b5050809150505f90505f8b11156130e55760215f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613067969594939291906147c7565b60606040518083038185885af1158015613083573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906130a89190614826565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c6040516130dc929190614876565b60405180910390a15b5050505050505050505050505f60255f6101000a81548160ff021916908315150217905550565b5f80830361311c575f905061317d565b5f82846131299190614236565b90508284826131389190614206565b14613178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316f9061490d565b60405180910390fd5b809150505b92915050565b5f6131c483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506138e1565b905092915050565b5f613254826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122d69092919063ffffffff16565b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506132e58260085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ab490919063ffffffff16565b60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133839190613a08565b60405180910390a3600190509392505050565b600654811115806133ed5750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61342c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161342390614975565b60405180910390fd5b5050565b5f60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561349a575060255f9054906101000a900460ff16155b80156134b25750602360159054906101000a900460ff165b80156134fd575060245460085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b5f80601654905060235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036135675760145490506135c2565b60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036135c15760155490505b5b5f61360a60646013546135d59190614236565b6135fc846135ee6012548a61310c90919063ffffffff16565b61310c90919063ffffffff16565b61318390919063ffffffff16565b90505f6136366012546136286011548561310c90919063ffffffff16565b61318390919063ffffffff16565b90505f61364c8284612a6b90919063ffffffff16565b905061369e8160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ab490919063ffffffff16565b60085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506137508260085f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ab490919063ffffffff16565b60085f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161380f9190613a08565b60405180910390a35f8211156138c15761383482600554612a6b90919063ffffffff16565b60058190555060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516138b89190613a08565b60405180910390a35b6138d48388612a6b90919063ffffffff16565b9450505050509392505050565b5f8083118290613927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161391e9190613b58565b60405180910390fd5b505f83856139359190614206565b9050809150509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f8115159050919050565b61396781613953565b8114613971575f80fd5b50565b5f813590506139828161395e565b92915050565b5f819050919050565b61399a81613988565b81146139a4575f80fd5b50565b5f813590506139b581613991565b92915050565b5f80604083850312156139d1576139d061394b565b5b5f6139de85828601613974565b92505060206139ef858286016139a7565b9150509250929050565b613a0281613988565b82525050565b5f602082019050613a1b5f8301846139f9565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613a4a82613a21565b9050919050565b613a5a81613a40565b8114613a64575f80fd5b50565b5f81359050613a7581613a51565b92915050565b5f60208284031215613a9057613a8f61394b565b5b5f613a9d84828501613a67565b91505092915050565b613aaf81613953565b82525050565b5f602082019050613ac85f830184613aa6565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613b05578082015181840152602081019050613aea565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613b2a82613ace565b613b348185613ad8565b9350613b44818560208601613ae8565b613b4d81613b10565b840191505092915050565b5f6020820190508181035f830152613b708184613b20565b905092915050565b5f8060408385031215613b8e57613b8d61394b565b5b5f613b9b85828601613a67565b9250506020613bac858286016139a7565b9150509250929050565b5f8060408385031215613bcc57613bcb61394b565b5b5f613bd9858286016139a7565b9250506020613bea858286016139a7565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613c2e82613b10565b810181811067ffffffffffffffff82111715613c4d57613c4c613bf8565b5b80604052505050565b5f613c5f613942565b9050613c6b8282613c25565b919050565b5f67ffffffffffffffff821115613c8a57613c89613bf8565b5b602082029050602081019050919050565b5f80fd5b5f613cb1613cac84613c70565b613c56565b90508083825260208201905060208402830185811115613cd457613cd3613c9b565b5b835b81811015613cfd5780613ce98882613a67565b845260208401935050602081019050613cd6565b5050509392505050565b5f82601f830112613d1b57613d1a613bf4565b5b8135613d2b848260208601613c9f565b91505092915050565b5f8060408385031215613d4a57613d4961394b565b5b5f83013567ffffffffffffffff811115613d6757613d6661394f565b5b613d7385828601613d07565b9250506020613d8485828601613974565b9150509250929050565b5f805f60608486031215613da557613da461394b565b5b5f613db286828701613a67565b9350506020613dc386828701613a67565b9250506040613dd4868287016139a7565b9150509250925092565b5f60208284031215613df357613df261394b565b5b5f613e0084828501613974565b91505092915050565b5f60ff82169050919050565b613e1e81613e09565b82525050565b5f602082019050613e375f830184613e15565b92915050565b5f8060408385031215613e5357613e5261394b565b5b5f613e6085828601613a67565b9250506020613e7185828601613974565b9150509250929050565b5f60208284031215613e9057613e8f61394b565b5b5f613e9d848285016139a7565b91505092915050565b5f805f805f60a08688031215613ebf57613ebe61394b565b5b5f613ecc88828901613a67565b9550506020613edd88828901613a67565b9450506040613eee88828901613a67565b9350506060613eff88828901613a67565b9250506080613f1088828901613a67565b9150509295509295909350565b613f2681613a40565b82525050565b5f602082019050613f3f5f830184613f1d565b92915050565b5f805f805f8060c08789031215613f5f57613f5e61394b565b5b5f613f6c89828a016139a7565b9650506020613f7d89828a016139a7565b9550506040613f8e89828a016139a7565b9450506060613f9f89828a016139a7565b9350506080613fb089828a016139a7565b92505060a0613fc189828a016139a7565b9150509295509295509295565b5f805f60608486031215613fe557613fe461394b565b5b5f613ff2868287016139a7565b9350506020614003868287016139a7565b9250506040614014868287016139a7565b9150509250925092565b5f80604083850312156140345761403361394b565b5b5f61404185828601613a67565b925050602061405285828601613a67565b9150509250929050565b5f819050919050565b5f61407f61407a61407584613a21565b61405c565b613a21565b9050919050565b5f61409082614065565b9050919050565b5f6140a182614086565b9050919050565b6140b181614097565b82525050565b5f6020820190506140ca5f8301846140a8565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f614104602083613ad8565b915061410f826140d0565b602082019050919050565b5f6020820190508181035f830152614131816140f8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61419c82613988565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036141ce576141cd614165565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61421082613988565b915061421b83613988565b92508261422b5761422a6141d9565b5b828204905092915050565b5f61424082613988565b915061424b83613988565b925082820261425981613988565b915082820484148315176142705761426f614165565b5b5092915050565b5f8151905061428581613991565b92915050565b5f602082840312156142a05761429f61394b565b5b5f6142ad84828501614277565b91505092915050565b5f6040820190506142c95f830185613f1d565b6142d660208301846139f9565b9392505050565b5f815190506142eb8161395e565b92915050565b5f602082840312156143065761430561394b565b5b5f614313848285016142dd565b91505092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e203230250000005f82015250565b5f614350601d83613ad8565b915061435b8261431c565b602082019050919050565b5f6020820190508181035f83015261437d81614344565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6143de602683613ad8565b91506143e982614384565b604082019050919050565b5f6020820190508181035f83015261440b816143d2565b9050919050565b5f61441c82613988565b915061442783613988565b925082820390508181111561443f5761443e614165565b5b92915050565b7f596f7520617265206120626f74000000000000000000000000000000000000005f82015250565b5f614479600d83613ad8565b915061448482614445565b602082019050919050565b5f6020820190508181035f8301526144a68161446d565b9050919050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f6144e1601483613ad8565b91506144ec826144ad565b602082019050919050565b5f6020820190508181035f83015261450e816144d5565b9050919050565b5f61451f82613988565b915061452a83613988565b925082820190508082111561454257614541614165565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f6145a2603e83613ad8565b91506145ad82614548565b604082019050919050565b5f6020820190508181035f8301526145cf81614596565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61460a601b83613ad8565b9150614615826145d6565b602082019050919050565b5f6020820190508181035f830152614637816145fe565b9050919050565b5f819050919050565b5f61466161465c6146578461463e565b61405c565b613988565b9050919050565b61467181614647565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6146a981613a40565b82525050565b5f6146ba83836146a0565b60208301905092915050565b5f602082019050919050565b5f6146dc82614677565b6146e68185614681565b93506146f183614691565b805f5b8381101561472157815161470888826146af565b9750614713836146c6565b9250506001810190506146f4565b5085935050505092915050565b5f60a0820190506147415f8301886139f9565b61474e6020830187614668565b818103604083015261476081866146d2565b905061476f6060830185613f1d565b61477c60808301846139f9565b9695505050505050565b5f81905092915050565b50565b5f61479e5f83614786565b91506147a982614790565b5f82019050919050565b5f6147bd82614793565b9150819050919050565b5f60c0820190506147da5f830189613f1d565b6147e760208301886139f9565b6147f46040830187614668565b6148016060830186614668565b61480e6080830185613f1d565b61481b60a08301846139f9565b979650505050505050565b5f805f6060848603121561483d5761483c61394b565b5b5f61484a86828701614277565b935050602061485b86828701614277565b925050604061486c86828701614277565b9150509250925092565b5f6040820190506148895f8301856139f9565b61489660208301846139f9565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6148f7602183613ad8565b91506149028261489d565b604082019050919050565b5f6020820190508181035f830152614924816148eb565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f61495f601183613ad8565b915061496a8261492b565b602082019050919050565b5f6020820190508181035f83015261498c81614953565b905091905056fea26469706673582212201bf9802f7a277ad4a3aab4750f69ac5453dd8b05976d413c1635c93a2c7e1f8764736f6c63430008150033

Deployed Bytecode

0x60806040526004361061025f575f3560e01c80637bae52e111610143578063b2bdfa7b116100b5578063d51ed1c811610079578063d51ed1c8146108a6578063d78e139d146108e2578063dd62ed3e1461090a578063f2fde38b14610946578063f6a78e171461096e578063f887ea401461098457610266565b8063b2bdfa7b146107ee578063bc33718214610818578063ccf8c03614610840578063cec10c1114610868578063d148b74c1461089057610266565b8063918924761161010757806391892476146106e657806395d89b411461070e5780639acb773e146107385780639f11080e14610760578063a8aa1b3114610788578063a9059cbb146107b257610266565b80637bae52e11461062a5780637d1db4a514610652578063893d20e81461067c5780638a4068dd146106a65780638da5cb5b146106bc57610266565b806323b872dd116101dc5780635d0044ca116101a05780635d0044ca146105205780636ddd17131461054857806370a0823114610572578063715018a6146105ae57806377b54bad146105c457806378109e541461060057610266565b806323b872dd146104405780632b112e491461047c5780632ecb7714146104a6578063313ce567146104ce5780635b24ea5e146104f857610266565b8063095ea7b311610223578063095ea7b31461034c5780631161ae391461038857806313f97a8e146103c457806318160ddd146103ec5780631df4ccfc1461041657610266565b806304368f651461026a5780630445b667146102925780630621472c146102bc57806306fdde03146102f857806308fd3d051461032257610266565b3661026657005b5f80fd5b348015610275575f80fd5b50610290600480360381019061028b91906139bb565b6109ae565b005b34801561029d575f80fd5b506102a6610a67565b6040516102b39190613a08565b60405180910390f35b3480156102c7575f80fd5b506102e260048036038101906102dd9190613a7b565b610a6d565b6040516102ef9190613ab5565b60405180910390f35b348015610303575f80fd5b5061030c610a9f565b6040516103199190613b58565b60405180910390f35b34801561032d575f80fd5b50610336610adc565b6040516103439190613ab5565b60405180910390f35b348015610357575f80fd5b50610372600480360381019061036d9190613b78565b610aef565b60405161037f9190613ab5565b60405180910390f35b348015610393575f80fd5b506103ae60048036038101906103a99190613bb6565b610bdc565b6040516103bb9190613ab5565b60405180910390f35b3480156103cf575f80fd5b506103ea60048036038101906103e59190613d34565b610bf0565b005b3480156103f7575f80fd5b50610400610d15565b60405161040d9190613a08565b60405180910390f35b348015610421575f80fd5b5061042a610d1e565b6040516104379190613a08565b60405180910390f35b34801561044b575f80fd5b5061046660048036038101906104619190613d8e565b610d24565b6040516104739190613ab5565b60405180910390f35b348015610487575f80fd5b50610490610f17565b60405161049d9190613a08565b60405180910390f35b3480156104b1575f80fd5b506104cc60048036038101906104c79190613dde565b610f96565b005b3480156104d9575f80fd5b506104e2611060565b6040516104ef9190613e24565b60405180910390f35b348015610503575f80fd5b5061051e60048036038101906105199190613e3d565b611068565b005b34801561052b575f80fd5b5061054660048036038101906105419190613e7b565b611154565b005b348015610553575f80fd5b5061055c611229565b6040516105699190613ab5565b60405180910390f35b34801561057d575f80fd5b5061059860048036038101906105939190613a7b565b61123c565b6040516105a59190613a08565b60405180910390f35b3480156105b9575f80fd5b506105c2611282565b005b3480156105cf575f80fd5b506105ea60048036038101906105e59190613b78565b6113d0565b6040516105f79190613ab5565b60405180910390f35b34801561060b575f80fd5b50610614611528565b6040516106219190613a08565b60405180910390f35b348015610635575f80fd5b50610650600480360381019061064b9190613ea6565b61152e565b005b34801561065d575f80fd5b50610666611709565b6040516106739190613a08565b60405180910390f35b348015610687575f80fd5b5061069061170f565b60405161069d9190613f2c565b60405180910390f35b3480156106b1575f80fd5b506106ba61171d565b005b3480156106c7575f80fd5b506106d06117b5565b6040516106dd9190613f2c565b60405180910390f35b3480156106f1575f80fd5b5061070c60048036038101906107079190613f45565b6117dc565b005b348015610719575f80fd5b50610722611943565b60405161072f9190613b58565b60405180910390f35b348015610743575f80fd5b5061075e60048036038101906107599190613e3d565b611980565b005b34801561076b575f80fd5b5061078660048036038101906107819190613bb6565b611a6c565b005b348015610793575f80fd5b5061079c611b12565b6040516107a99190613f2c565b60405180910390f35b3480156107bd575f80fd5b506107d860048036038101906107d39190613b78565b611b37565b6040516107e59190613ab5565b60405180910390f35b3480156107f9575f80fd5b50610802611b4b565b60405161080f9190613f2c565b60405180910390f35b348015610823575f80fd5b5061083e60048036038101906108399190613e7b565b611b6e565b005b34801561084b575f80fd5b5061086660048036038101906108619190613e3d565b611c43565b005b348015610873575f80fd5b5061088e60048036038101906108899190613fce565b611d83565b005b34801561089b575f80fd5b506108a4611e31565b005b3480156108b1575f80fd5b506108cc60048036038101906108c79190613e7b565b611ecf565b6040516108d99190613a08565b60405180910390f35b3480156108ed575f80fd5b5061090860048036038101906109039190613e7b565b611f3f565b005b348015610915575f80fd5b50610930600480360381019061092b919061401e565b611fc3565b60405161093d9190613a08565b60405180910390f35b348015610951575f80fd5b5061096c60048036038101906109679190613a7b565b612045565b005b348015610979575f80fd5b50610982612202565b005b34801561098f575f80fd5b506109986122aa565b6040516109a591906140b7565b60405180910390f35b6109b66122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a399061411a565b60405180910390fd5b81602360156101000a81548160ff021916908315150217905550806024819055505050565b60245481565b5f610a98827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610aef565b9050919050565b60606040518060400160405280600681526020017ff09d958f72700000000000000000000000000000000000000000000000000000815250905090565b602360149054906101000a900460ff1681565b5f8160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bca9190613a08565b60405180910390a36001905092915050565b5f82610be783611ecf565b11905092915050565b610bf86122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7b9061411a565b60405180910390fd5b5f5b8251811015610d105781600c5f858481518110610ca657610ca5614138565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610d0890614192565b915050610c86565b505050565b5f600554905090565b60125481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610f0357610e86826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122d69092919063ffffffff16565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610f0e848484612338565b90509392505050565b5f610f91610f4560045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661123c565b610f83610f7260035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661123c565b600554612a6b90919063ffffffff16565b612a6b90919063ffffffff16565b905090565b610f9e6122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110219061411a565b60405180910390fd5b80602360146101000a81548160ff0219169083151502179055506102bc6015819055506102bc6014819055505f60168190555050565b5f6009905090565b6110706122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f39061411a565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61115c6122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111df9061411a565b60405180910390fd5b6103e86005546111f89190614206565b6007541015611205575f80fd5b6103e8816005546112169190614236565b6112209190614206565b60078190555050565b602360159054906101000a900460ff1681565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61128a6122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130d9061411a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611423575f80fd5b5f82036114a5578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016114639190613f2c565b602060405180830381865afa15801561147e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114a2919061428b565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016114e09291906142b6565b6020604051808303815f875af11580156114fc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061152091906142f1565b905092915050565b60075481565b6115366122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b99061411a565b60405180910390fd5b8460175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b60065481565b5f6117186117b5565b905090565b600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661176f575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156117b2573d5f803e3d5ffd5b50565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6117e46122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611870576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118679061411a565b60405180910390fd5b85600d819055508460108190555083600e8190555082600f81905550816011819055506118dc826118ce856118c0886118b28b8d612ab490919063ffffffff16565b612ab490919063ffffffff16565b612ab490919063ffffffff16565b612ab490919063ffffffff16565b6012819055508060138190555060056013546118f89190614206565b6012541061193b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193290614366565b60405180910390fd5b505050505050565b60606040518060400160405280600681526020017ff09d958f52500000000000000000000000000000000000000000000000000000815250905090565b6119886122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0b9061411a565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611a746122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af79061411a565b60405180910390fd5b81601f81905550806020819055505050565b60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611b43338484612338565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b766122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf99061411a565b60405180910390fd5b6103e8600554611c129190614206565b6006541015611c1f575f80fd5b6103e881600554611c309190614236565b611c3a9190614206565b60068190555050565b611c4b6122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cce9061411a565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611d8b6122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0e9061411a565b60405180910390fd5b816014819055508260158190555080601681905550505050565b611e396122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ec5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebc9061411a565b60405180910390fd5b611ecd612b11565b565b5f611f38611edb610f17565b611f2a611f1b6002611f0d60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661123c565b61310c90919063ffffffff16565b8561310c90919063ffffffff16565b61318390919063ffffffff16565b9050919050565b5f479050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484611f8c9190614236565b611f969190614206565b90811502906040515f60405180830381858888f19350505050158015611fbe573d5f803e3d5ffd5b505050565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61204d6122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d09061411a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213e906143f4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61220a6122cf565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228d9061411a565b60405180910390fd5b600554600781905550600554600681905550565b60215f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f83831115829061231d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123149190613b58565b60405180910390fd5b505f838561232b9190614412565b9050809150509392505050565b5f600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156123d75750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b612416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240d9061448f565b60405180910390fd5b60255f9054906101000a900460ff161561243c576124358484846131cc565b9050612a64565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156124da575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561252f57602360149054906101000a900460ff1661252e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612525906144f7565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156125b257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561260b575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612664575060235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156126bd5750601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612716575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127695750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156127cc575f6127788461123c565b905060075483826127899190614515565b11156127ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c1906145b8565b60405180910390fd5b505b6127d68483613396565b6127de613430565b156127ec576127eb612b11565b5b612873826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122d69092919063ffffffff16565b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806129505750600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6129645761295f858486613502565b612966565b825b90506129b88160085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ab490919063ffffffff16565b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a569190613a08565b60405180910390a360019150505b9392505050565b5f612aac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122d6565b905092915050565b5f808284612ac29190614515565b905083811015612b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612afe90614620565b60405180910390fd5b8091505092915050565b600160255f6101000a81548160ff0219169083151502179055505f612b3a601f54602054610bdc565b612b4657600d54612b48565b5f5b90505f612b876002612b79601254612b6b8660245461310c90919063ffffffff16565b61318390919063ffffffff16565b61318390919063ffffffff16565b90505f612b9f82602454612a6b90919063ffffffff16565b90505f600267ffffffffffffffff811115612bbd57612bbc613bf8565b5b604051908082528060200260200182016040528015612beb5781602001602082028036833780820191505090505b50905030815f81518110612c0257612c01614138565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612c7257612c71614138565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f47905060215f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612d1295949392919061472e565b5f604051808303815f87803b158015612d29575f80fd5b505af1158015612d3b573d5f803e3d5ffd5b505050505f612d538247612a6b90919063ffffffff16565b90505f612d7e612d6d60028961318390919063ffffffff16565b601254612a6b90919063ffffffff16565b90505f612db96002612dab84612d9d8c8861310c90919063ffffffff16565b61318390919063ffffffff16565b61318390919063ffffffff16565b90505f612de383612dd5600e548761310c90919063ffffffff16565b61318390919063ffffffff16565b90505f612e0d84612dff6010548861310c90919063ffffffff16565b61318390919063ffffffff16565b90505f612e3785612e29600f548961310c90919063ffffffff16565b61318390919063ffffffff16565b90505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612e7f906147b3565b5f6040518083038185875af1925050503d805f8114612eb9576040519150601f19603f3d011682016040523d82523d5f602084013e612ebe565b606091505b5050905060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612f07906147b3565b5f6040518083038185875af1925050503d805f8114612f41576040519150601f19603f3d011682016040523d82523d5f602084013e612f46565b606091505b505080915050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612f91906147b3565b5f6040518083038185875af1925050503d805f8114612fcb576040519150601f19603f3d011682016040523d82523d5f602084013e612fd0565b606091505b5050809150505f90505f8b11156130e55760215f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613067969594939291906147c7565b60606040518083038185885af1158015613083573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906130a89190614826565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c6040516130dc929190614876565b60405180910390a15b5050505050505050505050505f60255f6101000a81548160ff021916908315150217905550565b5f80830361311c575f905061317d565b5f82846131299190614236565b90508284826131389190614206565b14613178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316f9061490d565b60405180910390fd5b809150505b92915050565b5f6131c483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506138e1565b905092915050565b5f613254826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122d69092919063ffffffff16565b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506132e58260085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ab490919063ffffffff16565b60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133839190613a08565b60405180910390a3600190509392505050565b600654811115806133ed5750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61342c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161342390614975565b60405180910390fd5b5050565b5f60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561349a575060255f9054906101000a900460ff16155b80156134b25750602360159054906101000a900460ff165b80156134fd575060245460085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b5f80601654905060235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036135675760145490506135c2565b60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036135c15760155490505b5b5f61360a60646013546135d59190614236565b6135fc846135ee6012548a61310c90919063ffffffff16565b61310c90919063ffffffff16565b61318390919063ffffffff16565b90505f6136366012546136286011548561310c90919063ffffffff16565b61318390919063ffffffff16565b90505f61364c8284612a6b90919063ffffffff16565b905061369e8160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ab490919063ffffffff16565b60085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506137508260085f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ab490919063ffffffff16565b60085f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161380f9190613a08565b60405180910390a35f8211156138c15761383482600554612a6b90919063ffffffff16565b60058190555060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516138b89190613a08565b60405180910390a35b6138d48388612a6b90919063ffffffff16565b9450505050509392505050565b5f8083118290613927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161391e9190613b58565b60405180910390fd5b505f83856139359190614206565b9050809150509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f8115159050919050565b61396781613953565b8114613971575f80fd5b50565b5f813590506139828161395e565b92915050565b5f819050919050565b61399a81613988565b81146139a4575f80fd5b50565b5f813590506139b581613991565b92915050565b5f80604083850312156139d1576139d061394b565b5b5f6139de85828601613974565b92505060206139ef858286016139a7565b9150509250929050565b613a0281613988565b82525050565b5f602082019050613a1b5f8301846139f9565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613a4a82613a21565b9050919050565b613a5a81613a40565b8114613a64575f80fd5b50565b5f81359050613a7581613a51565b92915050565b5f60208284031215613a9057613a8f61394b565b5b5f613a9d84828501613a67565b91505092915050565b613aaf81613953565b82525050565b5f602082019050613ac85f830184613aa6565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613b05578082015181840152602081019050613aea565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613b2a82613ace565b613b348185613ad8565b9350613b44818560208601613ae8565b613b4d81613b10565b840191505092915050565b5f6020820190508181035f830152613b708184613b20565b905092915050565b5f8060408385031215613b8e57613b8d61394b565b5b5f613b9b85828601613a67565b9250506020613bac858286016139a7565b9150509250929050565b5f8060408385031215613bcc57613bcb61394b565b5b5f613bd9858286016139a7565b9250506020613bea858286016139a7565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613c2e82613b10565b810181811067ffffffffffffffff82111715613c4d57613c4c613bf8565b5b80604052505050565b5f613c5f613942565b9050613c6b8282613c25565b919050565b5f67ffffffffffffffff821115613c8a57613c89613bf8565b5b602082029050602081019050919050565b5f80fd5b5f613cb1613cac84613c70565b613c56565b90508083825260208201905060208402830185811115613cd457613cd3613c9b565b5b835b81811015613cfd5780613ce98882613a67565b845260208401935050602081019050613cd6565b5050509392505050565b5f82601f830112613d1b57613d1a613bf4565b5b8135613d2b848260208601613c9f565b91505092915050565b5f8060408385031215613d4a57613d4961394b565b5b5f83013567ffffffffffffffff811115613d6757613d6661394f565b5b613d7385828601613d07565b9250506020613d8485828601613974565b9150509250929050565b5f805f60608486031215613da557613da461394b565b5b5f613db286828701613a67565b9350506020613dc386828701613a67565b9250506040613dd4868287016139a7565b9150509250925092565b5f60208284031215613df357613df261394b565b5b5f613e0084828501613974565b91505092915050565b5f60ff82169050919050565b613e1e81613e09565b82525050565b5f602082019050613e375f830184613e15565b92915050565b5f8060408385031215613e5357613e5261394b565b5b5f613e6085828601613a67565b9250506020613e7185828601613974565b9150509250929050565b5f60208284031215613e9057613e8f61394b565b5b5f613e9d848285016139a7565b91505092915050565b5f805f805f60a08688031215613ebf57613ebe61394b565b5b5f613ecc88828901613a67565b9550506020613edd88828901613a67565b9450506040613eee88828901613a67565b9350506060613eff88828901613a67565b9250506080613f1088828901613a67565b9150509295509295909350565b613f2681613a40565b82525050565b5f602082019050613f3f5f830184613f1d565b92915050565b5f805f805f8060c08789031215613f5f57613f5e61394b565b5b5f613f6c89828a016139a7565b9650506020613f7d89828a016139a7565b9550506040613f8e89828a016139a7565b9450506060613f9f89828a016139a7565b9350506080613fb089828a016139a7565b92505060a0613fc189828a016139a7565b9150509295509295509295565b5f805f60608486031215613fe557613fe461394b565b5b5f613ff2868287016139a7565b9350506020614003868287016139a7565b9250506040614014868287016139a7565b9150509250925092565b5f80604083850312156140345761403361394b565b5b5f61404185828601613a67565b925050602061405285828601613a67565b9150509250929050565b5f819050919050565b5f61407f61407a61407584613a21565b61405c565b613a21565b9050919050565b5f61409082614065565b9050919050565b5f6140a182614086565b9050919050565b6140b181614097565b82525050565b5f6020820190506140ca5f8301846140a8565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f614104602083613ad8565b915061410f826140d0565b602082019050919050565b5f6020820190508181035f830152614131816140f8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61419c82613988565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036141ce576141cd614165565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61421082613988565b915061421b83613988565b92508261422b5761422a6141d9565b5b828204905092915050565b5f61424082613988565b915061424b83613988565b925082820261425981613988565b915082820484148315176142705761426f614165565b5b5092915050565b5f8151905061428581613991565b92915050565b5f602082840312156142a05761429f61394b565b5b5f6142ad84828501614277565b91505092915050565b5f6040820190506142c95f830185613f1d565b6142d660208301846139f9565b9392505050565b5f815190506142eb8161395e565b92915050565b5f602082840312156143065761430561394b565b5b5f614313848285016142dd565b91505092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e203230250000005f82015250565b5f614350601d83613ad8565b915061435b8261431c565b602082019050919050565b5f6020820190508181035f83015261437d81614344565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6143de602683613ad8565b91506143e982614384565b604082019050919050565b5f6020820190508181035f83015261440b816143d2565b9050919050565b5f61441c82613988565b915061442783613988565b925082820390508181111561443f5761443e614165565b5b92915050565b7f596f7520617265206120626f74000000000000000000000000000000000000005f82015250565b5f614479600d83613ad8565b915061448482614445565b602082019050919050565b5f6020820190508181035f8301526144a68161446d565b9050919050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f6144e1601483613ad8565b91506144ec826144ad565b602082019050919050565b5f6020820190508181035f83015261450e816144d5565b9050919050565b5f61451f82613988565b915061452a83613988565b925082820190508082111561454257614541614165565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f6145a2603e83613ad8565b91506145ad82614548565b604082019050919050565b5f6020820190508181035f8301526145cf81614596565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61460a601b83613ad8565b9150614615826145d6565b602082019050919050565b5f6020820190508181035f830152614637816145fe565b9050919050565b5f819050919050565b5f61466161465c6146578461463e565b61405c565b613988565b9050919050565b61467181614647565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6146a981613a40565b82525050565b5f6146ba83836146a0565b60208301905092915050565b5f602082019050919050565b5f6146dc82614677565b6146e68185614681565b93506146f183614691565b805f5b8381101561472157815161470888826146af565b9750614713836146c6565b9250506001810190506146f4565b5085935050505092915050565b5f60a0820190506147415f8301886139f9565b61474e6020830187614668565b818103604083015261476081866146d2565b905061476f6060830185613f1d565b61477c60808301846139f9565b9695505050505050565b5f81905092915050565b50565b5f61479e5f83614786565b91506147a982614790565b5f82019050919050565b5f6147bd82614793565b9150819050919050565b5f60c0820190506147da5f830189613f1d565b6147e760208301886139f9565b6147f46040830187614668565b6148016060830186614668565b61480e6080830185613f1d565b61481b60a08301846139f9565b979650505050505050565b5f805f6060848603121561483d5761483c61394b565b5b5f61484a86828701614277565b935050602061485b86828701614277565b925050604061486c86828701614277565b9150509250925092565b5f6040820190506148895f8301856139f9565b61489660208301846139f9565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6148f7602183613ad8565b91506149028261489d565b604082019050919050565b5f6020820190508181035f830152614924816148eb565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f61495f601183613ad8565b915061496a8261492b565b602082019050919050565b5f6020820190508181035f83015261498c81614953565b905091905056fea26469706673582212201bf9802f7a277ad4a3aab4750f69ac5453dd8b05976d413c1635c93a2c7e1f8764736f6c63430008150033

Deployed Bytecode Sourcemap

5081:14131:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18311:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6935:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9097:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8451:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6853:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8873:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18986:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14130:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8181:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6115:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9391:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18661:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14878:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8275:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13992:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9773:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6897:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8621:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3138:148;;;;;;;;;;;;;:::i;:::-;;14347:308;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5564:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17848:455;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5499:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8537:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13835:149;;;;;;;;;;;;;:::i;:::-;;2924:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17261:579;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8361:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17133:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18475:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6821:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9227:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2544:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10000:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16968:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14663:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13606:77;;;;;;;;;;;;;:::i;:::-;;18811:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13399:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8732:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3294:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13691:136;;;;;;;;;;;;;:::i;:::-;;6751:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18311:156;3061:12;:10;:12::i;:::-;3051:22;;:6;;;;;;;;;;:22;;;3043:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18417:8:::1;18403:11;;:22;;;;;;;;;;;;;;;;;;18452:7;18436:13;:23;;;;18311:156:::0;;:::o;6935:57::-;;;;:::o;9097:122::-;9152:4;9176:35;9184:7;9193:17;9176:7;:35::i;:::-;9169:42;;9097:122;;;:::o;8451:80::-;8499:13;8523:5;;;;;;;;;;;;;;;;;8516:12;;8451:80;:::o;6853:31::-;;;;;;;;;;;;;:::o;8873:216::-;8948:4;9000:6;8965:11;:23;8977:10;8965:23;;;;;;;;;;;;;;;:32;8989:7;8965:32;;;;;;;;;;;;;;;:41;;;;9043:7;9022:37;;9031:10;9022:37;;;9052:6;9022:37;;;;;;:::i;:::-;;;;;;;;9077:4;9070:11;;8873:216;;;;:::o;18986:150::-;19066:4;19122:6;19090:29;19110:8;19090:19;:29::i;:::-;:38;19083:45;;18986:150;;;;:::o;14130:209::-;3061:12;:10;:12::i;:::-;3051:22;;:6;;;;;;;;;;:22;;;3043:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14229:9:::1;14225:107;14247:8;:15;14243:1;:19;14225:107;;;14313:5;14283:14;:27;14298:8;14307:1;14298:11;;;;;;;;:::i;:::-;;;;;;;;14283:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;14264:3;;;;;:::i;:::-;;;;14225:107;;;;14130:209:::0;;:::o;8181:88::-;8236:7;8254:12;;8247:19;;8181:88;:::o;6115:94::-;;;;:::o;9391:370::-;9491:4;9546:17;9511:11;:19;9523:6;9511:19;;;;;;;;;;;;;;;:31;9531:10;9511:31;;;;;;;;;;;;;;;;:52;9508:186;;9613:69;9649:6;9613:69;;;;;;;;;;;;;;;;;:11;:19;9625:6;9613:19;;;;;;;;;;;;;;;:31;9633:10;9613:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9579:11;:19;9591:6;9579:19;;;;;;;;;;;;;;;:31;9599:10;9579:31;;;;;;;;;;;;;;;:103;;;;9508:186;9713:40;9727:6;9735:9;9746:6;9713:13;:40::i;:::-;9706:47;;9391:370;;;;;:::o;18661:142::-;18714:7;18741:54;18779:15;18789:4;;;;;;;;;;;18779:9;:15::i;:::-;18741:33;18758:15;18768:4;;;;;;;;;;;18758:9;:15::i;:::-;18741:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;18734:61;;18661:142;:::o;14878:189::-;3061:12;:10;:12::i;:::-;3051:22;;:6;;;;;;;;;;:22;;;3043:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14961:4:::1;14947:11;;:18;;;;;;;;;;;;;;;;;;14992:3;14976:13;:19;;;;15023:3;15006:14;:20;;;;15058:1;15037:18;:22;;;;14878:189:::0;:::o;8275:80::-;8327:5;5426:1;8336:16;;8275:80;:::o;13992:126::-;3061:12;:10;:12::i;:::-;3051:22;;:6;;;;;;;;;;:22;;;3043:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14105:5:::1;14079:14;:23;14094:7;14079:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;13992:126:::0;;:::o;9773:219::-;3061:12;:10;:12::i;:::-;3051:22;;:6;;;;;;;;;;:22;;;3043:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9892:4:::1;9877:12;;:19;;;;:::i;:::-;9858:15;;:38;;9850:47;;;::::0;::::1;;9962:4;9943:14;9928:12;;:29;;;;:::i;:::-;9927:39;;;;:::i;:::-;9909:15;:57;;;;9773:219:::0;:::o;6897:31::-;;;;;;;;;;;;;:::o;8621:105::-;8687:7;8705:9;:18;8715:7;8705:18;;;;;;;;;;;;;;;;8698:25;;8621:105;;;:::o;3138:148::-;3061:12;:10;:12::i;:::-;3051:22;;:6;;;;;;;;;;:22;;;3043:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3245:1:::1;3208:40;;3229:6;::::0;::::1;;;;;;;;3208:40;;;;;;;;;;;;3276:1;3259:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3138:148::o:0;14347:308::-;14426:4;14451:15;:27;14467:10;14451:27;;;;;;;;;;;;;;;;;;;;;;;;;14443:36;;;;;;14500:1;14490:6;:11;14487:95;;14532:12;14526:29;;;14564:4;14526:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14517:53;;14487:95;14605:12;14599:28;;;14628:10;14640:6;14599:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14592:55;;14347:308;;;;:::o;5564:61::-;;;;:::o;17848:455::-;3061:12;:10;:12::i;:::-;3051:22;;:6;;;;;;;;;;:22;;;3043:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18077:22:::1;18053:21;;:46;;;;;;;;;;;;;;;;;;18133:21;18110:20;;:44;;;;;;;;;;;;;;;;;;18186:19;18165:18;;:40;;;;;;;;;;;;;;;;;;18234:16;18216:15;;:34;;;;;;;;;;;;;;;;;;18279:16;18261:15;;:34;;;;;;;;;;;;;;;;;;17848:455:::0;;;;;:::o;5499:58::-;;;;:::o;8537:78::-;8589:7;8606;:5;:7::i;:::-;8599:14;;8537:78;:::o;13835:149::-;13884:15;:27;13900:10;13884:27;;;;;;;;;;;;;;;;;;;;;;;;;13876:36;;;;;;13931:10;13923:28;;:51;13952:21;13923:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13835:149::o;2924:79::-;2962:7;2989:6;;;;;;;;;;;2982:13;;2924:79;:::o;17261:579::-;3061:12;:10;:12::i;:::-;3051:22;;:6;;;;;;;;;;:22;;;3043:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17462:13:::1;17447:12;:28;;;;17496:8;17486:7;:18;;;;17530:13;17515:12;:28;;;;17567:11;17554:10;:24;;;;17599:8;17589:7;:18;;;;17629:77;17697:8;17629:63;17680:11;17629:46;17661:13;17629:27;17647:8;17629:13;:17;;:27;;;;:::i;:::-;:31;;:46;;;;:::i;:::-;:50;;:63;;;;:::i;:::-;:67;;:77;;;;:::i;:::-;17618:8;:88;;;;17734:15;17717:14;:32;;;;17796:1;17779:14;;:18;;;;:::i;:::-;17768:8;;:29;17760:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17261:579:::0;;;;;;:::o;8361:84::-;8411:13;8435:7;;;;;;;;;;;;;;;;;8428:14;;8361:84;:::o;17133:120::-;3061:12;:10;:12::i;:::-;3051:22;;:6;;;;;;;;;;:22;;;3043:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17239:6:::1;17213:15;:23;17229:6;17213:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17133:120:::0;;:::o;18475:174::-;3061:12;:10;:12::i;:::-;3051:22;;:6;;;;;;;;;;:22;;;3043:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18582:7:::1;18564:15;:25;;;;18629:12;18600:26;:41;;;;18475:174:::0;;:::o;6821:19::-;;;;;;;;;;;;;:::o;9227:156::-;9307:4;9331:44;9345:10;9357:9;9368:6;9331:13;:44::i;:::-;9324:51;;9227:156;;;;:::o;2544:21::-;;;;;;;;;;;;:::o;10000:187::-;3061:12;:10;:12::i;:::-;3051:22;;:6;;;;;;;;;;:22;;;3043:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10110:4:::1;10095:12;;:19;;;;:::i;:::-;10079:12;;:35;;10071:44;;;::::0;::::1;;10175:4;10158:12;10143;;:27;;;;:::i;:::-;10142:37;;;;:::i;:::-;10127:12;:52;;;;10000:187:::0;:::o;16968:157::-;3061:12;:10;:12::i;:::-;3051:22;;:6;;;;;;;;;;:22;;;3043:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17068:6:::1;17046:11;:19;17058:6;17046:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17111:6;17085:15;:23;17101:6;17085:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;16968:157:::0;;:::o;14663:207::-;3061:12;:10;:12::i;:::-;3051:22;;:6;;;;;;;;;;:22;;;3043:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14772:5:::1;14755:14;:22;;;;14804:4;14788:13;:20;;;;14840:6;14819:18;:27;;;;14663:207:::0;;;:::o;13606:77::-;3061:12;:10;:12::i;:::-;3051:22;;:6;;;;;;;;;;:22;;;3043:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13659:10:::1;:8;:10::i;:::-;13606:77::o:0;18811:167::-;18879:7;18906:64;18947:22;:20;:22::i;:::-;18906:36;18919:22;18939:1;18919:15;18929:4;;;;;;;;;;;18919:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;18906:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;18899:71;;18811:167;;;:::o;13399:198::-;13468:17;13488:21;13468:41;;13528:15;;;;;;;;;;;13520:33;;:69;13585:3;13566:16;13554:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;13520:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13457:140;13399:198;:::o;8732:133::-;8816:7;8834:11;:19;8846:6;8834:19;;;;;;;;;;;;;;;:28;8854:7;8834:28;;;;;;;;;;;;;;;;8827:35;;8732:133;;;;:::o;3294:244::-;3061:12;:10;:12::i;:::-;3051:22;;:6;;;;;;;;;;:22;;;3043:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3403:1:::1;3383:22;;:8;:22;;::::0;3375:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3493:8;3464:38;;3485:6;::::0;::::1;;;;;;;;3464:38;;;;;;;;;;;;3522:8;3513:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3294:244:::0;:::o;13691:136::-;3061:12;:10;:12::i;:::-;3051:22;;:6;;;;;;;;;;:22;;;3043:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13767:12:::1;;13749:15;:30;;;;13805:12;;13790;:27;;;;13691:136::o:0;6751:24::-;;;;;;;;;;;;;:::o;2265:115::-;2318:15;2361:10;2346:26;;2265:115;:::o;525:192::-;611:7;644:1;639;:6;;647:12;631:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;671:9;687:1;683;:5;;;;:::i;:::-;671:17;;708:1;701:8;;;525:192;;;;;:::o;10204:1329::-;10296:4;10322:14;:22;10337:6;10322:22;;;;;;;;;;;;;;;;;;;;;;;;;10321:23;:53;;;;;10349:14;:25;10364:9;10349:25;;;;;;;;;;;;;;;;;;;;;;;;;10348:26;10321:53;10313:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10408:6;;;;;;;;;;;10405:63;;;10424:41;10439:6;10447:9;10458:6;10424:14;:41::i;:::-;10417:48;;;;10405:63;10484:14;:22;10499:6;10484:22;;;;;;;;;;;;;;;;;;;;;;;;;10483:23;:53;;;;;10511:14;:25;10526:9;10511:25;;;;;;;;;;;;;;;;;;;;;;;;;10510:26;10483:53;10480:140;;;10560:11;;;;;;;;;;;10552:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10480:140;10654:14;:22;10669:6;10654:22;;;;;;;;;;;;;;;;;;;;;;;;;10653:23;:53;;;;;10701:4;10680:26;;:9;:26;;;;10653:53;:84;;;;;10732:4;;;;;;;;;;;10711:26;;:9;:26;;;;10653:84;:105;;;;;10754:4;;;;;;;;;;;10741:17;;:9;:17;;;;10653:105;:137;;;;;10775:15;;;;;;;;;;;10762:28;;:9;:28;;;;10653:137;:174;;;;;10807:20;;;;;;;;;;;10794:33;;:9;:33;;;;10653:174;:205;;;;;10832:15;:26;10848:9;10832:26;;;;;;;;;;;;;;;;;;;;;;;;;10831:27;10653:205;10649:397;;;10874:18;10895:20;10905:9;10895;:20::i;:::-;10874:41;;10963:15;;10952:6;10939:10;:19;;;;:::i;:::-;10938:40;;10930:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;10859:187;10649:397;11067:28;11080:6;11088;11067:12;:28::i;:::-;11112:16;:14;:16::i;:::-;11109:35;;;11131:10;:8;:10::i;:::-;11109:35;11184:53;11206:6;11184:53;;;;;;;;;;;;;;;;;:9;:17;11194:6;11184:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11164:9;:17;11174:6;11164:17;;;;;;;;;;;;;;;:73;;;;11250:22;11276:11;:19;11288:6;11276:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;11299:11;:22;11311:9;11299:22;;;;;;;;;;;;;;;;;;;;;;;;;11276:45;11275:93;;11334:34;11342:6;11350;11358:9;11334:7;:34::i;:::-;11275:93;;;11325:6;11275:93;11250:118;;11402:40;11427:14;11402:9;:20;11412:9;11402:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11379:9;:20;11389:9;11379:20;;;;;;;;;;;;;;;:63;;;;11477:9;11460:43;;11469:6;11460:43;;;11488:14;11460:43;;;;;;:::i;:::-;;;;;;;;11521:4;11514:11;;;10204:1329;;;;;;:::o;383:136::-;441:7;468:43;472:1;475;468:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;461:50;;383:136;;;;:::o;196:181::-;254:7;274:9;290:1;286;:5;;;;:::i;:::-;274:17;;315:1;310;:6;;302:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;368:1;361:8;;;196:181;;;;:::o;15083:1877::-;7049:4;7040:6;;:13;;;;;;;;;;;;;;;;;;15132:27:::1;15162:60;15178:15;;15195:26;;15162:15;:60::i;:::-;:79;;15229:12;;15162:79;;;15225:1;15162:79;15132:109;;15252:23;15278:59;15335:1;15278:52;15321:8;;15278:38;15296:19;15278:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;15252:85;;15348:20;15371:34;15389:15;15371:13;;:17;;:34;;;;:::i;:::-;15348:57;;15418:21;15456:1;15442:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15418:40;;15487:4;15469;15474:1;15469:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15513:4;;;;;;;;;;;15503;15508:1;15503:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;15530:21;15554;15530:45;;15588:6;;;;;;;;;;;:57;;;15660:12;15687:1;15703:4;15730;15750:15;15588:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15789:17;15809:40;15835:13;15809:21;:25;;:40;;;;:::i;:::-;15789:60;;15862:19;15884:40;15897:26;15921:1;15897:19;:23;;:26;;;;:::i;:::-;15884:8;;:12;;:40;;;;:::i;:::-;15862:62;;15945:26;15974:58;16030:1;15974:51;16013:11;15974:34;15988:19;15974:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;15945:87;;16043:26;16072:44;16104:11;16072:27;16086:12;;16072:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;16043:73;;16127:21;16151:39;16178:11;16151:22;16165:7;;16151:9;:13;;:22;;;;:::i;:::-;:26;;:39;;;;:::i;:::-;16127:63;;16201:24;16228:42;16258:11;16228:25;16242:10;;16228:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;16201:69;;16284:15;16312:20;;;;;;;;;;;16304:34;;16346:18;16304:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16283:86;;;16404:18;;;;;;;;;;;16396:32;;16436:16;16396:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16380:77;;;;;16492:15;;;;;;;;;;;16484:29;;16521:13;16484:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16468:71;;;;;16573:5;16560:18;;16612:1;16594:15;:19;16591:362;;;16629:6;;;;;;;;;;;:22;;;16659:18;16705:4;16729:15;16763:1;16783::::0;16803:21:::1;;;;;;;;;;;16843:15;16629:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16893:48;16905:18;16925:15;16893:48;;;;;;;:::i;:::-;;;;;;;;16591:362;15121:1839;;;;;;;;;;;;7067:5:::0;7058:6;;:14;;;;;;;;;;;;;;;;;;15083:1877::o;723:250::-;781:7;810:1;805;:6;801:47;;835:1;828:8;;;;801:47;860:9;876:1;872;:5;;;;:::i;:::-;860:17;;905:1;900;896;:5;;;;:::i;:::-;:10;888:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;964:1;957:8;;;723:250;;;;;:::o;979:132::-;1037:7;1064:39;1068:1;1071;1064:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1057:46;;979:132;;;;:::o;11545:330::-;11638:4;11675:53;11697:6;11675:53;;;;;;;;;;;;;;;;;:9;:17;11685:6;11675:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11655:9;:17;11665:6;11655:17;;;;;;;;;;;;;;;:73;;;;11762:32;11787:6;11762:9;:20;11772:9;11762:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11739:9;:20;11749:9;11739:20;;;;;;;;;;;;;;;:55;;;;11827:9;11810:35;;11819:6;11810:35;;;11838:6;11810:35;;;;;;:::i;:::-;;;;;;;;11863:4;11856:11;;11545:330;;;;;:::o;11883:166::-;11980:12;;11970:6;:22;;:49;;;;11996:15;:23;12012:6;11996:23;;;;;;;;;;;;;;;;;;;;;;;;;11970:49;11962:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11883:166;;:::o;13194:197::-;13243:4;13281;;;;;;;;;;;13267:18;;:10;:18;;;;:38;;;;;13299:6;;;;;;;;;;;13298:7;13267:38;:62;;;;;13318:11;;;;;;;;;;;13267:62;:116;;;;;13370:13;;13342:9;:24;13360:4;13342:24;;;;;;;;;;;;;;;;:41;;13267:116;13260:123;;13194:197;:::o;12179:1007::-;12265:7;12295:18;12316;;12295:39;;12363:4;;;;;;;;;;;12350:17;;:9;:17;;;12347:154;;12397:14;;12384:27;;12347:154;;;12442:4;;;;;;;;;;;12432:14;;:6;:14;;;12429:72;;12476:13;;12463:26;;12429:72;12347:154;12513:17;12533:62;12591:3;12574:14;;:20;;;;:::i;:::-;12533:36;12558:10;12533:20;12544:8;;12533:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;12513:82;;12606:18;12627:36;12654:8;;12627:22;12641:7;;12627:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;12606:57;;12674:22;12699:25;12713:10;12699:9;:13;;:25;;;;:::i;:::-;12674:50;;12764:44;12793:14;12764:9;:24;12782:4;12764:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;12737:9;:24;12755:4;12737:24;;;;;;;;;;;;;;;:71;;;;12848:42;12879:10;12848:9;:26;12858:15;;;;;;;;;;;12848:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;12819:9;:26;12829:15;;;;;;;;;;;12819:26;;;;;;;;;;;;;;;:71;;;;12931:4;12906:47;;12915:6;12906:47;;;12938:14;12906:47;;;;;;:::i;:::-;;;;;;;;13000:1;12987:10;:14;12984:154;;;13032:28;13049:10;13032:12;;:16;;:28;;;;:::i;:::-;13017:12;:43;;;;13097:4;;;;;;;;;;;13080:34;;13089:6;13080:34;;;13103:10;13080:34;;;;;;:::i;:::-;;;;;;;;12984:154;13157:21;13168:9;13157:6;:10;;:21;;;;:::i;:::-;13150:28;;;;;;12179:1007;;;;;:::o;1117:189::-;1203:7;1235:1;1231;:5;1238:12;1223:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1262:9;1278:1;1274;:5;;;;:::i;:::-;1262:17;;1297:1;1290:8;;;1117:189;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:90;368:7;411:5;404:13;397:21;386:32;;334:90;;;:::o;430:116::-;500:21;515:5;500:21;:::i;:::-;493:5;490:32;480:60;;536:1;533;526:12;480:60;430:116;:::o;552:133::-;595:5;633:6;620:20;611:29;;649:30;673:5;649:30;:::i;:::-;552:133;;;;:::o;691:77::-;728:7;757:5;746:16;;691:77;;;:::o;774:122::-;847:24;865:5;847:24;:::i;:::-;840:5;837:35;827:63;;886:1;883;876:12;827:63;774:122;:::o;902:139::-;948:5;986:6;973:20;964:29;;1002:33;1029:5;1002:33;:::i;:::-;902:139;;;;:::o;1047:468::-;1112:6;1120;1169:2;1157:9;1148:7;1144:23;1140:32;1137:119;;;1175:79;;:::i;:::-;1137:119;1295:1;1320:50;1362:7;1353:6;1342:9;1338:22;1320:50;:::i;:::-;1310:60;;1266:114;1419:2;1445:53;1490:7;1481:6;1470:9;1466:22;1445:53;:::i;:::-;1435:63;;1390:118;1047:468;;;;;:::o;1521:118::-;1608:24;1626:5;1608:24;:::i;:::-;1603:3;1596:37;1521:118;;:::o;1645:222::-;1738:4;1776:2;1765:9;1761:18;1753:26;;1789:71;1857:1;1846:9;1842:17;1833:6;1789:71;:::i;:::-;1645:222;;;;:::o;1873:126::-;1910:7;1950:42;1943:5;1939:54;1928:65;;1873:126;;;:::o;2005:96::-;2042:7;2071:24;2089:5;2071:24;:::i;:::-;2060:35;;2005:96;;;:::o;2107:122::-;2180:24;2198:5;2180:24;:::i;:::-;2173:5;2170:35;2160:63;;2219:1;2216;2209:12;2160:63;2107:122;:::o;2235:139::-;2281:5;2319:6;2306:20;2297:29;;2335:33;2362:5;2335:33;:::i;:::-;2235:139;;;;:::o;2380:329::-;2439:6;2488:2;2476:9;2467:7;2463:23;2459:32;2456:119;;;2494:79;;:::i;:::-;2456:119;2614:1;2639:53;2684:7;2675:6;2664:9;2660:22;2639:53;:::i;:::-;2629:63;;2585:117;2380:329;;;;:::o;2715:109::-;2796:21;2811:5;2796:21;:::i;:::-;2791:3;2784:34;2715:109;;:::o;2830:210::-;2917:4;2955:2;2944:9;2940:18;2932:26;;2968:65;3030:1;3019:9;3015:17;3006:6;2968:65;:::i;:::-;2830:210;;;;:::o;3046:99::-;3098:6;3132:5;3126:12;3116:22;;3046:99;;;:::o;3151:169::-;3235:11;3269:6;3264:3;3257:19;3309:4;3304:3;3300:14;3285:29;;3151:169;;;;:::o;3326:246::-;3407:1;3417:113;3431:6;3428:1;3425:13;3417:113;;;3516:1;3511:3;3507:11;3501:18;3497:1;3492:3;3488:11;3481:39;3453:2;3450:1;3446:10;3441:15;;3417:113;;;3564:1;3555:6;3550:3;3546:16;3539:27;3388:184;3326:246;;;:::o;3578:102::-;3619:6;3670:2;3666:7;3661:2;3654:5;3650:14;3646:28;3636:38;;3578:102;;;:::o;3686:377::-;3774:3;3802:39;3835:5;3802:39;:::i;:::-;3857:71;3921:6;3916:3;3857:71;:::i;:::-;3850:78;;3937:65;3995:6;3990:3;3983:4;3976:5;3972:16;3937:65;:::i;:::-;4027:29;4049:6;4027:29;:::i;:::-;4022:3;4018:39;4011:46;;3778:285;3686:377;;;;:::o;4069:313::-;4182:4;4220:2;4209:9;4205:18;4197:26;;4269:9;4263:4;4259:20;4255:1;4244:9;4240:17;4233:47;4297:78;4370:4;4361:6;4297:78;:::i;:::-;4289:86;;4069:313;;;;:::o;4388:474::-;4456:6;4464;4513:2;4501:9;4492:7;4488:23;4484:32;4481:119;;;4519:79;;:::i;:::-;4481:119;4639:1;4664:53;4709:7;4700:6;4689:9;4685:22;4664:53;:::i;:::-;4654:63;;4610:117;4766:2;4792:53;4837:7;4828:6;4817:9;4813:22;4792:53;:::i;:::-;4782:63;;4737:118;4388:474;;;;;:::o;4868:::-;4936:6;4944;4993:2;4981:9;4972:7;4968:23;4964:32;4961:119;;;4999:79;;:::i;:::-;4961:119;5119:1;5144:53;5189:7;5180:6;5169:9;5165:22;5144:53;:::i;:::-;5134:63;;5090:117;5246:2;5272:53;5317:7;5308:6;5297:9;5293:22;5272:53;:::i;:::-;5262:63;;5217:118;4868:474;;;;;:::o;5348:117::-;5457:1;5454;5447:12;5471:180;5519:77;5516:1;5509:88;5616:4;5613:1;5606:15;5640:4;5637:1;5630:15;5657:281;5740:27;5762:4;5740:27;:::i;:::-;5732:6;5728:40;5870:6;5858:10;5855:22;5834:18;5822:10;5819:34;5816:62;5813:88;;;5881:18;;:::i;:::-;5813:88;5921:10;5917:2;5910:22;5700:238;5657:281;;:::o;5944:129::-;5978:6;6005:20;;:::i;:::-;5995:30;;6034:33;6062:4;6054:6;6034:33;:::i;:::-;5944:129;;;:::o;6079:311::-;6156:4;6246:18;6238:6;6235:30;6232:56;;;6268:18;;:::i;:::-;6232:56;6318:4;6310:6;6306:17;6298:25;;6378:4;6372;6368:15;6360:23;;6079:311;;;:::o;6396:117::-;6505:1;6502;6495:12;6536:710;6632:5;6657:81;6673:64;6730:6;6673:64;:::i;:::-;6657:81;:::i;:::-;6648:90;;6758:5;6787:6;6780:5;6773:21;6821:4;6814:5;6810:16;6803:23;;6874:4;6866:6;6862:17;6854:6;6850:30;6903:3;6895:6;6892:15;6889:122;;;6922:79;;:::i;:::-;6889:122;7037:6;7020:220;7054:6;7049:3;7046:15;7020:220;;;7129:3;7158:37;7191:3;7179:10;7158:37;:::i;:::-;7153:3;7146:50;7225:4;7220:3;7216:14;7209:21;;7096:144;7080:4;7075:3;7071:14;7064:21;;7020:220;;;7024:21;6638:608;;6536:710;;;;;:::o;7269:370::-;7340:5;7389:3;7382:4;7374:6;7370:17;7366:27;7356:122;;7397:79;;:::i;:::-;7356:122;7514:6;7501:20;7539:94;7629:3;7621:6;7614:4;7606:6;7602:17;7539:94;:::i;:::-;7530:103;;7346:293;7269:370;;;;:::o;7645:678::-;7735:6;7743;7792:2;7780:9;7771:7;7767:23;7763:32;7760:119;;;7798:79;;:::i;:::-;7760:119;7946:1;7935:9;7931:17;7918:31;7976:18;7968:6;7965:30;7962:117;;;7998:79;;:::i;:::-;7962:117;8103:78;8173:7;8164:6;8153:9;8149:22;8103:78;:::i;:::-;8093:88;;7889:302;8230:2;8256:50;8298:7;8289:6;8278:9;8274:22;8256:50;:::i;:::-;8246:60;;8201:115;7645:678;;;;;:::o;8329:619::-;8406:6;8414;8422;8471:2;8459:9;8450:7;8446:23;8442:32;8439:119;;;8477:79;;:::i;:::-;8439:119;8597:1;8622:53;8667:7;8658:6;8647:9;8643:22;8622:53;:::i;:::-;8612:63;;8568:117;8724:2;8750:53;8795:7;8786:6;8775:9;8771:22;8750:53;:::i;:::-;8740:63;;8695:118;8852:2;8878:53;8923:7;8914:6;8903:9;8899:22;8878:53;:::i;:::-;8868:63;;8823:118;8329:619;;;;;:::o;8954:323::-;9010:6;9059:2;9047:9;9038:7;9034:23;9030:32;9027:119;;;9065:79;;:::i;:::-;9027:119;9185:1;9210:50;9252:7;9243:6;9232:9;9228:22;9210:50;:::i;:::-;9200:60;;9156:114;8954:323;;;;:::o;9283:86::-;9318:7;9358:4;9351:5;9347:16;9336:27;;9283:86;;;:::o;9375:112::-;9458:22;9474:5;9458:22;:::i;:::-;9453:3;9446:35;9375:112;;:::o;9493:214::-;9582:4;9620:2;9609:9;9605:18;9597:26;;9633:67;9697:1;9686:9;9682:17;9673:6;9633:67;:::i;:::-;9493:214;;;;:::o;9713:468::-;9778:6;9786;9835:2;9823:9;9814:7;9810:23;9806:32;9803:119;;;9841:79;;:::i;:::-;9803:119;9961:1;9986:53;10031:7;10022:6;10011:9;10007:22;9986:53;:::i;:::-;9976:63;;9932:117;10088:2;10114:50;10156:7;10147:6;10136:9;10132:22;10114:50;:::i;:::-;10104:60;;10059:115;9713:468;;;;;:::o;10187:329::-;10246:6;10295:2;10283:9;10274:7;10270:23;10266:32;10263:119;;;10301:79;;:::i;:::-;10263:119;10421:1;10446:53;10491:7;10482:6;10471:9;10467:22;10446:53;:::i;:::-;10436:63;;10392:117;10187:329;;;;:::o;10522:911::-;10617:6;10625;10633;10641;10649;10698:3;10686:9;10677:7;10673:23;10669:33;10666:120;;;10705:79;;:::i;:::-;10666:120;10825:1;10850:53;10895:7;10886:6;10875:9;10871:22;10850:53;:::i;:::-;10840:63;;10796:117;10952:2;10978:53;11023:7;11014:6;11003:9;10999:22;10978:53;:::i;:::-;10968:63;;10923:118;11080:2;11106:53;11151:7;11142:6;11131:9;11127:22;11106:53;:::i;:::-;11096:63;;11051:118;11208:2;11234:53;11279:7;11270:6;11259:9;11255:22;11234:53;:::i;:::-;11224:63;;11179:118;11336:3;11363:53;11408:7;11399:6;11388:9;11384:22;11363:53;:::i;:::-;11353:63;;11307:119;10522:911;;;;;;;;:::o;11439:118::-;11526:24;11544:5;11526:24;:::i;:::-;11521:3;11514:37;11439:118;;:::o;11563:222::-;11656:4;11694:2;11683:9;11679:18;11671:26;;11707:71;11775:1;11764:9;11760:17;11751:6;11707:71;:::i;:::-;11563:222;;;;:::o;11791:1057::-;11895:6;11903;11911;11919;11927;11935;11984:3;11972:9;11963:7;11959:23;11955:33;11952:120;;;11991:79;;:::i;:::-;11952:120;12111:1;12136:53;12181:7;12172:6;12161:9;12157:22;12136:53;:::i;:::-;12126:63;;12082:117;12238:2;12264:53;12309:7;12300:6;12289:9;12285:22;12264:53;:::i;:::-;12254:63;;12209:118;12366:2;12392:53;12437:7;12428:6;12417:9;12413:22;12392:53;:::i;:::-;12382:63;;12337:118;12494:2;12520:53;12565:7;12556:6;12545:9;12541:22;12520:53;:::i;:::-;12510:63;;12465:118;12622:3;12649:53;12694:7;12685:6;12674:9;12670:22;12649:53;:::i;:::-;12639:63;;12593:119;12751:3;12778:53;12823:7;12814:6;12803:9;12799:22;12778:53;:::i;:::-;12768:63;;12722:119;11791:1057;;;;;;;;:::o;12854:619::-;12931:6;12939;12947;12996:2;12984:9;12975:7;12971:23;12967:32;12964:119;;;13002:79;;:::i;:::-;12964:119;13122:1;13147:53;13192:7;13183:6;13172:9;13168:22;13147:53;:::i;:::-;13137:63;;13093:117;13249:2;13275:53;13320:7;13311:6;13300:9;13296:22;13275:53;:::i;:::-;13265:63;;13220:118;13377:2;13403:53;13448:7;13439:6;13428:9;13424:22;13403:53;:::i;:::-;13393:63;;13348:118;12854:619;;;;;:::o;13479:474::-;13547:6;13555;13604:2;13592:9;13583:7;13579:23;13575:32;13572:119;;;13610:79;;:::i;:::-;13572:119;13730:1;13755:53;13800:7;13791:6;13780:9;13776:22;13755:53;:::i;:::-;13745:63;;13701:117;13857:2;13883:53;13928:7;13919:6;13908:9;13904:22;13883:53;:::i;:::-;13873:63;;13828:118;13479:474;;;;;:::o;13959:60::-;13987:3;14008:5;14001:12;;13959:60;;;:::o;14025:142::-;14075:9;14108:53;14126:34;14135:24;14153:5;14135:24;:::i;:::-;14126:34;:::i;:::-;14108:53;:::i;:::-;14095:66;;14025:142;;;:::o;14173:126::-;14223:9;14256:37;14287:5;14256:37;:::i;:::-;14243:50;;14173:126;;;:::o;14305:144::-;14373:9;14406:37;14437:5;14406:37;:::i;:::-;14393:50;;14305:144;;;:::o;14455:167::-;14560:55;14609:5;14560:55;:::i;:::-;14555:3;14548:68;14455:167;;:::o;14628:258::-;14739:4;14777:2;14766:9;14762:18;14754:26;;14790:89;14876:1;14865:9;14861:17;14852:6;14790:89;:::i;:::-;14628:258;;;;:::o;14892:182::-;15032:34;15028:1;15020:6;15016:14;15009:58;14892:182;:::o;15080:366::-;15222:3;15243:67;15307:2;15302:3;15243:67;:::i;:::-;15236:74;;15319:93;15408:3;15319:93;:::i;:::-;15437:2;15432:3;15428:12;15421:19;;15080:366;;;:::o;15452:419::-;15618:4;15656:2;15645:9;15641:18;15633:26;;15705:9;15699:4;15695:20;15691:1;15680:9;15676:17;15669:47;15733:131;15859:4;15733:131;:::i;:::-;15725:139;;15452:419;;;:::o;15877:180::-;15925:77;15922:1;15915:88;16022:4;16019:1;16012:15;16046:4;16043:1;16036:15;16063:180;16111:77;16108:1;16101:88;16208:4;16205:1;16198:15;16232:4;16229:1;16222:15;16249:233;16288:3;16311:24;16329:5;16311:24;:::i;:::-;16302:33;;16357:66;16350:5;16347:77;16344:103;;16427:18;;:::i;:::-;16344:103;16474:1;16467:5;16463:13;16456:20;;16249:233;;;:::o;16488:180::-;16536:77;16533:1;16526:88;16633:4;16630:1;16623:15;16657:4;16654:1;16647:15;16674:185;16714:1;16731:20;16749:1;16731:20;:::i;:::-;16726:25;;16765:20;16783:1;16765:20;:::i;:::-;16760:25;;16804:1;16794:35;;16809:18;;:::i;:::-;16794:35;16851:1;16848;16844:9;16839:14;;16674:185;;;;:::o;16865:410::-;16905:7;16928:20;16946:1;16928:20;:::i;:::-;16923:25;;16962:20;16980:1;16962:20;:::i;:::-;16957:25;;17017:1;17014;17010:9;17039:30;17057:11;17039:30;:::i;:::-;17028:41;;17218:1;17209:7;17205:15;17202:1;17199:22;17179:1;17172:9;17152:83;17129:139;;17248:18;;:::i;:::-;17129:139;16913:362;16865:410;;;;:::o;17281:143::-;17338:5;17369:6;17363:13;17354:22;;17385:33;17412:5;17385:33;:::i;:::-;17281:143;;;;:::o;17430:351::-;17500:6;17549:2;17537:9;17528:7;17524:23;17520:32;17517:119;;;17555:79;;:::i;:::-;17517:119;17675:1;17700:64;17756:7;17747:6;17736:9;17732:22;17700:64;:::i;:::-;17690:74;;17646:128;17430:351;;;;:::o;17787:332::-;17908:4;17946:2;17935:9;17931:18;17923:26;;17959:71;18027:1;18016:9;18012:17;18003:6;17959:71;:::i;:::-;18040:72;18108:2;18097:9;18093:18;18084:6;18040:72;:::i;:::-;17787:332;;;;;:::o;18125:137::-;18179:5;18210:6;18204:13;18195:22;;18226:30;18250:5;18226:30;:::i;:::-;18125:137;;;;:::o;18268:345::-;18335:6;18384:2;18372:9;18363:7;18359:23;18355:32;18352:119;;;18390:79;;:::i;:::-;18352:119;18510:1;18535:61;18588:7;18579:6;18568:9;18564:22;18535:61;:::i;:::-;18525:71;;18481:125;18268:345;;;;:::o;18619:179::-;18759:31;18755:1;18747:6;18743:14;18736:55;18619:179;:::o;18804:366::-;18946:3;18967:67;19031:2;19026:3;18967:67;:::i;:::-;18960:74;;19043:93;19132:3;19043:93;:::i;:::-;19161:2;19156:3;19152:12;19145:19;;18804:366;;;:::o;19176:419::-;19342:4;19380:2;19369:9;19365:18;19357:26;;19429:9;19423:4;19419:20;19415:1;19404:9;19400:17;19393:47;19457:131;19583:4;19457:131;:::i;:::-;19449:139;;19176:419;;;:::o;19601:225::-;19741:34;19737:1;19729:6;19725:14;19718:58;19810:8;19805:2;19797:6;19793:15;19786:33;19601:225;:::o;19832:366::-;19974:3;19995:67;20059:2;20054:3;19995:67;:::i;:::-;19988:74;;20071:93;20160:3;20071:93;:::i;:::-;20189:2;20184:3;20180:12;20173:19;;19832:366;;;:::o;20204:419::-;20370:4;20408:2;20397:9;20393:18;20385:26;;20457:9;20451:4;20447:20;20443:1;20432:9;20428:17;20421:47;20485:131;20611:4;20485:131;:::i;:::-;20477:139;;20204:419;;;:::o;20629:194::-;20669:4;20689:20;20707:1;20689:20;:::i;:::-;20684:25;;20723:20;20741:1;20723:20;:::i;:::-;20718:25;;20767:1;20764;20760:9;20752:17;;20791:1;20785:4;20782:11;20779:37;;;20796:18;;:::i;:::-;20779:37;20629:194;;;;:::o;20829:163::-;20969:15;20965:1;20957:6;20953:14;20946:39;20829:163;:::o;20998:366::-;21140:3;21161:67;21225:2;21220:3;21161:67;:::i;:::-;21154:74;;21237:93;21326:3;21237:93;:::i;:::-;21355:2;21350:3;21346:12;21339:19;;20998:366;;;:::o;21370:419::-;21536:4;21574:2;21563:9;21559:18;21551:26;;21623:9;21617:4;21613:20;21609:1;21598:9;21594:17;21587:47;21651:131;21777:4;21651:131;:::i;:::-;21643:139;;21370:419;;;:::o;21795:170::-;21935:22;21931:1;21923:6;21919:14;21912:46;21795:170;:::o;21971:366::-;22113:3;22134:67;22198:2;22193:3;22134:67;:::i;:::-;22127:74;;22210:93;22299:3;22210:93;:::i;:::-;22328:2;22323:3;22319:12;22312:19;;21971:366;;;:::o;22343:419::-;22509:4;22547:2;22536:9;22532:18;22524:26;;22596:9;22590:4;22586:20;22582:1;22571:9;22567:17;22560:47;22624:131;22750:4;22624:131;:::i;:::-;22616:139;;22343:419;;;:::o;22768:191::-;22808:3;22827:20;22845:1;22827:20;:::i;:::-;22822:25;;22861:20;22879:1;22861:20;:::i;:::-;22856:25;;22904:1;22901;22897:9;22890:16;;22925:3;22922:1;22919:10;22916:36;;;22932:18;;:::i;:::-;22916:36;22768:191;;;;:::o;22965:249::-;23105:34;23101:1;23093:6;23089:14;23082:58;23174:32;23169:2;23161:6;23157:15;23150:57;22965:249;:::o;23220:366::-;23362:3;23383:67;23447:2;23442:3;23383:67;:::i;:::-;23376:74;;23459:93;23548:3;23459:93;:::i;:::-;23577:2;23572:3;23568:12;23561:19;;23220:366;;;:::o;23592:419::-;23758:4;23796:2;23785:9;23781:18;23773:26;;23845:9;23839:4;23835:20;23831:1;23820:9;23816:17;23809:47;23873:131;23999:4;23873:131;:::i;:::-;23865:139;;23592:419;;;:::o;24017:177::-;24157:29;24153:1;24145:6;24141:14;24134:53;24017:177;:::o;24200:366::-;24342:3;24363:67;24427:2;24422:3;24363:67;:::i;:::-;24356:74;;24439:93;24528:3;24439:93;:::i;:::-;24557:2;24552:3;24548:12;24541:19;;24200:366;;;:::o;24572:419::-;24738:4;24776:2;24765:9;24761:18;24753:26;;24825:9;24819:4;24815:20;24811:1;24800:9;24796:17;24789:47;24853:131;24979:4;24853:131;:::i;:::-;24845:139;;24572:419;;;:::o;24997:85::-;25042:7;25071:5;25060:16;;24997:85;;;:::o;25088:158::-;25146:9;25179:61;25197:42;25206:32;25232:5;25206:32;:::i;:::-;25197:42;:::i;:::-;25179:61;:::i;:::-;25166:74;;25088:158;;;:::o;25252:147::-;25347:45;25386:5;25347:45;:::i;:::-;25342:3;25335:58;25252:147;;:::o;25405:114::-;25472:6;25506:5;25500:12;25490:22;;25405:114;;;:::o;25525:184::-;25624:11;25658:6;25653:3;25646:19;25698:4;25693:3;25689:14;25674:29;;25525:184;;;;:::o;25715:132::-;25782:4;25805:3;25797:11;;25835:4;25830:3;25826:14;25818:22;;25715:132;;;:::o;25853:108::-;25930:24;25948:5;25930:24;:::i;:::-;25925:3;25918:37;25853:108;;:::o;25967:179::-;26036:10;26057:46;26099:3;26091:6;26057:46;:::i;:::-;26135:4;26130:3;26126:14;26112:28;;25967:179;;;;:::o;26152:113::-;26222:4;26254;26249:3;26245:14;26237:22;;26152:113;;;:::o;26301:732::-;26420:3;26449:54;26497:5;26449:54;:::i;:::-;26519:86;26598:6;26593:3;26519:86;:::i;:::-;26512:93;;26629:56;26679:5;26629:56;:::i;:::-;26708:7;26739:1;26724:284;26749:6;26746:1;26743:13;26724:284;;;26825:6;26819:13;26852:63;26911:3;26896:13;26852:63;:::i;:::-;26845:70;;26938:60;26991:6;26938:60;:::i;:::-;26928:70;;26784:224;26771:1;26768;26764:9;26759:14;;26724:284;;;26728:14;27024:3;27017:10;;26425:608;;;26301:732;;;;:::o;27039:831::-;27302:4;27340:3;27329:9;27325:19;27317:27;;27354:71;27422:1;27411:9;27407:17;27398:6;27354:71;:::i;:::-;27435:80;27511:2;27500:9;27496:18;27487:6;27435:80;:::i;:::-;27562:9;27556:4;27552:20;27547:2;27536:9;27532:18;27525:48;27590:108;27693:4;27684:6;27590:108;:::i;:::-;27582:116;;27708:72;27776:2;27765:9;27761:18;27752:6;27708:72;:::i;:::-;27790:73;27858:3;27847:9;27843:19;27834:6;27790:73;:::i;:::-;27039:831;;;;;;;;:::o;27876:147::-;27977:11;28014:3;27999:18;;27876:147;;;;:::o;28029:114::-;;:::o;28149:398::-;28308:3;28329:83;28410:1;28405:3;28329:83;:::i;:::-;28322:90;;28421:93;28510:3;28421:93;:::i;:::-;28539:1;28534:3;28530:11;28523:18;;28149:398;;;:::o;28553:379::-;28737:3;28759:147;28902:3;28759:147;:::i;:::-;28752:154;;28923:3;28916:10;;28553:379;;;:::o;28938:807::-;29187:4;29225:3;29214:9;29210:19;29202:27;;29239:71;29307:1;29296:9;29292:17;29283:6;29239:71;:::i;:::-;29320:72;29388:2;29377:9;29373:18;29364:6;29320:72;:::i;:::-;29402:80;29478:2;29467:9;29463:18;29454:6;29402:80;:::i;:::-;29492;29568:2;29557:9;29553:18;29544:6;29492:80;:::i;:::-;29582:73;29650:3;29639:9;29635:19;29626:6;29582:73;:::i;:::-;29665;29733:3;29722:9;29718:19;29709:6;29665:73;:::i;:::-;28938:807;;;;;;;;;:::o;29751:663::-;29839:6;29847;29855;29904:2;29892:9;29883:7;29879:23;29875:32;29872:119;;;29910:79;;:::i;:::-;29872:119;30030:1;30055:64;30111:7;30102:6;30091:9;30087:22;30055:64;:::i;:::-;30045:74;;30001:128;30168:2;30194:64;30250:7;30241:6;30230:9;30226:22;30194:64;:::i;:::-;30184:74;;30139:129;30307:2;30333:64;30389:7;30380:6;30369:9;30365:22;30333:64;:::i;:::-;30323:74;;30278:129;29751:663;;;;;:::o;30420:332::-;30541:4;30579:2;30568:9;30564:18;30556:26;;30592:71;30660:1;30649:9;30645:17;30636:6;30592:71;:::i;:::-;30673:72;30741:2;30730:9;30726:18;30717:6;30673:72;:::i;:::-;30420:332;;;;;:::o;30758:220::-;30898:34;30894:1;30886:6;30882:14;30875:58;30967:3;30962:2;30954:6;30950:15;30943:28;30758:220;:::o;30984:366::-;31126:3;31147:67;31211:2;31206:3;31147:67;:::i;:::-;31140:74;;31223:93;31312:3;31223:93;:::i;:::-;31341:2;31336:3;31332:12;31325:19;;30984:366;;;:::o;31356:419::-;31522:4;31560:2;31549:9;31545:18;31537:26;;31609:9;31603:4;31599:20;31595:1;31584:9;31580:17;31573:47;31637:131;31763:4;31637:131;:::i;:::-;31629:139;;31356:419;;;:::o;31781:167::-;31921:19;31917:1;31909:6;31905:14;31898:43;31781:167;:::o;31954:366::-;32096:3;32117:67;32181:2;32176:3;32117:67;:::i;:::-;32110:74;;32193:93;32282:3;32193:93;:::i;:::-;32311:2;32306:3;32302:12;32295:19;;31954:366;;;:::o;32326:419::-;32492:4;32530:2;32519:9;32515:18;32507:26;;32579:9;32573:4;32569:20;32565:1;32554:9;32550:17;32543:47;32607:131;32733:4;32607:131;:::i;:::-;32599:139;;32326:419;;;:::o

Swarm Source

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