ETH Price: $3,472.81 (+0.68%)
Gas: 6 Gwei

Token

Pepi (PEPI)
 

Overview

Max Total Supply

100,000,000 PEPI

Holders

295

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
18,904,944.530372945 PEPI

Value
$0.00
0x65ca07a9fd75e4b12749ee73af211a0a2d9d01c6
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:
PEPICOIN

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 2024-03-14
*/

/**
 *Submitted for verification at Etherscan.io on 2023-11-19
*/

//SPDX-License-Identifier: Unlicensed

/* 

 _______  _______  _______  ___  
|       ||       ||       ||   | 
|    _  ||    ___||    _  ||   | 
|   |_| ||   |___ |   |_| ||   | 
|    ___||    ___||    ___||   | 
|   |    |   |___ |   |    |   | 
|___|    |_______||___|    |___| 

*/

pragma solidity 0.8.21;


interface IERC20 {

    function totalSupply() external view returns (uint256);
    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);
}

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

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

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

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

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

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

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

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

interface IPancakePair {
    function sync() external;
}

interface IDEXRouter {

    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

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

}

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
   
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

contract PEPICOIN is IERC20, Ownable {
    using SafeMath for uint256;
    
    address WETH;
    address constant DEAD          = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO          = 0x0000000000000000000000000000000000000000;

    string _name;
    string _symbol;
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1 * 10**8 * 10**_decimals; 
    uint256 public _maxTxAmount = (_totalSupply * 1) / 100; // 1%
    uint256 public _maxWalletSize = (_totalSupply * 1) / 100; // 1%  

    mapping (address => uint256) public _rOwned;
    uint256 public _totalProportion = _totalSupply;

    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) isCooldownExempt;    
    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
 
    uint256 liquidityFeeBuy = 0; 
    uint256 liquidityFeeSell = 0;

    uint256 TeamFeeBuy = 1;  
    uint256 TeamFeeSell = 0;  

    uint256 marketingFeeBuy = 2;   
    uint256 marketingFeeSell = 2;   

    uint256 reflectionFeeBuy = 0;   
    uint256 reflectionFeeSell = 1;  

    uint256 totalFeeBuy = marketingFeeBuy + liquidityFeeBuy + TeamFeeBuy + reflectionFeeBuy;     
    uint256 totalFeeSell = marketingFeeSell + liquidityFeeSell + TeamFeeSell + reflectionFeeSell; 

    uint256 feeDenominator = 100; 
       
    address autoLPReceiver;
    address marketingReceiver;
    address teamReceiver;

    uint256 targetLiquidity = 100;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    bool public tradingOpen = false;

    bool public buyCooldownEnabled = true;
    uint8 public CooldownTimerInterval = 10; //seconds
    mapping (address => uint) public CooldownTimer;
    
    bool public claimingFees = true; 
    bool alternateSwaps = true;  
    uint256 smallSwapThreshold = _totalSupply * 1 / 1000; // .1%
    uint256 largeSwapThreshold = _totalSupply * 2 / 1000; // .2%

    uint256 public swapThreshold = smallSwapThreshold;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor (address swapRouterAddress, string memory tName, string memory tSymbol) {
        _name = tName;
        _symbol = tSymbol;
        router = IDEXRouter(swapRouterAddress);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));

        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][msg.sender] = type(uint256).max;

        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(router)] = true;
	    isTxLimitExempt[pair] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[marketingReceiver] = true;
        isFeeExempt[msg.sender] = true;
        isCooldownExempt[msg.sender] = true;
        isCooldownExempt[DEAD] = true;
        isCooldownExempt[address(this)] = true;

        
        autoLPReceiver = address(0x3297149AddBFEC4d854E9A3d51A8aF0f8D27eAce);
        teamReceiver = address(0x5E8516Fb995857F57826210FeCb6B2eE56D626a8);
        marketingReceiver = address(0x0bcCd153CC76EfBE7C98066841A875027709799d);

        _rOwned[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 returns (uint8) { return _decimals; }
    function name() external view returns (string memory) { return _name; }
    function symbol() external view returns (string memory) { return _symbol; }
    function getOwner() external view returns (address) { return owner(); }
    function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
       

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

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

        if (recipient != pair && recipient != DEAD && recipient != marketingReceiver && !isTxLimitExempt[recipient]) {
            require(balanceOf(recipient) + amount <= _maxWalletSize, "Max Wallet Exceeded");

        if (sender == pair &&
            buyCooldownEnabled &&
            !isCooldownExempt[recipient]) {
            require(CooldownTimer[recipient] < block.timestamp,"Please wait for between buys");
            CooldownTimer[recipient] = block.timestamp + CooldownTimerInterval;
        }
        
        }
        
        if(!isTxLimitExempt[sender]) {
            require(amount <= _maxTxAmount, "Transaction Amount Exceeded");
        }
     
        if (recipient != pair && recipient != DEAD && !isTxLimitExempt[recipient]) {
            require(tradingOpen,"Trading not open yet");
        
        }

        if(shouldSwapBack()){ swapBack(); }

        uint256 proportionAmount = tokensToProportion(amount);

        _rOwned[sender] = _rOwned[sender].sub(proportionAmount, "Insufficient Balance");

        uint256 proportionReceived = shouldTakeFee(sender) && shouldTakeFee(recipient) ? takeFeeInProportions(sender == pair? true : false, sender, recipient, proportionAmount) : proportionAmount;
        _rOwned[recipient] = _rOwned[recipient].add(proportionReceived);

        emit Transfer(sender, recipient, tokenFromReflection(proportionReceived));
        return true;
    }

    function tokensToProportion(uint256 tokens) public view returns (uint256) {
        return tokens.mul(_totalProportion).div(_totalSupply);
    }

    function tokenFromReflection(uint256 proportion) public view returns (uint256) {
        return proportion.mul(_totalSupply).div(_totalProportion);
    }

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

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

    }

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

    function getTotalFeeBuy(bool) public view returns (uint256) {
        return totalFeeBuy;
    }

    function getTotalFeeSell(bool) public view returns (uint256) {
        return totalFeeSell;
    }

    function takeFeeInProportions(bool buying, address sender, address receiver, uint256 proportionAmount) internal returns (uint256) {
        uint256 proportionFeeAmount = buying == true? proportionAmount.mul(getTotalFeeBuy(receiver == pair)).div(feeDenominator) :
        proportionAmount.mul(getTotalFeeSell(receiver == pair)).div(feeDenominator);

        
        uint256 proportionReflected = buying == true? proportionFeeAmount.mul(reflectionFeeBuy).div(totalFeeBuy) :
        proportionFeeAmount.mul(reflectionFeeSell).div(totalFeeSell);

        _totalProportion = _totalProportion.sub(proportionReflected);

        
        uint256 _proportionToContract = proportionFeeAmount.sub(proportionReflected);
        _rOwned[address(this)] = _rOwned[address(this)].add(_proportionToContract);

        emit Transfer(sender, address(this), tokenFromReflection(_proportionToContract));
        emit Reflect(proportionReflected, _totalProportion);
        return proportionAmount.sub(proportionFeeAmount);
    }

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

        emit ClearStuck(amountPercentage);
    }

     function clearForeignToken
     (address tokenAddress, uint256 tokens) 
     external onlyOwner returns (bool) {
     require(tokenAddress != address(this), "Owner cannot claim native tokens"); 
     if(tokens == 0){
            tokens = IERC20(tokenAddress).balanceOf(address(this));
        }
        emit ClearToken(tokenAddress, tokens);
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
       
    }
  
      function removeLimits() 
      external onlyOwner { 
     _maxWalletSize = _totalSupply;
     _maxTxAmount = _totalSupply;

    }

    function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner {
        require(accounts.length == amounts.length, "Lengths do not match.");
        for (uint16 i = 0; i < accounts.length; i++) {
        require(balanceOf(msg.sender) >= amounts[i], "Not enough tokens.");       
        _basicTransfer(msg.sender,accounts[i],amounts[i]);
        }
    }
  

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

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFeeSell;
        uint256 _totalFee = totalFeeSell.sub(reflectionFeeSell);
        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(liquidityFeeSell).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFeeSell).div(totalETHFee);
        uint256 amountETHTeam = amountETH.mul(TeamFeeSell).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(teamReceiver).call{value: amountETHTeam}("");
             
            if(amountToLiquify > 0) {
             router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLPReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }

        swapThreshold = !alternateSwaps ? swapThreshold : swapThreshold == smallSwapThreshold ? largeSwapThreshold : smallSwapThreshold;
    }

    function setSwapThreshold
    (bool _enabled, uint256 _amountS, uint256 _amountL, bool _alternate) 
    external onlyOwner {
    require(_amountS < (_totalSupply/50), "Cannot set swap amount above 2%");
    require(_amountS > (_totalSupply/100000), "Cannot set swap amount below 0.001%");
    require(_amountL < (_totalSupply/50), "Cannot set swap amount above 2%");
    require(_amountL > (_totalSupply/100000), "Cannot set swap amount below 0.001%");
    alternateSwaps = _alternate;
    claimingFees = _enabled;
    smallSwapThreshold = _amountS;
    largeSwapThreshold = _amountL;
    swapThreshold = smallSwapThreshold;

        emit set_SellAmounts(alternateSwaps, claimingFees, smallSwapThreshold, largeSwapThreshold);
    }

    function enableTrading() public onlyOwner {
    require (!tradingOpen);
    tradingOpen = true;
    }

    function disableTrading() public onlyOwner {
        require (tradingOpen);
            tradingOpen = false;
        }

    function setFees
    (uint256 _liquidityFeeBuy, uint256 _reflectionFeeBuy, uint256 _marketingFeeBuy, uint256 _TeamFeeBuy, uint256 _feeDenominator,
    uint256 _liquidityFeeSell, uint256 _reflectionFeeSell, uint256 _marketingFeeSell, uint256 _TeamFeeSell) 
    external onlyOwner {
    liquidityFeeBuy = _liquidityFeeBuy;
    reflectionFeeBuy = _reflectionFeeBuy;
    marketingFeeBuy = _marketingFeeBuy;
    TeamFeeBuy = _TeamFeeBuy;
    totalFeeBuy = liquidityFeeBuy.add(reflectionFeeBuy).add(marketingFeeBuy).add(TeamFeeBuy);

    liquidityFeeSell = _liquidityFeeSell;
    reflectionFeeSell = _reflectionFeeSell;
    marketingFeeSell = _marketingFeeSell;
    TeamFeeSell = _TeamFeeSell;
    totalFeeSell = liquidityFeeSell.add(reflectionFeeSell).add(marketingFeeSell).add(TeamFeeSell);
       
    feeDenominator = _feeDenominator;

    require(totalFeeBuy <= feeDenominator/1,"Cannot set buy fees above 20%"); 
    require(totalFeeSell <=feeDenominator/1,"Cannot set sell fees above 20%"); 
        
     }
     
    function updateMaxWallet
    (uint256 maxWalletHolding) 
    external onlyOwner() {
    require(maxWalletHolding >= 1);
    _maxWalletSize = (_totalSupply * maxWalletHolding ) / 1000;
    emit set_MaxWallet(_maxWalletSize);
    }

    function updateMaxTransaction
    (uint256 maxTransactionSize) 
    external onlyOwner() {
    require(maxTransactionSize >= 1, "Cannot set max TX below .1%");
     _maxTxAmount = (_totalSupply * maxTransactionSize ) / 1000;
    emit set_MaxTransaction(_maxTxAmount);
    
      }
      
    function addTaxExemption
    (address[] calldata addresses, bool status) 
    public onlyOwner {
    for (uint256 i; i < addresses.length; ++i) {
    isFeeExempt[addresses[i]] = status;
        }
    }

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

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

    
    function setPresaleAddress
    (address holder, bool exempt) external onlyOwner {
    isFeeExempt[holder] = exempt;
    isTxLimitExempt[holder] = exempt;
    }
    
    function setTaxReceivers
    (address _marketingReceiver, address _autoLPReceiver, address _TeamReceiver) 
    external onlyOwner {
    marketingReceiver = _marketingReceiver;
    teamReceiver = _TeamReceiver;
    autoLPReceiver = _autoLPReceiver;

    emit set_Receivers(marketingReceiver, teamReceiver, autoLPReceiver);
    }

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

    function getLiquidityBacking
    (uint256 accuracy) 
    private 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);
    event user_exemptfromfees(address Wallet, bool Exempt);
    event user_TxExempt(address Wallet, bool Exempt);
    event ClearStuck(uint256 amount);
    event ClearToken(address tokenAddress, uint256 tokens);
    event set_Receivers(address marketingReceiver, address teamReceiver,address autoLPReceiver);
    event set_MaxWallet(uint256 maxWallet);
    event set_MaxTransaction(uint256 maxTXAmount);
    event set_SellAmounts(bool enabled, bool alternate, uint256 amountS, uint256 amountL);
    event Reflect(uint256 amountReflected, uint256 newTotalProportion);
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"swapRouterAddress","type":"address"},{"internalType":"string","name":"tName","type":"string"},{"internalType":"string","name":"tSymbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"ClearToken","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":false,"internalType":"uint256","name":"amountReflected","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTotalProportion","type":"uint256"}],"name":"Reflect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTXAmount","type":"uint256"}],"name":"set_MaxTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"teamReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"autoLPReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":false,"internalType":"bool","name":"alternate","type":"bool"},{"indexed":false,"internalType":"uint256","name":"amountS","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountL","type":"uint256"}],"name":"set_SellAmounts","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"CooldownTimer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"addCooldownExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"addTXLimitExemption","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"addTaxExemption","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimingFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearForeignToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"","type":"bool"}],"name":"getTotalFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"","type":"bool"}],"name":"getTotalFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_reflectionFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_marketingFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_TeamFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"},{"internalType":"uint256","name":"_liquidityFeeSell","type":"uint256"},{"internalType":"uint256","name":"_reflectionFeeSell","type":"uint256"},{"internalType":"uint256","name":"_marketingFeeSell","type":"uint256"},{"internalType":"uint256","name":"_TeamFeeSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setPresaleAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amountS","type":"uint256"},{"internalType":"uint256","name":"_amountL","type":"uint256"},{"internalType":"bool","name":"_alternate","type":"bool"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingReceiver","type":"address"},{"internalType":"address","name":"_autoLPReceiver","type":"address"},{"internalType":"address","name":"_TeamReceiver","type":"address"}],"name":"setTaxReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proportion","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"tokensToProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTransactionSize","type":"uint256"}],"name":"updateMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletHolding","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000d68565b6305f5e10062000025919062000db8565b600455606460016004546200003b919062000db8565b62000047919062000e2f565b600555606460016004546200005d919062000db8565b62000069919062000e2f565b6006556004546008555f600d555f600e556001600f555f601055600260115560026012555f6013556001601455601354600f54600d54601154620000ae919062000e66565b620000ba919062000e66565b620000c6919062000e66565b601555601454601054600e54601254620000e1919062000e66565b620000ed919062000e66565b620000f9919062000e66565b60165560646017556064601b556064601c555f601e60146101000a81548160ff0219169083151502179055506001601e60156101000a81548160ff021916908315150217905550600a601e60166101000a81548160ff021916908360ff160217905550600160205f6101000a81548160ff0219169083151502179055506001602060016101000a81548160ff0219169083151502179055506103e86001600454620001a5919062000db8565b620001b1919062000e2f565b6021556103e86002600454620001c8919062000db8565b620001d4919062000e2f565b602255602154602355348015620001e9575f80fd5b50604051620069823803806200698283398181016040528101906200020f919062001086565b5f6200022062000bcf60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508160029081620002cd91906200134b565b508060039081620002df91906200134b565b5082601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003b191906200142f565b60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200045b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200048191906200142f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620004de92919062001470565b6020604051808303815f875af1158015620004fb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200052191906200142f565b601e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550733297149addbfec4d854e9a3d51a8af0f8d27eace60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735e8516fb995857f57826210fecb6b2ee56d626a8601a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730bccd153cc76efbe7c98066841a875027709799d60195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060045460075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405162000bbe9190620014ac565b60405180910390a3505050620014c7565b5f33905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000c605780860481111562000c385762000c3762000bd6565b5b600185161562000c485780820291505b808102905062000c588562000c03565b945062000c18565b94509492505050565b5f8262000c7a576001905062000d4c565b8162000c89575f905062000d4c565b816001811462000ca2576002811462000cad5762000ce3565b600191505062000d4c565b60ff84111562000cc25762000cc162000bd6565b5b8360020a91508482111562000cdc5762000cdb62000bd6565b5b5062000d4c565b5060208310610133831016604e8410600b841016171562000d1d5782820a90508381111562000d175762000d1662000bd6565b5b62000d4c565b62000d2c848484600162000c0f565b9250905081840481111562000d465762000d4562000bd6565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000d748262000d53565b915062000d818362000d5c565b925062000db07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c69565b905092915050565b5f62000dc48262000d53565b915062000dd18362000d53565b925082820262000de18162000d53565b9150828204841483151762000dfb5762000dfa62000bd6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000e3b8262000d53565b915062000e488362000d53565b92508262000e5b5762000e5a62000e02565b5b828204905092915050565b5f62000e728262000d53565b915062000e7f8362000d53565b925082820190508082111562000e9a5762000e9962000bd6565b5b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000edc8262000eb1565b9050919050565b62000eee8162000ed0565b811462000ef9575f80fd5b50565b5f8151905062000f0c8162000ee3565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b62000f628262000f1a565b810181811067ffffffffffffffff8211171562000f845762000f8362000f2a565b5b80604052505050565b5f62000f9862000ea0565b905062000fa6828262000f57565b919050565b5f67ffffffffffffffff82111562000fc85762000fc762000f2a565b5b62000fd38262000f1a565b9050602081019050919050565b5f5b8381101562000fff57808201518184015260208101905062000fe2565b5f8484015250505050565b5f620010206200101a8462000fab565b62000f8d565b9050828152602081018484840111156200103f576200103e62000f16565b5b6200104c84828562000fe0565b509392505050565b5f82601f8301126200106b576200106a62000f12565b5b81516200107d8482602086016200100a565b91505092915050565b5f805f60608486031215620010a0576200109f62000ea9565b5b5f620010af8682870162000efc565b935050602084015167ffffffffffffffff811115620010d357620010d262000ead565b5b620010e18682870162001054565b925050604084015167ffffffffffffffff81111562001105576200110462000ead565b5b620011138682870162001054565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200116c57607f821691505b60208210810362001182576200118162001127565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620011e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620011a9565b620011f28683620011a9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f620012336200122d620012278462000d53565b6200120a565b62000d53565b9050919050565b5f819050919050565b6200124e8362001213565b620012666200125d826200123a565b848454620011b5565b825550505050565b5f90565b6200127c6200126e565b6200128981848462001243565b505050565b5b81811015620012b057620012a45f8262001272565b6001810190506200128f565b5050565b601f821115620012ff57620012c98162001188565b620012d4846200119a565b81016020851015620012e4578190505b620012fc620012f3856200119a565b8301826200128e565b50505b505050565b5f82821c905092915050565b5f620013215f198460080262001304565b1980831691505092915050565b5f6200133b838362001310565b9150826002028217905092915050565b62001356826200111d565b67ffffffffffffffff81111562001372576200137162000f2a565b5b6200137e825462001154565b6200138b828285620012b4565b5f60209050601f831160018114620013c1575f8415620013ac578287015190505b620013b885826200132e565b86555062001427565b601f198416620013d18662001188565b5f5b82811015620013fa57848901518255600182019150602085019450602081019050620013d3565b868310156200141a578489015162001416601f89168262001310565b8355505b6001600288020188555050505b505050505050565b5f6020828403121562001447576200144662000ea9565b5b5f620014568482850162000efc565b91505092915050565b6200146a8162000ed0565b82525050565b5f604082019050620014855f8301856200145f565b6200149460208301846200145f565b9392505050565b620014a68162000d53565b82525050565b5f602082019050620014c15f8301846200149b565b92915050565b6154ad80620014d55f395ff3fe60806040526004361061028b575f3560e01c80637c4e1b5511610159578063add5df66116100c0578063dd62ed3e11610079578063dd62ed3e146109c4578063e4b8659e14610a00578063f0a9e36514610a28578063f2fde38b14610a64578063f887ea4014610a8c578063ffb54a9914610ab657610292565b8063add5df66146108d2578063b0f7ec38146108fa578063bdc512c614610924578063c4c3641f1461094c578063d11a593f14610974578063d78e139d1461099c57610292565b80638f9a55c0116101125780638f9a55c0146107b457806395d89b41146107de578063a1dbe40714610808578063a737ec3e14610830578063a8aa1b311461086c578063a9059cbb1461089657610292565b80637c4e1b55146106ba5780637d1db4a5146106e4578063832790fe1461070e578063893d20e81461074a5780638a8c523c146107745780638da5cb5b1461078a57610292565b80632610eaca116101fd57806345ce5365116101b657806345ce5365146105b0578063571ac8b0146105ec578063617fe0ed1461062857806370a0823114610652578063715018a61461068e578063751039fc146106a457610292565b80632610eaca146104945780632b112e49146104bc5780632d44c931146104e65780632d83811914610522578063313ce5671461055e5780633cd17c961461058857610292565b80631161ae391161024f5780631161ae391461038a57806317700f01146103c657806317800287146103dc57806318160ddd146104065780631c499ab01461043057806323b872dd1461045857610292565b80630445b667146102965780630517d13d146102c057806306fdde03146102e8578063095ea7b3146103125780630cfc15f91461034e57610292565b3661029257005b5f80fd5b3480156102a1575f80fd5b506102aa610ae0565b6040516102b79190613edf565b60405180910390f35b3480156102cb575f80fd5b506102e660048036038101906102e19190613f33565b610ae6565b005b3480156102f3575f80fd5b506102fc610c1b565b6040516103099190613fe8565b60405180910390f35b34801561031d575f80fd5b5061033860048036038101906103339190614062565b610cab565b60405161034591906140ba565b60405180910390f35b348015610359575f80fd5b50610374600480360381019061036f91906140d3565b610d98565b6040516103819190613edf565b60405180910390f35b348015610395575f80fd5b506103b060048036038101906103ab91906140fe565b610dad565b6040516103bd91906140ba565b60405180910390f35b3480156103d1575f80fd5b506103da610dc1565b005b3480156103e7575f80fd5b506103f0610e89565b6040516103fd9190613edf565b60405180910390f35b348015610411575f80fd5b5061041a610e8f565b6040516104279190613edf565b60405180910390f35b34801561043b575f80fd5b5061045660048036038101906104519190613f33565b610e98565b005b348015610463575f80fd5b5061047e6004803603810190610479919061413c565b610f96565b60405161048b91906140ba565b60405180910390f35b34801561049f575f80fd5b506104ba60048036038101906104b5919061438c565b611189565b005b3480156104c7575f80fd5b506104d0611339565b6040516104dd9190613edf565b60405180910390f35b3480156104f1575f80fd5b5061050c6004803603810190610507919061442c565b611378565b6040516105199190613edf565b60405180910390f35b34801561052d575f80fd5b5061054860048036038101906105439190613f33565b611383565b6040516105559190613edf565b60405180910390f35b348015610569575f80fd5b506105726113b4565b60405161057f9190614472565b60405180910390f35b348015610593575f80fd5b506105ae60048036038101906105a9919061448b565b6113bc565b005b3480156105bb575f80fd5b506105d660048036038101906105d19190613f33565b6114fc565b6040516105e39190613edf565b60405180910390f35b3480156105f7575f80fd5b50610612600480360381019061060d91906140d3565b61152d565b60405161061f91906140ba565b60405180910390f35b348015610633575f80fd5b5061063c61155f565b60405161064991906140ba565b60405180910390f35b34801561065d575f80fd5b50610678600480360381019061067391906140d3565b611572565b6040516106859190613edf565b60405180910390f35b348015610699575f80fd5b506106a26115c0565b005b3480156106af575f80fd5b506106b861170e565b005b3480156106c5575f80fd5b506106ce6117b6565b6040516106db9190614472565b60405180910390f35b3480156106ef575f80fd5b506106f86117c9565b6040516107059190613edf565b60405180910390f35b348015610719575f80fd5b50610734600480360381019061072f919061442c565b6117cf565b6040516107419190613edf565b60405180910390f35b348015610755575f80fd5b5061075e6117da565b60405161076b91906144d8565b60405180910390f35b34801561077f575f80fd5b506107886117e8565b005b348015610795575f80fd5b5061079e6118b2565b6040516107ab91906144d8565b60405180910390f35b3480156107bf575f80fd5b506107c86118d9565b6040516107d59190613edf565b60405180910390f35b3480156107e9575f80fd5b506107f26118df565b6040516107ff9190613fe8565b60405180910390f35b348015610813575f80fd5b5061082e6004803603810190610829919061454a565b61196f565b005b34801561083b575f80fd5b50610856600480360381019061085191906140d3565b611aa2565b6040516108639190613edf565b60405180910390f35b348015610877575f80fd5b50610880611ab7565b60405161088d91906144d8565b60405180910390f35b3480156108a1575f80fd5b506108bc60048036038101906108b79190614062565b611adc565b6040516108c991906140ba565b60405180910390f35b3480156108dd575f80fd5b506108f860048036038101906108f391906145a7565b611af0565b005b348015610905575f80fd5b5061090e611cfe565b60405161091b91906140ba565b60405180910390f35b34801561092f575f80fd5b5061094a6004803603810190610945919061466b565b611d10565b005b348015610957575f80fd5b50610972600480360381019061096d919061454a565b611f96565b005b34801561097f575f80fd5b5061099a6004803603810190610995919061448b565b6120c9565b005b3480156109a7575f80fd5b506109c260048036038101906109bd9190613f33565b6121b5565b005b3480156109cf575f80fd5b506109ea60048036038101906109e591906146cf565b612270565b6040516109f79190613edf565b60405180910390f35b348015610a0b575f80fd5b50610a266004803603810190610a21919061470d565b6122f2565b005b348015610a33575f80fd5b50610a4e6004803603810190610a499190614062565b6124e9565b604051610a5b91906140ba565b60405180910390f35b348015610a6f575f80fd5b50610a8a6004803603810190610a8591906140d3565b61272a565b005b348015610a97575f80fd5b50610aa06128e7565b604051610aad91906147b8565b60405180910390f35b348015610ac1575f80fd5b50610aca61290c565b604051610ad791906140ba565b60405180910390f35b60235481565b610aee61291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b719061481b565b60405180910390fd5b6001811015610bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb590614883565b60405180910390fd5b6103e881600454610bcf91906148ce565b610bd9919061493c565b6005819055507fff98d32d8af489fb5c29c966064b014ddd95effa4c3479dccb082290ffa050a6600554604051610c109190613edf565b60405180910390a150565b606060028054610c2a90614999565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5690614999565b8015610ca15780601f10610c7857610100808354040283529160200191610ca1565b820191905f5260205f20905b815481529060010190602001808311610c8457829003601f168201915b5050505050905090565b5f8160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d869190613edf565b60405180910390a36001905092915050565b6007602052805f5260405f205f915090505481565b5f82610db883612926565b11905092915050565b610dc961291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c9061481b565b60405180910390fd5b601e60149054906101000a900460ff16610e6d575f80fd5b5f601e60146101000a81548160ff021916908315150217905550565b60085481565b5f600454905090565b610ea061291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f239061481b565b60405180910390fd5b6001811015610f39575f80fd5b6103e881600454610f4a91906148ce565b610f54919061493c565b6006819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600654604051610f8b9190613edf565b60405180910390a150565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414611175576110f8826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129969092919063ffffffff16565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6111808484846129f8565b90509392505050565b61119161291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461121d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112149061481b565b60405180910390fd5b8051825114611261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125890614a13565b60405180910390fd5b5f5b82518161ffff16101561133457818161ffff168151811061128757611286614a31565b5b602002602001015161129833611572565b10156112d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d090614aa8565b60405180910390fd5b61132033848361ffff16815181106112f4576112f3614a31565b5b6020026020010151848461ffff168151811061131357611312614a31565b5b60200260200101516131a0565b50808061132c90614ad3565b915050611263565b505050565b5f6113736113465f611572565b61136561135461dead611572565b60045461337790919063ffffffff16565b61337790919063ffffffff16565b905090565b5f6016549050919050565b5f6113ad60085461139f600454856133c090919063ffffffff16565b61343790919063ffffffff16565b9050919050565b5f6009905090565b6113c461291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611450576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114479061481b565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f611526600454611518600854856133c090919063ffffffff16565b61343790919063ffffffff16565b9050919050565b5f611558827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610cab565b9050919050565b601e60159054906101000a900460ff1681565b5f6115b960075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611383565b9050919050565b6115c861291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164b9061481b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61171661291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117999061481b565b60405180910390fd5b600454600681905550600454600581905550565b601e60169054906101000a900460ff1681565b60055481565b5f6015549050919050565b5f6117e36118b2565b905090565b6117f061291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461187c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118739061481b565b60405180910390fd5b601e60149054906101000a900460ff1615611895575f80fd5b6001601e60146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b6060600380546118ee90614999565b80601f016020809104026020016040519081016040528092919081815260200182805461191a90614999565b80156119655780601f1061193c57610100808354040283529160200191611965565b820191905f5260205f20905b81548152906001019060200180831161194857829003601f168201915b5050505050905090565b61197761291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa9061481b565b60405180910390fd5b5f5b83839050811015611a9c5781600b5f868685818110611a2757611a26614a31565b5b9050602002016020810190611a3c91906140d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080611a9590614afc565b9050611a05565b50505050565b601f602052805f5260405f205f915090505481565b601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611ae83384846129f8565b905092915050565b611af861291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7b9061481b565b60405180910390fd5b88600d81905550876013819055508660118190555085600f81905550611bdf600f54611bd1601154611bc3601354600d5461348090919063ffffffff16565b61348090919063ffffffff16565b61348090919063ffffffff16565b60158190555083600e81905550826014819055508160128190555080601081905550611c40601054611c32601254611c24601454600e5461348090919063ffffffff16565b61348090919063ffffffff16565b61348090919063ffffffff16565b601681905550846017819055506001601754611c5c919061493c565b6015541115611ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9790614b8d565b60405180910390fd5b6001601754611caf919061493c565b6016541115611cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cea90614bf5565b60405180910390fd5b505050505050505050565b60205f9054906101000a900460ff1681565b611d1861291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9b9061481b565b60405180910390fd5b6032600454611db3919061493c565b8310611df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611deb90614c5d565b60405180910390fd5b620186a0600454611e05919061493c565b8311611e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3d90614ceb565b60405180910390fd5b6032600454611e55919061493c565b8210611e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8d90614c5d565b60405180910390fd5b620186a0600454611ea7919061493c565b8211611ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edf90614ceb565b60405180910390fd5b80602060016101000a81548160ff0219169083151502179055508360205f6101000a81548160ff02191690831515021790555082602181905550816022819055506021546023819055507f1b21a6f0981d82826d83c7cb6ec42c702b3f4759368e947d004d1ac6c6a350c1602060019054906101000a900460ff1660205f9054906101000a900460ff16602154602254604051611f889493929190614d09565b60405180910390a150505050565b611f9e61291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461202a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120219061481b565b60405180910390fd5b5f5b838390508110156120c35781600c5f86868581811061204e5761204d614a31565b5b905060200201602081019061206391906140d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550806120bc90614afc565b905061202c565b50505050565b6120d161291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461215d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121549061481b565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f479050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848461220291906148ce565b61220c919061493c565b90811502906040515f60405180830381858888f19350505050158015612234573d5f803e3d5ffd5b507f024874b050ef5d5d90040914ceb89066ec34b5b1dc5ce9cf68ff59bd598a124f826040516122649190613edf565b60405180910390a15050565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6122fa61291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237d9061481b565b60405180910390fd5b8260195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd7fdb40ec018d4a1874293e1c569bec2adf78e8ed880973e28610c18ea3ca4bf60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516124dc93929190614d4c565b60405180910390a1505050565b5f6124f261291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461257e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125759061481b565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e390614dcb565b60405180910390fd5b5f820361266e578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161262c91906144d8565b602060405180830381865afa158015612647573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061266b9190614dfd565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f838360405161269f929190614e28565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016126e2929190614e28565b6020604051808303815f875af11580156126fe573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127229190614e63565b905092915050565b61273261291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b59061481b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361282c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282390614efe565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601e60149054906101000a900460ff1681565b5f33905090565b5f61298f612932611339565b6129816129726002612964601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611572565b6133c090919063ffffffff16565b856133c090919063ffffffff16565b61343790919063ffffffff16565b9050919050565b5f8383111582906129dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d49190613fe8565b60405180910390fd5b505f83856129eb9190614f1c565b9050809150509392505050565b5f60245f9054906101000a900460ff1615612a1f57612a188484846131a0565b9050613199565b601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612aaa575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612b03575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612b565750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612d535760065482612b6885611572565b612b729190614f4f565b1115612bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612baa90614fcc565b60405180910390fd5b601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612c1b5750601e60159054906101000a900460ff165b8015612c6e5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612d525742601f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce990615034565b60405180910390fd5b601e60169054906101000a900460ff1660ff1642612d109190614f4f565b601f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612de757600554821115612de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ddd9061509c565b60405180910390fd5b5b601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612e72575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612ec55750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612f1a57601e60149054906101000a900460ff16612f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f1090615104565b60405180910390fd5b5b612f226134dd565b15612f3057612f2f613579565b5b5f612f3a836114fc565b9050612fc3816040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060075f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129969092919063ffffffff16565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f61300e86613b10565b801561301f575061301e85613b10565b5b6130295781613092565b613091601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614613086575f613089565b60015b878785613b63565b5b90506130e48160075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461348090919063ffffffff16565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61317d84611383565b60405161318a9190613edf565b60405180910390a36001925050505b9392505050565b5f806131ab836114fc565b9050613234816040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060075f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129969092919063ffffffff16565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506132c58160075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461348090919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516133639190613edf565b60405180910390a360019150509392505050565b5f6133b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612996565b905092915050565b5f8083036133d0575f9050613431565b5f82846133dd91906148ce565b90508284826133ec919061493c565b1461342c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161342390615192565b60405180910390fd5b809150505b92915050565b5f61347883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613e66565b905092915050565b5f80828461348e9190614f4f565b9050838110156134d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134ca906151fa565b60405180910390fd5b8091505092915050565b5f601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015613547575060245f9054906101000a900460ff16155b801561355e575060205f9054906101000a900460ff165b8015613574575060235461357130611572565b10155b905090565b600160245f6101000a81548160ff0219169083151502179055505f6135a2601b54601c54610dad565b6135ae57600e546135b0565b5f5b90505f6135ca60145460165461337790919063ffffffff16565b90505f61360760026135f9846135eb876023546133c090919063ffffffff16565b61343790919063ffffffff16565b61343790919063ffffffff16565b90505f61361f8260235461337790919063ffffffff16565b90505f600267ffffffffffffffff81111561363d5761363c614190565b5b60405190808252806020026020018201604052801561366b5781602001602082028036833780820191505090505b50905030815f8151811061368257613681614a31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106136f2576136f1614a31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401613792959493929190615308565b5f604051808303815f87803b1580156137a9575f80fd5b505af11580156137bb573d5f803e3d5ffd5b505050505f6137d3824761337790919063ffffffff16565b90505f6137fc6137ed60028a61343790919063ffffffff16565b8861337790919063ffffffff16565b90505f613839600261382b8461381d600e54886133c090919063ffffffff16565b61343790919063ffffffff16565b61343790919063ffffffff16565b90505f61386383613855601254876133c090919063ffffffff16565b61343790919063ffffffff16565b90505f61388d8461387f601054886133c090919063ffffffff16565b61343790919063ffffffff16565b90505f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516138d59061538d565b5f6040518083038185875af1925050503d805f811461390f576040519150601f19603f3d011682016040523d82523d5f602084013e613914565b606091505b50509050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161395d9061538d565b5f6040518083038185875af1925050503d805f8114613997576040519150601f19603f3d011682016040523d82523d5f602084013e61399c565b606091505b5050809150505f8a1115613aae57601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308d5f8060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613a30969594939291906153a1565b60606040518083038185885af1158015613a4c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190613a719190615400565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848b604051613aa5929190615450565b60405180910390a15b602060019054906101000a900460ff1615613adf5760215460235414613ad657602154613ada565b6022545b613ae3565b6023545b6023819055505050505050505050505050505f60245f6101000a81548160ff021916908315150217905550565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16159050919050565b5f806001151586151514613bf457613bef601754613be1613bd2601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611378565b866133c090919063ffffffff16565b61343790919063ffffffff16565b613c73565b613c72601754613c64613c55601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146117cf565b866133c090919063ffffffff16565b61343790919063ffffffff16565b5b90505f6001151587151514613cb057613cab601654613c9d601454856133c090919063ffffffff16565b61343790919063ffffffff16565b613cda565b613cd9601554613ccb601354856133c090919063ffffffff16565b61343790919063ffffffff16565b5b9050613cf18160085461337790919063ffffffff16565b6008819055505f613d0b828461337790919063ffffffff16565b9050613d5d8160075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461348090919063ffffffff16565b60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef613df684611383565b604051613e039190613edf565b60405180910390a37fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac82600854604051613e3e929190615450565b60405180910390a1613e59838661337790919063ffffffff16565b9350505050949350505050565b5f8083118290613eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ea39190613fe8565b60405180910390fd5b505f8385613eba919061493c565b9050809150509392505050565b5f819050919050565b613ed981613ec7565b82525050565b5f602082019050613ef25f830184613ed0565b92915050565b5f604051905090565b5f80fd5b5f80fd5b613f1281613ec7565b8114613f1c575f80fd5b50565b5f81359050613f2d81613f09565b92915050565b5f60208284031215613f4857613f47613f01565b5b5f613f5584828501613f1f565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613f95578082015181840152602081019050613f7a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613fba82613f5e565b613fc48185613f68565b9350613fd4818560208601613f78565b613fdd81613fa0565b840191505092915050565b5f6020820190508181035f8301526140008184613fb0565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61403182614008565b9050919050565b61404181614027565b811461404b575f80fd5b50565b5f8135905061405c81614038565b92915050565b5f806040838503121561407857614077613f01565b5b5f6140858582860161404e565b925050602061409685828601613f1f565b9150509250929050565b5f8115159050919050565b6140b4816140a0565b82525050565b5f6020820190506140cd5f8301846140ab565b92915050565b5f602082840312156140e8576140e7613f01565b5b5f6140f58482850161404e565b91505092915050565b5f806040838503121561411457614113613f01565b5b5f61412185828601613f1f565b925050602061413285828601613f1f565b9150509250929050565b5f805f6060848603121561415357614152613f01565b5b5f6141608682870161404e565b93505060206141718682870161404e565b925050604061418286828701613f1f565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6141c682613fa0565b810181811067ffffffffffffffff821117156141e5576141e4614190565b5b80604052505050565b5f6141f7613ef8565b905061420382826141bd565b919050565b5f67ffffffffffffffff82111561422257614221614190565b5b602082029050602081019050919050565b5f80fd5b5f61424961424484614208565b6141ee565b9050808382526020820190506020840283018581111561426c5761426b614233565b5b835b818110156142955780614281888261404e565b84526020840193505060208101905061426e565b5050509392505050565b5f82601f8301126142b3576142b261418c565b5b81356142c3848260208601614237565b91505092915050565b5f67ffffffffffffffff8211156142e6576142e5614190565b5b602082029050602081019050919050565b5f614309614304846142cc565b6141ee565b9050808382526020820190506020840283018581111561432c5761432b614233565b5b835b8181101561435557806143418882613f1f565b84526020840193505060208101905061432e565b5050509392505050565b5f82601f8301126143735761437261418c565b5b81356143838482602086016142f7565b91505092915050565b5f80604083850312156143a2576143a1613f01565b5b5f83013567ffffffffffffffff8111156143bf576143be613f05565b5b6143cb8582860161429f565b925050602083013567ffffffffffffffff8111156143ec576143eb613f05565b5b6143f88582860161435f565b9150509250929050565b61440b816140a0565b8114614415575f80fd5b50565b5f8135905061442681614402565b92915050565b5f6020828403121561444157614440613f01565b5b5f61444e84828501614418565b91505092915050565b5f60ff82169050919050565b61446c81614457565b82525050565b5f6020820190506144855f830184614463565b92915050565b5f80604083850312156144a1576144a0613f01565b5b5f6144ae8582860161404e565b92505060206144bf85828601614418565b9150509250929050565b6144d281614027565b82525050565b5f6020820190506144eb5f8301846144c9565b92915050565b5f80fd5b5f8083601f84011261450a5761450961418c565b5b8235905067ffffffffffffffff811115614527576145266144f1565b5b60208301915083602082028301111561454357614542614233565b5b9250929050565b5f805f6040848603121561456157614560613f01565b5b5f84013567ffffffffffffffff81111561457e5761457d613f05565b5b61458a868287016144f5565b9350935050602061459d86828701614418565b9150509250925092565b5f805f805f805f805f6101208a8c0312156145c5576145c4613f01565b5b5f6145d28c828d01613f1f565b99505060206145e38c828d01613f1f565b98505060406145f48c828d01613f1f565b97505060606146058c828d01613f1f565b96505060806146168c828d01613f1f565b95505060a06146278c828d01613f1f565b94505060c06146388c828d01613f1f565b93505060e06146498c828d01613f1f565b92505061010061465b8c828d01613f1f565b9150509295985092959850929598565b5f805f806080858703121561468357614682613f01565b5b5f61469087828801614418565b94505060206146a187828801613f1f565b93505060406146b287828801613f1f565b92505060606146c387828801614418565b91505092959194509250565b5f80604083850312156146e5576146e4613f01565b5b5f6146f28582860161404e565b92505060206147038582860161404e565b9150509250929050565b5f805f6060848603121561472457614723613f01565b5b5f6147318682870161404e565b93505060206147428682870161404e565b92505060406147538682870161404e565b9150509250925092565b5f819050919050565b5f61478061477b61477684614008565b61475d565b614008565b9050919050565b5f61479182614766565b9050919050565b5f6147a282614787565b9050919050565b6147b281614798565b82525050565b5f6020820190506147cb5f8301846147a9565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f614805602083613f68565b9150614810826147d1565b602082019050919050565b5f6020820190508181035f830152614832816147f9565b9050919050565b7f43616e6e6f7420736574206d61782054582062656c6f77202e312500000000005f82015250565b5f61486d601b83613f68565b915061487882614839565b602082019050919050565b5f6020820190508181035f83015261489a81614861565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6148d882613ec7565b91506148e383613ec7565b92508282026148f181613ec7565b91508282048414831517614908576149076148a1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61494682613ec7565b915061495183613ec7565b9250826149615761496061490f565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806149b057607f821691505b6020821081036149c3576149c261496c565b5b50919050565b7f4c656e6774687320646f206e6f74206d617463682e00000000000000000000005f82015250565b5f6149fd601583613f68565b9150614a08826149c9565b602082019050919050565b5f6020820190508181035f830152614a2a816149f1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000005f82015250565b5f614a92601283613f68565b9150614a9d82614a5e565b602082019050919050565b5f6020820190508181035f830152614abf81614a86565b9050919050565b5f61ffff82169050919050565b5f614add82614ac6565b915061ffff8203614af157614af06148a1565b5b600182019050919050565b5f614b0682613ec7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614b3857614b376148a1565b5b600182019050919050565b7f43616e6e6f74207365742062757920666565732061626f7665203230250000005f82015250565b5f614b77601d83613f68565b9150614b8282614b43565b602082019050919050565b5f6020820190508181035f830152614ba481614b6b565b9050919050565b7f43616e6e6f74207365742073656c6c20666565732061626f76652032302500005f82015250565b5f614bdf601e83613f68565b9150614bea82614bab565b602082019050919050565b5f6020820190508181035f830152614c0c81614bd3565b9050919050565b7f43616e6e6f7420736574207377617020616d6f756e742061626f7665203225005f82015250565b5f614c47601f83613f68565b9150614c5282614c13565b602082019050919050565b5f6020820190508181035f830152614c7481614c3b565b9050919050565b7f43616e6e6f7420736574207377617020616d6f756e742062656c6f7720302e305f8201527f3031250000000000000000000000000000000000000000000000000000000000602082015250565b5f614cd5602383613f68565b9150614ce082614c7b565b604082019050919050565b5f6020820190508181035f830152614d0281614cc9565b9050919050565b5f608082019050614d1c5f8301876140ab565b614d2960208301866140ab565b614d366040830185613ed0565b614d436060830184613ed0565b95945050505050565b5f606082019050614d5f5f8301866144c9565b614d6c60208301856144c9565b614d7960408301846144c9565b949350505050565b7f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e735f82015250565b5f614db5602083613f68565b9150614dc082614d81565b602082019050919050565b5f6020820190508181035f830152614de281614da9565b9050919050565b5f81519050614df781613f09565b92915050565b5f60208284031215614e1257614e11613f01565b5b5f614e1f84828501614de9565b91505092915050565b5f604082019050614e3b5f8301856144c9565b614e486020830184613ed0565b9392505050565b5f81519050614e5d81614402565b92915050565b5f60208284031215614e7857614e77613f01565b5b5f614e8584828501614e4f565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614ee8602683613f68565b9150614ef382614e8e565b604082019050919050565b5f6020820190508181035f830152614f1581614edc565b9050919050565b5f614f2682613ec7565b9150614f3183613ec7565b9250828203905081811115614f4957614f486148a1565b5b92915050565b5f614f5982613ec7565b9150614f6483613ec7565b9250828201905080821115614f7c57614f7b6148a1565b5b92915050565b7f4d61782057616c6c6574204578636565646564000000000000000000000000005f82015250565b5f614fb6601383613f68565b9150614fc182614f82565b602082019050919050565b5f6020820190508181035f830152614fe381614faa565b9050919050565b7f506c65617365207761697420666f72206265747765656e2062757973000000005f82015250565b5f61501e601c83613f68565b915061502982614fea565b602082019050919050565b5f6020820190508181035f83015261504b81615012565b9050919050565b7f5472616e73616374696f6e20416d6f756e7420457863656564656400000000005f82015250565b5f615086601b83613f68565b915061509182615052565b602082019050919050565b5f6020820190508181035f8301526150b38161507a565b9050919050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f6150ee601483613f68565b91506150f9826150ba565b602082019050919050565b5f6020820190508181035f83015261511b816150e2565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61517c602183613f68565b915061518782615122565b604082019050919050565b5f6020820190508181035f8301526151a981615170565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6151e4601b83613f68565b91506151ef826151b0565b602082019050919050565b5f6020820190508181035f830152615211816151d8565b9050919050565b5f819050919050565b5f61523b61523661523184615218565b61475d565b613ec7565b9050919050565b61524b81615221565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61528381614027565b82525050565b5f615294838361527a565b60208301905092915050565b5f602082019050919050565b5f6152b682615251565b6152c0818561525b565b93506152cb8361526b565b805f5b838110156152fb5781516152e28882615289565b97506152ed836152a0565b9250506001810190506152ce565b5085935050505092915050565b5f60a08201905061531b5f830188613ed0565b6153286020830187615242565b818103604083015261533a81866152ac565b905061534960608301856144c9565b6153566080830184613ed0565b9695505050505050565b5f81905092915050565b50565b5f6153785f83615360565b91506153838261536a565b5f82019050919050565b5f6153978261536d565b9150819050919050565b5f60c0820190506153b45f8301896144c9565b6153c16020830188613ed0565b6153ce6040830187615242565b6153db6060830186615242565b6153e860808301856144c9565b6153f560a0830184613ed0565b979650505050505050565b5f805f6060848603121561541757615416613f01565b5b5f61542486828701614de9565b935050602061543586828701614de9565b925050604061544686828701614de9565b9150509250925092565b5f6040820190506154635f830185613ed0565b6154706020830184613ed0565b939250505056fea264697066735822122073455e6eba3f85562a499d3b8484f72d77546802a88673b8622d5f9790030c4964736f6c634300081500330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004506570690000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045045504900000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061028b575f3560e01c80637c4e1b5511610159578063add5df66116100c0578063dd62ed3e11610079578063dd62ed3e146109c4578063e4b8659e14610a00578063f0a9e36514610a28578063f2fde38b14610a64578063f887ea4014610a8c578063ffb54a9914610ab657610292565b8063add5df66146108d2578063b0f7ec38146108fa578063bdc512c614610924578063c4c3641f1461094c578063d11a593f14610974578063d78e139d1461099c57610292565b80638f9a55c0116101125780638f9a55c0146107b457806395d89b41146107de578063a1dbe40714610808578063a737ec3e14610830578063a8aa1b311461086c578063a9059cbb1461089657610292565b80637c4e1b55146106ba5780637d1db4a5146106e4578063832790fe1461070e578063893d20e81461074a5780638a8c523c146107745780638da5cb5b1461078a57610292565b80632610eaca116101fd57806345ce5365116101b657806345ce5365146105b0578063571ac8b0146105ec578063617fe0ed1461062857806370a0823114610652578063715018a61461068e578063751039fc146106a457610292565b80632610eaca146104945780632b112e49146104bc5780632d44c931146104e65780632d83811914610522578063313ce5671461055e5780633cd17c961461058857610292565b80631161ae391161024f5780631161ae391461038a57806317700f01146103c657806317800287146103dc57806318160ddd146104065780631c499ab01461043057806323b872dd1461045857610292565b80630445b667146102965780630517d13d146102c057806306fdde03146102e8578063095ea7b3146103125780630cfc15f91461034e57610292565b3661029257005b5f80fd5b3480156102a1575f80fd5b506102aa610ae0565b6040516102b79190613edf565b60405180910390f35b3480156102cb575f80fd5b506102e660048036038101906102e19190613f33565b610ae6565b005b3480156102f3575f80fd5b506102fc610c1b565b6040516103099190613fe8565b60405180910390f35b34801561031d575f80fd5b5061033860048036038101906103339190614062565b610cab565b60405161034591906140ba565b60405180910390f35b348015610359575f80fd5b50610374600480360381019061036f91906140d3565b610d98565b6040516103819190613edf565b60405180910390f35b348015610395575f80fd5b506103b060048036038101906103ab91906140fe565b610dad565b6040516103bd91906140ba565b60405180910390f35b3480156103d1575f80fd5b506103da610dc1565b005b3480156103e7575f80fd5b506103f0610e89565b6040516103fd9190613edf565b60405180910390f35b348015610411575f80fd5b5061041a610e8f565b6040516104279190613edf565b60405180910390f35b34801561043b575f80fd5b5061045660048036038101906104519190613f33565b610e98565b005b348015610463575f80fd5b5061047e6004803603810190610479919061413c565b610f96565b60405161048b91906140ba565b60405180910390f35b34801561049f575f80fd5b506104ba60048036038101906104b5919061438c565b611189565b005b3480156104c7575f80fd5b506104d0611339565b6040516104dd9190613edf565b60405180910390f35b3480156104f1575f80fd5b5061050c6004803603810190610507919061442c565b611378565b6040516105199190613edf565b60405180910390f35b34801561052d575f80fd5b5061054860048036038101906105439190613f33565b611383565b6040516105559190613edf565b60405180910390f35b348015610569575f80fd5b506105726113b4565b60405161057f9190614472565b60405180910390f35b348015610593575f80fd5b506105ae60048036038101906105a9919061448b565b6113bc565b005b3480156105bb575f80fd5b506105d660048036038101906105d19190613f33565b6114fc565b6040516105e39190613edf565b60405180910390f35b3480156105f7575f80fd5b50610612600480360381019061060d91906140d3565b61152d565b60405161061f91906140ba565b60405180910390f35b348015610633575f80fd5b5061063c61155f565b60405161064991906140ba565b60405180910390f35b34801561065d575f80fd5b50610678600480360381019061067391906140d3565b611572565b6040516106859190613edf565b60405180910390f35b348015610699575f80fd5b506106a26115c0565b005b3480156106af575f80fd5b506106b861170e565b005b3480156106c5575f80fd5b506106ce6117b6565b6040516106db9190614472565b60405180910390f35b3480156106ef575f80fd5b506106f86117c9565b6040516107059190613edf565b60405180910390f35b348015610719575f80fd5b50610734600480360381019061072f919061442c565b6117cf565b6040516107419190613edf565b60405180910390f35b348015610755575f80fd5b5061075e6117da565b60405161076b91906144d8565b60405180910390f35b34801561077f575f80fd5b506107886117e8565b005b348015610795575f80fd5b5061079e6118b2565b6040516107ab91906144d8565b60405180910390f35b3480156107bf575f80fd5b506107c86118d9565b6040516107d59190613edf565b60405180910390f35b3480156107e9575f80fd5b506107f26118df565b6040516107ff9190613fe8565b60405180910390f35b348015610813575f80fd5b5061082e6004803603810190610829919061454a565b61196f565b005b34801561083b575f80fd5b50610856600480360381019061085191906140d3565b611aa2565b6040516108639190613edf565b60405180910390f35b348015610877575f80fd5b50610880611ab7565b60405161088d91906144d8565b60405180910390f35b3480156108a1575f80fd5b506108bc60048036038101906108b79190614062565b611adc565b6040516108c991906140ba565b60405180910390f35b3480156108dd575f80fd5b506108f860048036038101906108f391906145a7565b611af0565b005b348015610905575f80fd5b5061090e611cfe565b60405161091b91906140ba565b60405180910390f35b34801561092f575f80fd5b5061094a6004803603810190610945919061466b565b611d10565b005b348015610957575f80fd5b50610972600480360381019061096d919061454a565b611f96565b005b34801561097f575f80fd5b5061099a6004803603810190610995919061448b565b6120c9565b005b3480156109a7575f80fd5b506109c260048036038101906109bd9190613f33565b6121b5565b005b3480156109cf575f80fd5b506109ea60048036038101906109e591906146cf565b612270565b6040516109f79190613edf565b60405180910390f35b348015610a0b575f80fd5b50610a266004803603810190610a21919061470d565b6122f2565b005b348015610a33575f80fd5b50610a4e6004803603810190610a499190614062565b6124e9565b604051610a5b91906140ba565b60405180910390f35b348015610a6f575f80fd5b50610a8a6004803603810190610a8591906140d3565b61272a565b005b348015610a97575f80fd5b50610aa06128e7565b604051610aad91906147b8565b60405180910390f35b348015610ac1575f80fd5b50610aca61290c565b604051610ad791906140ba565b60405180910390f35b60235481565b610aee61291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b719061481b565b60405180910390fd5b6001811015610bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb590614883565b60405180910390fd5b6103e881600454610bcf91906148ce565b610bd9919061493c565b6005819055507fff98d32d8af489fb5c29c966064b014ddd95effa4c3479dccb082290ffa050a6600554604051610c109190613edf565b60405180910390a150565b606060028054610c2a90614999565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5690614999565b8015610ca15780601f10610c7857610100808354040283529160200191610ca1565b820191905f5260205f20905b815481529060010190602001808311610c8457829003601f168201915b5050505050905090565b5f8160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d869190613edf565b60405180910390a36001905092915050565b6007602052805f5260405f205f915090505481565b5f82610db883612926565b11905092915050565b610dc961291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c9061481b565b60405180910390fd5b601e60149054906101000a900460ff16610e6d575f80fd5b5f601e60146101000a81548160ff021916908315150217905550565b60085481565b5f600454905090565b610ea061291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f239061481b565b60405180910390fd5b6001811015610f39575f80fd5b6103e881600454610f4a91906148ce565b610f54919061493c565b6006819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600654604051610f8b9190613edf565b60405180910390a150565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414611175576110f8826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129969092919063ffffffff16565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6111808484846129f8565b90509392505050565b61119161291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461121d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112149061481b565b60405180910390fd5b8051825114611261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125890614a13565b60405180910390fd5b5f5b82518161ffff16101561133457818161ffff168151811061128757611286614a31565b5b602002602001015161129833611572565b10156112d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d090614aa8565b60405180910390fd5b61132033848361ffff16815181106112f4576112f3614a31565b5b6020026020010151848461ffff168151811061131357611312614a31565b5b60200260200101516131a0565b50808061132c90614ad3565b915050611263565b505050565b5f6113736113465f611572565b61136561135461dead611572565b60045461337790919063ffffffff16565b61337790919063ffffffff16565b905090565b5f6016549050919050565b5f6113ad60085461139f600454856133c090919063ffffffff16565b61343790919063ffffffff16565b9050919050565b5f6009905090565b6113c461291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611450576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114479061481b565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f611526600454611518600854856133c090919063ffffffff16565b61343790919063ffffffff16565b9050919050565b5f611558827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610cab565b9050919050565b601e60159054906101000a900460ff1681565b5f6115b960075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611383565b9050919050565b6115c861291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164b9061481b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61171661291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117999061481b565b60405180910390fd5b600454600681905550600454600581905550565b601e60169054906101000a900460ff1681565b60055481565b5f6015549050919050565b5f6117e36118b2565b905090565b6117f061291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461187c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118739061481b565b60405180910390fd5b601e60149054906101000a900460ff1615611895575f80fd5b6001601e60146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b6060600380546118ee90614999565b80601f016020809104026020016040519081016040528092919081815260200182805461191a90614999565b80156119655780601f1061193c57610100808354040283529160200191611965565b820191905f5260205f20905b81548152906001019060200180831161194857829003601f168201915b5050505050905090565b61197761291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa9061481b565b60405180910390fd5b5f5b83839050811015611a9c5781600b5f868685818110611a2757611a26614a31565b5b9050602002016020810190611a3c91906140d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080611a9590614afc565b9050611a05565b50505050565b601f602052805f5260405f205f915090505481565b601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611ae83384846129f8565b905092915050565b611af861291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7b9061481b565b60405180910390fd5b88600d81905550876013819055508660118190555085600f81905550611bdf600f54611bd1601154611bc3601354600d5461348090919063ffffffff16565b61348090919063ffffffff16565b61348090919063ffffffff16565b60158190555083600e81905550826014819055508160128190555080601081905550611c40601054611c32601254611c24601454600e5461348090919063ffffffff16565b61348090919063ffffffff16565b61348090919063ffffffff16565b601681905550846017819055506001601754611c5c919061493c565b6015541115611ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9790614b8d565b60405180910390fd5b6001601754611caf919061493c565b6016541115611cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cea90614bf5565b60405180910390fd5b505050505050505050565b60205f9054906101000a900460ff1681565b611d1861291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9b9061481b565b60405180910390fd5b6032600454611db3919061493c565b8310611df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611deb90614c5d565b60405180910390fd5b620186a0600454611e05919061493c565b8311611e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3d90614ceb565b60405180910390fd5b6032600454611e55919061493c565b8210611e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8d90614c5d565b60405180910390fd5b620186a0600454611ea7919061493c565b8211611ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edf90614ceb565b60405180910390fd5b80602060016101000a81548160ff0219169083151502179055508360205f6101000a81548160ff02191690831515021790555082602181905550816022819055506021546023819055507f1b21a6f0981d82826d83c7cb6ec42c702b3f4759368e947d004d1ac6c6a350c1602060019054906101000a900460ff1660205f9054906101000a900460ff16602154602254604051611f889493929190614d09565b60405180910390a150505050565b611f9e61291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461202a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120219061481b565b60405180910390fd5b5f5b838390508110156120c35781600c5f86868581811061204e5761204d614a31565b5b905060200201602081019061206391906140d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550806120bc90614afc565b905061202c565b50505050565b6120d161291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461215d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121549061481b565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f479050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848461220291906148ce565b61220c919061493c565b90811502906040515f60405180830381858888f19350505050158015612234573d5f803e3d5ffd5b507f024874b050ef5d5d90040914ceb89066ec34b5b1dc5ce9cf68ff59bd598a124f826040516122649190613edf565b60405180910390a15050565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6122fa61291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237d9061481b565b60405180910390fd5b8260195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd7fdb40ec018d4a1874293e1c569bec2adf78e8ed880973e28610c18ea3ca4bf60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516124dc93929190614d4c565b60405180910390a1505050565b5f6124f261291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461257e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125759061481b565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e390614dcb565b60405180910390fd5b5f820361266e578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161262c91906144d8565b602060405180830381865afa158015612647573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061266b9190614dfd565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f838360405161269f929190614e28565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016126e2929190614e28565b6020604051808303815f875af11580156126fe573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127229190614e63565b905092915050565b61273261291f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b59061481b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361282c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282390614efe565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601e60149054906101000a900460ff1681565b5f33905090565b5f61298f612932611339565b6129816129726002612964601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611572565b6133c090919063ffffffff16565b856133c090919063ffffffff16565b61343790919063ffffffff16565b9050919050565b5f8383111582906129dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d49190613fe8565b60405180910390fd5b505f83856129eb9190614f1c565b9050809150509392505050565b5f60245f9054906101000a900460ff1615612a1f57612a188484846131a0565b9050613199565b601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612aaa575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612b03575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612b565750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612d535760065482612b6885611572565b612b729190614f4f565b1115612bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612baa90614fcc565b60405180910390fd5b601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612c1b5750601e60159054906101000a900460ff165b8015612c6e5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612d525742601f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce990615034565b60405180910390fd5b601e60169054906101000a900460ff1660ff1642612d109190614f4f565b601f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612de757600554821115612de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ddd9061509c565b60405180910390fd5b5b601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612e72575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612ec55750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612f1a57601e60149054906101000a900460ff16612f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f1090615104565b60405180910390fd5b5b612f226134dd565b15612f3057612f2f613579565b5b5f612f3a836114fc565b9050612fc3816040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060075f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129969092919063ffffffff16565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f61300e86613b10565b801561301f575061301e85613b10565b5b6130295781613092565b613091601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614613086575f613089565b60015b878785613b63565b5b90506130e48160075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461348090919063ffffffff16565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61317d84611383565b60405161318a9190613edf565b60405180910390a36001925050505b9392505050565b5f806131ab836114fc565b9050613234816040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060075f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129969092919063ffffffff16565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506132c58160075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461348090919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516133639190613edf565b60405180910390a360019150509392505050565b5f6133b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612996565b905092915050565b5f8083036133d0575f9050613431565b5f82846133dd91906148ce565b90508284826133ec919061493c565b1461342c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161342390615192565b60405180910390fd5b809150505b92915050565b5f61347883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613e66565b905092915050565b5f80828461348e9190614f4f565b9050838110156134d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134ca906151fa565b60405180910390fd5b8091505092915050565b5f601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015613547575060245f9054906101000a900460ff16155b801561355e575060205f9054906101000a900460ff165b8015613574575060235461357130611572565b10155b905090565b600160245f6101000a81548160ff0219169083151502179055505f6135a2601b54601c54610dad565b6135ae57600e546135b0565b5f5b90505f6135ca60145460165461337790919063ffffffff16565b90505f61360760026135f9846135eb876023546133c090919063ffffffff16565b61343790919063ffffffff16565b61343790919063ffffffff16565b90505f61361f8260235461337790919063ffffffff16565b90505f600267ffffffffffffffff81111561363d5761363c614190565b5b60405190808252806020026020018201604052801561366b5781602001602082028036833780820191505090505b50905030815f8151811061368257613681614a31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106136f2576136f1614a31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401613792959493929190615308565b5f604051808303815f87803b1580156137a9575f80fd5b505af11580156137bb573d5f803e3d5ffd5b505050505f6137d3824761337790919063ffffffff16565b90505f6137fc6137ed60028a61343790919063ffffffff16565b8861337790919063ffffffff16565b90505f613839600261382b8461381d600e54886133c090919063ffffffff16565b61343790919063ffffffff16565b61343790919063ffffffff16565b90505f61386383613855601254876133c090919063ffffffff16565b61343790919063ffffffff16565b90505f61388d8461387f601054886133c090919063ffffffff16565b61343790919063ffffffff16565b90505f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516138d59061538d565b5f6040518083038185875af1925050503d805f811461390f576040519150601f19603f3d011682016040523d82523d5f602084013e613914565b606091505b50509050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161395d9061538d565b5f6040518083038185875af1925050503d805f8114613997576040519150601f19603f3d011682016040523d82523d5f602084013e61399c565b606091505b5050809150505f8a1115613aae57601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308d5f8060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613a30969594939291906153a1565b60606040518083038185885af1158015613a4c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190613a719190615400565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848b604051613aa5929190615450565b60405180910390a15b602060019054906101000a900460ff1615613adf5760215460235414613ad657602154613ada565b6022545b613ae3565b6023545b6023819055505050505050505050505050505f60245f6101000a81548160ff021916908315150217905550565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16159050919050565b5f806001151586151514613bf457613bef601754613be1613bd2601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611378565b866133c090919063ffffffff16565b61343790919063ffffffff16565b613c73565b613c72601754613c64613c55601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146117cf565b866133c090919063ffffffff16565b61343790919063ffffffff16565b5b90505f6001151587151514613cb057613cab601654613c9d601454856133c090919063ffffffff16565b61343790919063ffffffff16565b613cda565b613cd9601554613ccb601354856133c090919063ffffffff16565b61343790919063ffffffff16565b5b9050613cf18160085461337790919063ffffffff16565b6008819055505f613d0b828461337790919063ffffffff16565b9050613d5d8160075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461348090919063ffffffff16565b60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef613df684611383565b604051613e039190613edf565b60405180910390a37fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac82600854604051613e3e929190615450565b60405180910390a1613e59838661337790919063ffffffff16565b9350505050949350505050565b5f8083118290613eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ea39190613fe8565b60405180910390fd5b505f8385613eba919061493c565b9050809150509392505050565b5f819050919050565b613ed981613ec7565b82525050565b5f602082019050613ef25f830184613ed0565b92915050565b5f604051905090565b5f80fd5b5f80fd5b613f1281613ec7565b8114613f1c575f80fd5b50565b5f81359050613f2d81613f09565b92915050565b5f60208284031215613f4857613f47613f01565b5b5f613f5584828501613f1f565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613f95578082015181840152602081019050613f7a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613fba82613f5e565b613fc48185613f68565b9350613fd4818560208601613f78565b613fdd81613fa0565b840191505092915050565b5f6020820190508181035f8301526140008184613fb0565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61403182614008565b9050919050565b61404181614027565b811461404b575f80fd5b50565b5f8135905061405c81614038565b92915050565b5f806040838503121561407857614077613f01565b5b5f6140858582860161404e565b925050602061409685828601613f1f565b9150509250929050565b5f8115159050919050565b6140b4816140a0565b82525050565b5f6020820190506140cd5f8301846140ab565b92915050565b5f602082840312156140e8576140e7613f01565b5b5f6140f58482850161404e565b91505092915050565b5f806040838503121561411457614113613f01565b5b5f61412185828601613f1f565b925050602061413285828601613f1f565b9150509250929050565b5f805f6060848603121561415357614152613f01565b5b5f6141608682870161404e565b93505060206141718682870161404e565b925050604061418286828701613f1f565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6141c682613fa0565b810181811067ffffffffffffffff821117156141e5576141e4614190565b5b80604052505050565b5f6141f7613ef8565b905061420382826141bd565b919050565b5f67ffffffffffffffff82111561422257614221614190565b5b602082029050602081019050919050565b5f80fd5b5f61424961424484614208565b6141ee565b9050808382526020820190506020840283018581111561426c5761426b614233565b5b835b818110156142955780614281888261404e565b84526020840193505060208101905061426e565b5050509392505050565b5f82601f8301126142b3576142b261418c565b5b81356142c3848260208601614237565b91505092915050565b5f67ffffffffffffffff8211156142e6576142e5614190565b5b602082029050602081019050919050565b5f614309614304846142cc565b6141ee565b9050808382526020820190506020840283018581111561432c5761432b614233565b5b835b8181101561435557806143418882613f1f565b84526020840193505060208101905061432e565b5050509392505050565b5f82601f8301126143735761437261418c565b5b81356143838482602086016142f7565b91505092915050565b5f80604083850312156143a2576143a1613f01565b5b5f83013567ffffffffffffffff8111156143bf576143be613f05565b5b6143cb8582860161429f565b925050602083013567ffffffffffffffff8111156143ec576143eb613f05565b5b6143f88582860161435f565b9150509250929050565b61440b816140a0565b8114614415575f80fd5b50565b5f8135905061442681614402565b92915050565b5f6020828403121561444157614440613f01565b5b5f61444e84828501614418565b91505092915050565b5f60ff82169050919050565b61446c81614457565b82525050565b5f6020820190506144855f830184614463565b92915050565b5f80604083850312156144a1576144a0613f01565b5b5f6144ae8582860161404e565b92505060206144bf85828601614418565b9150509250929050565b6144d281614027565b82525050565b5f6020820190506144eb5f8301846144c9565b92915050565b5f80fd5b5f8083601f84011261450a5761450961418c565b5b8235905067ffffffffffffffff811115614527576145266144f1565b5b60208301915083602082028301111561454357614542614233565b5b9250929050565b5f805f6040848603121561456157614560613f01565b5b5f84013567ffffffffffffffff81111561457e5761457d613f05565b5b61458a868287016144f5565b9350935050602061459d86828701614418565b9150509250925092565b5f805f805f805f805f6101208a8c0312156145c5576145c4613f01565b5b5f6145d28c828d01613f1f565b99505060206145e38c828d01613f1f565b98505060406145f48c828d01613f1f565b97505060606146058c828d01613f1f565b96505060806146168c828d01613f1f565b95505060a06146278c828d01613f1f565b94505060c06146388c828d01613f1f565b93505060e06146498c828d01613f1f565b92505061010061465b8c828d01613f1f565b9150509295985092959850929598565b5f805f806080858703121561468357614682613f01565b5b5f61469087828801614418565b94505060206146a187828801613f1f565b93505060406146b287828801613f1f565b92505060606146c387828801614418565b91505092959194509250565b5f80604083850312156146e5576146e4613f01565b5b5f6146f28582860161404e565b92505060206147038582860161404e565b9150509250929050565b5f805f6060848603121561472457614723613f01565b5b5f6147318682870161404e565b93505060206147428682870161404e565b92505060406147538682870161404e565b9150509250925092565b5f819050919050565b5f61478061477b61477684614008565b61475d565b614008565b9050919050565b5f61479182614766565b9050919050565b5f6147a282614787565b9050919050565b6147b281614798565b82525050565b5f6020820190506147cb5f8301846147a9565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f614805602083613f68565b9150614810826147d1565b602082019050919050565b5f6020820190508181035f830152614832816147f9565b9050919050565b7f43616e6e6f7420736574206d61782054582062656c6f77202e312500000000005f82015250565b5f61486d601b83613f68565b915061487882614839565b602082019050919050565b5f6020820190508181035f83015261489a81614861565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6148d882613ec7565b91506148e383613ec7565b92508282026148f181613ec7565b91508282048414831517614908576149076148a1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61494682613ec7565b915061495183613ec7565b9250826149615761496061490f565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806149b057607f821691505b6020821081036149c3576149c261496c565b5b50919050565b7f4c656e6774687320646f206e6f74206d617463682e00000000000000000000005f82015250565b5f6149fd601583613f68565b9150614a08826149c9565b602082019050919050565b5f6020820190508181035f830152614a2a816149f1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000005f82015250565b5f614a92601283613f68565b9150614a9d82614a5e565b602082019050919050565b5f6020820190508181035f830152614abf81614a86565b9050919050565b5f61ffff82169050919050565b5f614add82614ac6565b915061ffff8203614af157614af06148a1565b5b600182019050919050565b5f614b0682613ec7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614b3857614b376148a1565b5b600182019050919050565b7f43616e6e6f74207365742062757920666565732061626f7665203230250000005f82015250565b5f614b77601d83613f68565b9150614b8282614b43565b602082019050919050565b5f6020820190508181035f830152614ba481614b6b565b9050919050565b7f43616e6e6f74207365742073656c6c20666565732061626f76652032302500005f82015250565b5f614bdf601e83613f68565b9150614bea82614bab565b602082019050919050565b5f6020820190508181035f830152614c0c81614bd3565b9050919050565b7f43616e6e6f7420736574207377617020616d6f756e742061626f7665203225005f82015250565b5f614c47601f83613f68565b9150614c5282614c13565b602082019050919050565b5f6020820190508181035f830152614c7481614c3b565b9050919050565b7f43616e6e6f7420736574207377617020616d6f756e742062656c6f7720302e305f8201527f3031250000000000000000000000000000000000000000000000000000000000602082015250565b5f614cd5602383613f68565b9150614ce082614c7b565b604082019050919050565b5f6020820190508181035f830152614d0281614cc9565b9050919050565b5f608082019050614d1c5f8301876140ab565b614d2960208301866140ab565b614d366040830185613ed0565b614d436060830184613ed0565b95945050505050565b5f606082019050614d5f5f8301866144c9565b614d6c60208301856144c9565b614d7960408301846144c9565b949350505050565b7f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e735f82015250565b5f614db5602083613f68565b9150614dc082614d81565b602082019050919050565b5f6020820190508181035f830152614de281614da9565b9050919050565b5f81519050614df781613f09565b92915050565b5f60208284031215614e1257614e11613f01565b5b5f614e1f84828501614de9565b91505092915050565b5f604082019050614e3b5f8301856144c9565b614e486020830184613ed0565b9392505050565b5f81519050614e5d81614402565b92915050565b5f60208284031215614e7857614e77613f01565b5b5f614e8584828501614e4f565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614ee8602683613f68565b9150614ef382614e8e565b604082019050919050565b5f6020820190508181035f830152614f1581614edc565b9050919050565b5f614f2682613ec7565b9150614f3183613ec7565b9250828203905081811115614f4957614f486148a1565b5b92915050565b5f614f5982613ec7565b9150614f6483613ec7565b9250828201905080821115614f7c57614f7b6148a1565b5b92915050565b7f4d61782057616c6c6574204578636565646564000000000000000000000000005f82015250565b5f614fb6601383613f68565b9150614fc182614f82565b602082019050919050565b5f6020820190508181035f830152614fe381614faa565b9050919050565b7f506c65617365207761697420666f72206265747765656e2062757973000000005f82015250565b5f61501e601c83613f68565b915061502982614fea565b602082019050919050565b5f6020820190508181035f83015261504b81615012565b9050919050565b7f5472616e73616374696f6e20416d6f756e7420457863656564656400000000005f82015250565b5f615086601b83613f68565b915061509182615052565b602082019050919050565b5f6020820190508181035f8301526150b38161507a565b9050919050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f6150ee601483613f68565b91506150f9826150ba565b602082019050919050565b5f6020820190508181035f83015261511b816150e2565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61517c602183613f68565b915061518782615122565b604082019050919050565b5f6020820190508181035f8301526151a981615170565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6151e4601b83613f68565b91506151ef826151b0565b602082019050919050565b5f6020820190508181035f830152615211816151d8565b9050919050565b5f819050919050565b5f61523b61523661523184615218565b61475d565b613ec7565b9050919050565b61524b81615221565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61528381614027565b82525050565b5f615294838361527a565b60208301905092915050565b5f602082019050919050565b5f6152b682615251565b6152c0818561525b565b93506152cb8361526b565b805f5b838110156152fb5781516152e28882615289565b97506152ed836152a0565b9250506001810190506152ce565b5085935050505092915050565b5f60a08201905061531b5f830188613ed0565b6153286020830187615242565b818103604083015261533a81866152ac565b905061534960608301856144c9565b6153566080830184613ed0565b9695505050505050565b5f81905092915050565b50565b5f6153785f83615360565b91506153838261536a565b5f82019050919050565b5f6153978261536d565b9150819050919050565b5f60c0820190506153b45f8301896144c9565b6153c16020830188613ed0565b6153ce6040830187615242565b6153db6060830186615242565b6153e860808301856144c9565b6153f560a0830184613ed0565b979650505050505050565b5f805f6060848603121561541757615416613f01565b5b5f61542486828701614de9565b935050602061543586828701614de9565b925050604061544686828701614de9565b9150509250925092565b5f6040820190506154635f830185613ed0565b6154706020830184613ed0565b939250505056fea264697066735822122073455e6eba3f85562a499d3b8484f72d77546802a88673b8622d5f9790030c4964736f6c63430008150033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004506570690000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045045504900000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : swapRouterAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : tName (string): Pepi
Arg [2] : tSymbol (string): PEPI

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [4] : 5065706900000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [6] : 5045504900000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

4248:17122:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6289:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18817:287;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7861:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8376:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4789:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20561:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17403:121;;;;;;;;;;;;;:::i;:::-;;4839:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7690:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18574:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8904:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14037:394;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20223:144;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12040:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11059:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7784:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19705:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10905:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8610:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5922:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8096:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3841:148;;;;;;;;;;;;;:::i;:::-;;13895:134;;;;;;;;;;;;;:::i;:::-;;5966:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4649:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11935:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8019:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17291:104;;;;;;;;;;;;;:::i;:::-;;3624:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4716:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7938:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19118:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6022:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5854:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8740:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17532:1029;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6081:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16538:745;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19333:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19556:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13182:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8226:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19880:335;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13452:431;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3997:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5823:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5882:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6289:49;;;;:::o;18817:287::-;3761:12;:10;:12::i;:::-;3751:22;;:6;;;;;;;;;;:22;;;3743:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18945:1:::1;18923:18;:23;;18915:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;19040:4;19017:18;19002:12;;:33;;;;:::i;:::-;19001:43;;;;:::i;:::-;18986:12;:58;;;;19056:32;19075:12;;19056:32;;;;;;:::i;:::-;;;;;;;;18817:287:::0;:::o;7861:71::-;7900:13;7924:5;7917:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7861:71;:::o;8376:226::-;8461:4;8513:6;8478:11;:23;8490:10;8478:23;;;;;;;;;;;;;;;:32;8502:7;8478:32;;;;;;;;;;;;;;;:41;;;;8556:7;8535:37;;8544:10;8535:37;;;8565:6;8535:37;;;;;;:::i;:::-;;;;;;;;8590:4;8583:11;;8376:226;;;;:::o;4789:43::-;;;;;;;;;;;;;;;;;:::o;20561:163::-;20652:4;20704:6;20672:29;20692:8;20672:19;:29::i;:::-;:38;20665:45;;20561:163;;;;:::o;17403:121::-;3761:12;:10;:12::i;:::-;3751:22;;:6;;;;;;;;;;:22;;;3743:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17466:11:::1;;;;;;;;;;;17457:21;;;::::0;::::1;;17507:5;17493:11;;:19;;;;;;;;;;;;;;;;;;17403:121::o:0;4839:46::-;;;;:::o;7690:88::-;7745:7;7763:12;;7756:19;;7690:88;:::o;18574:235::-;3761:12;:10;:12::i;:::-;3751:22;;:6;;;;;;;;;;:22;;;3743:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18693:1:::1;18673:16;:21;;18665:30;;;::::0;::::1;;18756:4;18735:16;18720:12;;:31;;;;:::i;:::-;18719:41;;;;:::i;:::-;18702:14;:58;;;;18772:29;18786:14;;18772:29;;;;;;:::i;:::-;;;;;;;;18574:235:::0;:::o;8904:370::-;9004:4;9059:17;9024:11;:19;9036:6;9024:19;;;;;;;;;;;;;;;:31;9044:10;9024:31;;;;;;;;;;;;;;;;:52;9021:186;;9126:69;9162:6;9126:69;;;;;;;;;;;;;;;;;:11;:19;9138:6;9126:19;;;;;;;;;;;;;;;:31;9146:10;9126:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9092:11;:19;9104:6;9092:19;;;;;;;;;;;;;;;:31;9112:10;9092:31;;;;;;;;;;;;;;;:103;;;;9021:186;9226:40;9240:6;9248:9;9259:6;9226:13;:40::i;:::-;9219:47;;8904:370;;;;;:::o;14037:394::-;3761:12;:10;:12::i;:::-;3751:22;;:6;;;;;;;;;;:22;;;3743:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14172:7:::1;:14;14153:8;:15;:33;14145:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14228:8;14223:201;14246:8;:15;14242:1;:19;;;14223:201;;;14312:7;14320:1;14312:10;;;;;;;;;;:::i;:::-;;;;;;;;14287:21;14297:10;14287:9;:21::i;:::-;:35;;14279:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;14363:49;14378:10;14389:8;14398:1;14389:11;;;;;;;;;;:::i;:::-;;;;;;;;14401:7;14409:1;14401:10;;;;;;;;;;:::i;:::-;;;;;;;;14363:14;:49::i;:::-;;14263:3;;;;;:::i;:::-;;;;14223:201;;;;14037:394:::0;;:::o;20223:144::-;20282:7;20305:54;20343:15;4465:42;20343:9;:15::i;:::-;20305:33;20322:15;4383:42;20322:9;:15::i;:::-;20305:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;20298:61;;20223:144;:::o;12040:99::-;12092:7;12119:12;;12112:19;;12040:99;;;:::o;11059:155::-;11129:7;11156:50;11189:16;;11156:28;11171:12;;11156:10;:14;;:28;;;;:::i;:::-;:32;;:50;;;;:::i;:::-;11149:57;;11059:155;;;:::o;7784:71::-;7827:5;4583:1;7836:16;;7784:71;:::o;19705:163::-;3761:12;:10;:12::i;:::-;3751:22;;:6;;;;;;;;;;:22;;;3743:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19815:6:::1;19793:11;:19;19805:6;19793:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;19854:6;19828:15;:23;19844:6;19828:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;19705:163:::0;;:::o;10905:146::-;10970:7;10997:46;11030:12;;10997:28;11008:16;;10997:6;:10;;:28;;;;:::i;:::-;:32;;:46;;;;:::i;:::-;10990:53;;10905:146;;;:::o;8610:122::-;8665:4;8689:35;8697:7;8706:17;8689:7;:35::i;:::-;8682:42;;8610:122;;;:::o;5922:37::-;;;;;;;;;;;;;:::o;8096:124::-;8162:7;8180:37;8200:7;:16;8208:7;8200:16;;;;;;;;;;;;;;;;8180:19;:37::i;:::-;8173:44;;8096:124;;;:::o;3841:148::-;3761:12;:10;:12::i;:::-;3751:22;;:6;;;;;;;;;;:22;;;3743:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3948:1:::1;3911:40;;3932:6;::::0;::::1;;;;;;;;3911:40;;;;;;;;;;;;3979:1;3962:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3841:148::o:0;13895:134::-;3761:12;:10;:12::i;:::-;3751:22;;:6;;;;;;;;;;:22;;;3743:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13972:12:::1;;13955:14;:29;;;;14007:12;;13992;:27;;;;13895:134::o:0;5966:39::-;;;;;;;;;;;;;:::o;4649:54::-;;;;:::o;11935:97::-;11986:7;12013:11;;12006:18;;11935:97;;;:::o;8019:71::-;8062:7;8080;:5;:7::i;:::-;8073:14;;8019:71;:::o;17291:104::-;3761:12;:10;:12::i;:::-;3751:22;;:6;;;;;;;;;;:22;;;3743:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17350:11:::1;;;;;;;;;;;17349:12;17340:22;;;::::0;::::1;;17383:4;17369:11;;:18;;;;;;;;;;;;;;;;;;17291:104::o:0;3624:79::-;3662:7;3689:6;;;;;;;;;;;3682:13;;3624:79;:::o;4716:56::-;;;;:::o;7938:75::-;7979:13;8003:7;7996:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7938:75;:::o;19118:207::-;3761:12;:10;:12::i;:::-;3751:22;;:6;;;;;;;;;;:22;;;3743:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19227:9:::1;19222:96;19242:9;;:16;;19238:1;:20;19222:96;;;19300:6;19272:11;:25;19284:9;;19294:1;19284:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19272:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;19260:3;;;;:::i;:::-;;;19222:96;;;;19118:207:::0;;;:::o;6022:46::-;;;;;;;;;;;;;;;;;:::o;5854:19::-;;;;;;;;;;;;;:::o;8740:156::-;8820:4;8844:44;8858:10;8870:9;8881:6;8844:13;:44::i;:::-;8837:51;;8740:156;;;;:::o;17532:1029::-;3761:12;:10;:12::i;:::-;3751:22;;:6;;;;;;;;;;:22;;;3743:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17839:16:::1;17821:15;:34;;;;17881:17;17862:16;:36;;;;17923:16;17905:15;:34;;;;17959:11;17946:10;:24;;;;17991:74;18054:10;;17991:58;18033:15;;17991:37;18011:16;;17991:15;;:19;;:37;;;;:::i;:::-;:41;;:58;;;;:::i;:::-;:62;;:74;;;;:::i;:::-;17977:11;:88;;;;18093:17;18074:16;:36;;;;18137:18;18117:17;:38;;;;18181:17;18162:16;:36;;;;18219:12;18205:11;:26;;;;18253:78;18319:11;;18253:61;18297:16;;18253:39;18274:17;;18253:16;;:20;;:39;;;;:::i;:::-;:43;;:61;;;;:::i;:::-;:65;;:78;;;;:::i;:::-;18238:12;:93;;;;18364:15;18347:14;:32;;;;18426:1;18411:14;;:16;;;;:::i;:::-;18396:11;;:31;;18388:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;18506:1;18491:14;;:16;;;;:::i;:::-;18476:12;;:31;;18468:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;17532:1029:::0;;;;;;;;;:::o;6081:31::-;;;;;;;;;;;;;:::o;16538:745::-;3761:12;:10;:12::i;:::-;3751:22;;:6;;;;;;;;;;:22;;;3743:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16703:2:::1;16690:12;;:15;;;;:::i;:::-;16678:8;:28;16670:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;16782:6;16769:12;;:19;;;;:::i;:::-;16757:8;:32;16749:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;16869:2;16856:12;;:15;;;;:::i;:::-;16844:8;:28;16836:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;16948:6;16935:12;;:19;;;;:::i;:::-;16923:8;:32;16915:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;17019:10;17002:14;;:27;;;;;;;;;;;;;;;;;;17051:8;17036:12;;:23;;;;;;;;;;;;;;;;;;17087:8;17066:18;:29;;;;17123:8;17102:18;:29;;;;17154:18;;17138:13;:34;;;;17190:85;17206:14;;;;;;;;;;;17222:12;;;;;;;;;;;17236:18;;17256;;17190:85;;;;;;;;;:::i;:::-;;;;;;;;16538:745:::0;;;;:::o;19333:215::-;3761:12;:10;:12::i;:::-;3751:22;;:6;;;;;;;;;;:22;;;3743:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19445:9:::1;19440:100;19460:9;;:16;;19456:1;:20;19440:100;;;19522:6;19490:15;:29;19506:9;;19516:1;19506:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19490:29;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;19478:3;;;;:::i;:::-;;;19440:100;;;;19333:215:::0;;;:::o;19556:135::-;3761:12;:10;:12::i;:::-;3751:22;;:6;;;;;;;;;;:22;;;3743:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19677:6:::1;19650:16;:24;19667:6;19650:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;19556:135:::0;;:::o;13182:261::-;13271:17;13291:21;13271:41;;13331:12;;;;;;;;;;;13323:30;;:66;13385:3;13366:16;13354:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;13323:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13407:28;13418:16;13407:28;;;;;;:::i;:::-;;;;;;;;13260:183;13182:261;:::o;8226:133::-;8310:7;8328:11;:19;8340:6;8328:19;;;;;;;;;;;;;;;:28;8348:7;8328:28;;;;;;;;;;;;;;;;8321:35;;8226:133;;;;:::o;19880:335::-;3761:12;:10;:12::i;:::-;3751:22;;:6;;;;;;;;;;:22;;;3743:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20039:18:::1;20019:17;;:38;;;;;;;;;;;;;;;;;;20079:13;20064:12;;:28;;;;;;;;;;;;;;;;;;20116:15;20099:14;;:32;;;;;;;;;;;;;;;;;;20145:62;20159:17;;;;;;;;;;;20178:12;;;;;;;;;;;20192:14;;;;;;;;;;;20145:62;;;;;;;;:::i;:::-;;;;;;;;19880:335:::0;;;:::o;13452:431::-;13559:4;3761:12;:10;:12::i;:::-;3751:22;;:6;;;;;;;;;;:22;;;3743:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13605:4:::1;13581:29;;:12;:29;;::::0;13573:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;13669:1;13659:6;:11:::0;13656:96:::1;;13702:12;13695:30;;;13734:4;13695:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13686:54;;13656:96;13767:32;13778:12;13792:6;13767:32;;;;;;;:::i;:::-;;;;;;;;13824:12;13817:29;;;13847:10;13859:6;13817:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13810:56;;13452:431:::0;;;;:::o;3997:244::-;3761:12;:10;:12::i;:::-;3751:22;;:6;;;;;;;;;;:22;;;3743:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4106:1:::1;4086:22;;:8;:22;;::::0;4078:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4196:8;4167:38;;4188:6;::::0;::::1;;;;;;;;4167:38;;;;;;;;;;;;4225:8;4216:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3997:244:::0;:::o;5823:24::-;;;;;;;;;;;;;:::o;5882:31::-;;;;;;;;;;;;;:::o;2254:107::-;2299:15;2342:10;2327:26;;2254:107;:::o;20375:178::-;20456:7;20479:64;20520:22;:20;:22::i;:::-;20479:36;20492:22;20512:1;20492:15;20502:4;;;;;;;;;;;20492:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;20479:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;20472:71;;20375:178;;;:::o;1433:192::-;1519:7;1552:1;1547;:6;;1555:12;1539:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1579:9;1595:1;1591;:5;;;;:::i;:::-;1579:17;;1616:1;1609:8;;;1433:192;;;;;:::o;9282:1615::-;9374:4;9394:6;;;;;;;;;;;9391:63;;;9410:41;9425:6;9433:9;9444:6;9410:14;:41::i;:::-;9403:48;;;;9391:63;9483:4;;;;;;;;;;;9470:17;;:9;:17;;;;:38;;;;;4383:42;9491:17;;:9;:17;;;;9470:38;:72;;;;;9525:17;;;;;;;;;;;9512:30;;:9;:30;;;;9470:72;:103;;;;;9547:15;:26;9563:9;9547:26;;;;;;;;;;;;;;;;;;;;;;;;;9546:27;9470:103;9466:527;;;9631:14;;9621:6;9598:20;9608:9;9598;:20::i;:::-;:29;;;;:::i;:::-;:47;;9590:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9696:4;;;;;;;;;;;9686:14;;:6;:14;;;:49;;;;;9717:18;;;;;;;;;;;9686:49;:94;;;;;9753:16;:27;9770:9;9753:27;;;;;;;;;;;;;;;;;;;;;;;;;9752:28;9686:94;9682:290;;;9832:15;9805:13;:24;9819:9;9805:24;;;;;;;;;;;;;;;;:42;9797:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;9939:21;;;;;;;;;;;9921:39;;:15;:39;;;;:::i;:::-;9894:13;:24;9908:9;9894:24;;;;;;;;;;;;;;;:66;;;;9682:290;9466:527;10017:15;:23;10033:6;10017:23;;;;;;;;;;;;;;;;;;;;;;;;;10013:118;;10075:12;;10065:6;:22;;10057:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10013:118;10165:4;;;;;;;;;;;10152:17;;:9;:17;;;;:38;;;;;4383:42;10173:17;;:9;:17;;;;10152:38;:69;;;;;10195:15;:26;10211:9;10195:26;;;;;;;;;;;;;;;;;;;;;;;;;10194:27;10152:69;10148:155;;;10246:11;;;;;;;;;;;10238:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10148:155;10318:16;:14;:16::i;:::-;10315:35;;;10337:10;:8;:10::i;:::-;10315:35;10362:24;10389:26;10408:6;10389:18;:26::i;:::-;10362:53;;10446:61;10466:16;10446:61;;;;;;;;;;;;;;;;;:7;:15;10454:6;10446:15;;;;;;;;;;;;;;;;:19;;:61;;;;;:::i;:::-;10428:7;:15;10436:6;10428:15;;;;;;;;;;;;;;;:79;;;;10520:26;10549:21;10563:6;10549:13;:21::i;:::-;:49;;;;;10574:24;10588:9;10574:13;:24::i;:::-;10549:49;:158;;10691:16;10549:158;;;10601:87;10632:4;;;;;;;;;;;10622:14;;:6;:14;;;:28;;10645:5;10622:28;;;10638:4;10622:28;10652:6;10660:9;10671:16;10601:20;:87::i;:::-;10549:158;10520:187;;10739:42;10762:18;10739:7;:18;10747:9;10739:18;;;;;;;;;;;;;;;;:22;;:42;;;;:::i;:::-;10718:7;:18;10726:9;10718:18;;;;;;;;;;;;;;;:63;;;;10816:9;10799:68;;10808:6;10799:68;;;10827:39;10847:18;10827:19;:39::i;:::-;10799:68;;;;;;:::i;:::-;;;;;;;;10885:4;10878:11;;;;9282:1615;;;;;;:::o;11222:406::-;11315:4;11332:24;11359:26;11378:6;11359:18;:26::i;:::-;11332:53;;11414:61;11434:16;11414:61;;;;;;;;;;;;;;;;;:7;:15;11422:6;11414:15;;;;;;;;;;;;;;;;:19;;:61;;;;;:::i;:::-;11396:7;:15;11404:6;11396:15;;;;;;;;;;;;;;;:79;;;;11507:40;11530:16;11507:7;:18;11515:9;11507:18;;;;;;;;;;;;;;;;:22;;:40;;;;:::i;:::-;11486:7;:18;11494:9;11486:18;;;;;;;;;;;;;;;:61;;;;11580:9;11563:35;;11572:6;11563:35;;;11591:6;11563:35;;;;;;:::i;:::-;;;;;;;;11616:4;11609:11;;;11222:406;;;;;:::o;1291:136::-;1349:7;1376:43;1380:1;1383;1376:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1369:50;;1291:136;;;;:::o;1631:250::-;1689:7;1718:1;1713;:6;1709:47;;1743:1;1736:8;;;;1709:47;1768:9;1784:1;1780;:5;;;;:::i;:::-;1768:17;;1813:1;1808;1804;:5;;;;:::i;:::-;:10;1796:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1872:1;1865:8;;;1631:250;;;;;:::o;1887:132::-;1945:7;1972:39;1976:1;1979;1972:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1965:46;;1887:132;;;;:::o;1104:181::-;1162:7;1182:9;1198:1;1194;:5;;;;:::i;:::-;1182:17;;1223:1;1218;:6;;1210:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1276:1;1269:8;;;1104:181;;;;:::o;14443:198::-;14492:4;14530;;;;;;;;;;;14516:18;;:10;:18;;;;:38;;;;;14548:6;;;;;;;;;;;14547:7;14516:38;:63;;;;;14567:12;;;;;;;;;;;14516:63;:117;;;;;14620:13;;14592:24;14610:4;14592:9;:24::i;:::-;:41;;14516:117;14509:124;;14443:198;:::o;14649:1881::-;6394:4;6385:6;;:13;;;;;;;;;;;;;;;;;;14698:27:::1;14728:60;14744:15;;14761:26;;14728:15;:60::i;:::-;:83;;14795:16;;14728:83;;;14791:1;14728:83;14698:113;;14822:17;14842:35;14859:17;;14842:12;;:16;;:35;;;;:::i;:::-;14822:55;;14888:23;14914:60;14972:1;14914:53;14957:9;14914:38;14932:19;14914:13;;:17;;:38;;;;:::i;:::-;:42;;:53;;;;:::i;:::-;:57;;:60;;;;:::i;:::-;14888:86;;14985:20;15008:34;15026:15;15008:13;;:17;;:34;;;;:::i;:::-;14985:57;;15055:21;15093:1;15079:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15055:40;;15124:4;15106;15111:1;15106:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15150:4;;;;;;;;;;;15140;15145:1;15140:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;15167:21;15191;15167:45;;15225:6;;;;;;;;;;;:57;;;15297:12;15324:1;15340:4;15367;15387:15;15225:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15426:17;15446:40;15472:13;15446:21;:25;;:40;;;;:::i;:::-;15426:60;;15497:19;15519:41;15533:26;15557:1;15533:19;:23;;:26;;;;:::i;:::-;15519:9;:13;;:41;;;;:::i;:::-;15497:63;;15571:26;15600:55;15653:1;15600:48;15636:11;15600:31;15614:16;;15600:9;:13;;:31;;;;:::i;:::-;:35;;:48;;;;:::i;:::-;:52;;:55;;;;:::i;:::-;15571:84;;15666:26;15695:48;15731:11;15695:31;15709:16;;15695:9;:13;;:31;;;;:::i;:::-;:35;;:48;;;;:::i;:::-;15666:77;;15754:21;15778:43;15809:11;15778:26;15792:11;;15778:9;:13;;:26;;;;:::i;:::-;:30;;:43;;;;:::i;:::-;15754:67;;15835:15;15863:17;;;;;;;;;;;15855:31;;15894:18;15855:62;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15834:83;;;15952:12;;;;;;;;;;;15944:26;;15978:13;15944:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15928:68;;;;;16047:1;16029:15;:19;16026:357;;;16066:6;;;;;;;;;;;:22;;;16096:18;16142:4;16166:15;16200:1;16220::::0;16240:14:::1;;;;;;;;;;;16273:15;16066:237;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16323:48;16335:18;16355:15;16323:48;;;;;;;:::i;:::-;;;;;;;;16026:357;16412:14;;;;;;;;;;;16411:15;:111;;16462:18;;16445:13;;:35;:77;;16504:18;;16445:77;;;16483:18;;16445:77;16411:111;;;16429:13;;16411:111;16395:13;:127;;;;14687:1843;;;;;;;;;;;;6412:5:::0;6403:6;;:14;;;;;;;;;;;;;;;;;;14649:1881::o;11636:116::-;11698:4;11723:11;:19;11735:6;11723:19;;;;;;;;;;;;;;;;;;;;;;;;;11722:20;11715:27;;11636:116;;;:::o;12147:1026::-;12268:7;12288:27;12328:4;12318:14;;:6;:14;;;:177;;12420:75;12480:14;;12420:55;12441:33;12469:4;;;;;;;;;;;12457:16;;:8;:16;;;12441:15;:33::i;:::-;12420:16;:20;;:55;;;;:::i;:::-;:59;;:75;;;;:::i;:::-;12318:177;;;12334:74;12393:14;;12334:54;12355:32;12382:4;;;;;;;;;;;12370:16;;:8;:16;;;12355:14;:32::i;:::-;12334:16;:20;;:54;;;;:::i;:::-;:58;;:74;;;;:::i;:::-;12318:177;12288:207;;12518:27;12558:4;12548:14;;:6;:14;;;:146;;12634:60;12681:12;;12634:42;12658:17;;12634:19;:23;;:42;;;;:::i;:::-;:46;;:60;;;;:::i;:::-;12548:146;;;12564:58;12610:11;;12564:41;12588:16;;12564:19;:23;;:41;;;;:::i;:::-;:45;;:58;;;;:::i;:::-;12548:146;12518:176;;12726:41;12747:19;12726:16;;:20;;:41;;;;:::i;:::-;12707:16;:60;;;;12790:29;12822:44;12846:19;12822;:23;;:44;;;;:::i;:::-;12790:76;;12902:49;12929:21;12902:7;:22;12918:4;12902:22;;;;;;;;;;;;;;;;:26;;:49;;;;:::i;:::-;12877:7;:22;12893:4;12877:22;;;;;;;;;;;;;;;:74;;;;12994:4;12969:75;;12978:6;12969:75;;;13001:42;13021:21;13001:19;:42::i;:::-;12969:75;;;;;;:::i;:::-;;;;;;;;13060:46;13068:19;13089:16;;13060:46;;;;;;;:::i;:::-;;;;;;;;13124:41;13145:19;13124:16;:20;;:41;;;;:::i;:::-;13117:48;;;;;12147:1026;;;;;;:::o;2025:189::-;2111:7;2143:1;2139;:5;2146:12;2131:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2170:9;2186:1;2182;:5;;;;:::i;:::-;2170:17;;2205:1;2198:8;;;2025:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:75::-;475:6;508:2;502:9;492:19;;442:75;:::o;523:117::-;632:1;629;622:12;646:117;755:1;752;745:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o;1377:99::-;1429:6;1463:5;1457:12;1447:22;;1377:99;;;:::o;1482:169::-;1566:11;1600:6;1595:3;1588:19;1640:4;1635:3;1631:14;1616:29;;1482:169;;;;:::o;1657:246::-;1738:1;1748:113;1762:6;1759:1;1756:13;1748:113;;;1847:1;1842:3;1838:11;1832:18;1828:1;1823:3;1819:11;1812:39;1784:2;1781:1;1777:10;1772:15;;1748:113;;;1895:1;1886:6;1881:3;1877:16;1870:27;1719:184;1657:246;;;:::o;1909:102::-;1950:6;2001:2;1997:7;1992:2;1985:5;1981:14;1977:28;1967:38;;1909:102;;;:::o;2017:377::-;2105:3;2133:39;2166:5;2133:39;:::i;:::-;2188:71;2252:6;2247:3;2188:71;:::i;:::-;2181:78;;2268:65;2326:6;2321:3;2314:4;2307:5;2303:16;2268:65;:::i;:::-;2358:29;2380:6;2358:29;:::i;:::-;2353:3;2349:39;2342:46;;2109:285;2017:377;;;;:::o;2400:313::-;2513:4;2551:2;2540:9;2536:18;2528:26;;2600:9;2594:4;2590:20;2586:1;2575:9;2571:17;2564:47;2628:78;2701:4;2692:6;2628:78;:::i;:::-;2620:86;;2400:313;;;;:::o;2719:126::-;2756:7;2796:42;2789:5;2785:54;2774:65;;2719:126;;;:::o;2851:96::-;2888:7;2917:24;2935:5;2917:24;:::i;:::-;2906:35;;2851:96;;;:::o;2953:122::-;3026:24;3044:5;3026:24;:::i;:::-;3019:5;3016:35;3006:63;;3065:1;3062;3055:12;3006:63;2953:122;:::o;3081:139::-;3127:5;3165:6;3152:20;3143:29;;3181:33;3208:5;3181:33;:::i;:::-;3081:139;;;;:::o;3226:474::-;3294:6;3302;3351:2;3339:9;3330:7;3326:23;3322:32;3319:119;;;3357:79;;:::i;:::-;3319:119;3477:1;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3448:117;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3226:474;;;;;:::o;3706:90::-;3740:7;3783:5;3776:13;3769:21;3758:32;;3706:90;;;:::o;3802:109::-;3883:21;3898:5;3883:21;:::i;:::-;3878:3;3871:34;3802:109;;:::o;3917:210::-;4004:4;4042:2;4031:9;4027:18;4019:26;;4055:65;4117:1;4106:9;4102:17;4093:6;4055:65;:::i;:::-;3917:210;;;;:::o;4133:329::-;4192:6;4241:2;4229:9;4220:7;4216:23;4212:32;4209:119;;;4247:79;;:::i;:::-;4209:119;4367:1;4392:53;4437:7;4428:6;4417:9;4413:22;4392:53;:::i;:::-;4382:63;;4338:117;4133:329;;;;:::o;4468:474::-;4536:6;4544;4593:2;4581:9;4572:7;4568:23;4564:32;4561:119;;;4599:79;;:::i;:::-;4561:119;4719:1;4744:53;4789:7;4780:6;4769:9;4765:22;4744:53;:::i;:::-;4734:63;;4690:117;4846:2;4872:53;4917:7;4908:6;4897:9;4893:22;4872:53;:::i;:::-;4862:63;;4817:118;4468:474;;;;;:::o;4948:619::-;5025:6;5033;5041;5090:2;5078:9;5069:7;5065:23;5061:32;5058:119;;;5096:79;;:::i;:::-;5058:119;5216:1;5241:53;5286:7;5277:6;5266:9;5262:22;5241:53;:::i;:::-;5231:63;;5187:117;5343:2;5369:53;5414:7;5405:6;5394:9;5390:22;5369:53;:::i;:::-;5359:63;;5314:118;5471:2;5497:53;5542:7;5533:6;5522:9;5518:22;5497:53;:::i;:::-;5487:63;;5442:118;4948:619;;;;;:::o;5573:117::-;5682:1;5679;5672:12;5696:180;5744:77;5741:1;5734:88;5841:4;5838:1;5831:15;5865:4;5862:1;5855:15;5882:281;5965:27;5987:4;5965:27;:::i;:::-;5957:6;5953:40;6095:6;6083:10;6080:22;6059:18;6047:10;6044:34;6041:62;6038:88;;;6106:18;;:::i;:::-;6038:88;6146:10;6142:2;6135:22;5925:238;5882:281;;:::o;6169:129::-;6203:6;6230:20;;:::i;:::-;6220:30;;6259:33;6287:4;6279:6;6259:33;:::i;:::-;6169:129;;;:::o;6304:311::-;6381:4;6471:18;6463:6;6460:30;6457:56;;;6493:18;;:::i;:::-;6457:56;6543:4;6535:6;6531:17;6523:25;;6603:4;6597;6593:15;6585:23;;6304:311;;;:::o;6621:117::-;6730:1;6727;6720:12;6761:710;6857:5;6882:81;6898:64;6955:6;6898:64;:::i;:::-;6882:81;:::i;:::-;6873:90;;6983:5;7012:6;7005:5;6998:21;7046:4;7039:5;7035:16;7028:23;;7099:4;7091:6;7087:17;7079:6;7075:30;7128:3;7120:6;7117:15;7114:122;;;7147:79;;:::i;:::-;7114:122;7262:6;7245:220;7279:6;7274:3;7271:15;7245:220;;;7354:3;7383:37;7416:3;7404:10;7383:37;:::i;:::-;7378:3;7371:50;7450:4;7445:3;7441:14;7434:21;;7321:144;7305:4;7300:3;7296:14;7289:21;;7245:220;;;7249:21;6863:608;;6761:710;;;;;:::o;7494:370::-;7565:5;7614:3;7607:4;7599:6;7595:17;7591:27;7581:122;;7622:79;;:::i;:::-;7581:122;7739:6;7726:20;7764:94;7854:3;7846:6;7839:4;7831:6;7827:17;7764:94;:::i;:::-;7755:103;;7571:293;7494:370;;;;:::o;7870:311::-;7947:4;8037:18;8029:6;8026:30;8023:56;;;8059:18;;:::i;:::-;8023:56;8109:4;8101:6;8097:17;8089:25;;8169:4;8163;8159:15;8151:23;;7870:311;;;:::o;8204:710::-;8300:5;8325:81;8341:64;8398:6;8341:64;:::i;:::-;8325:81;:::i;:::-;8316:90;;8426:5;8455:6;8448:5;8441:21;8489:4;8482:5;8478:16;8471:23;;8542:4;8534:6;8530:17;8522:6;8518:30;8571:3;8563:6;8560:15;8557:122;;;8590:79;;:::i;:::-;8557:122;8705:6;8688:220;8722:6;8717:3;8714:15;8688:220;;;8797:3;8826:37;8859:3;8847:10;8826:37;:::i;:::-;8821:3;8814:50;8893:4;8888:3;8884:14;8877:21;;8764:144;8748:4;8743:3;8739:14;8732:21;;8688:220;;;8692:21;8306:608;;8204:710;;;;;:::o;8937:370::-;9008:5;9057:3;9050:4;9042:6;9038:17;9034:27;9024:122;;9065:79;;:::i;:::-;9024:122;9182:6;9169:20;9207:94;9297:3;9289:6;9282:4;9274:6;9270:17;9207:94;:::i;:::-;9198:103;;9014:293;8937:370;;;;:::o;9313:894::-;9431:6;9439;9488:2;9476:9;9467:7;9463:23;9459:32;9456:119;;;9494:79;;:::i;:::-;9456:119;9642:1;9631:9;9627:17;9614:31;9672:18;9664:6;9661:30;9658:117;;;9694:79;;:::i;:::-;9658:117;9799:78;9869:7;9860:6;9849:9;9845:22;9799:78;:::i;:::-;9789:88;;9585:302;9954:2;9943:9;9939:18;9926:32;9985:18;9977:6;9974:30;9971:117;;;10007:79;;:::i;:::-;9971:117;10112:78;10182:7;10173:6;10162:9;10158:22;10112:78;:::i;:::-;10102:88;;9897:303;9313:894;;;;;:::o;10213:116::-;10283:21;10298:5;10283:21;:::i;:::-;10276:5;10273:32;10263:60;;10319:1;10316;10309:12;10263:60;10213:116;:::o;10335:133::-;10378:5;10416:6;10403:20;10394:29;;10432:30;10456:5;10432:30;:::i;:::-;10335:133;;;;:::o;10474:323::-;10530:6;10579:2;10567:9;10558:7;10554:23;10550:32;10547:119;;;10585:79;;:::i;:::-;10547:119;10705:1;10730:50;10772:7;10763:6;10752:9;10748:22;10730:50;:::i;:::-;10720:60;;10676:114;10474:323;;;;:::o;10803:86::-;10838:7;10878:4;10871:5;10867:16;10856:27;;10803:86;;;:::o;10895:112::-;10978:22;10994:5;10978:22;:::i;:::-;10973:3;10966:35;10895:112;;:::o;11013:214::-;11102:4;11140:2;11129:9;11125:18;11117:26;;11153:67;11217:1;11206:9;11202:17;11193:6;11153:67;:::i;:::-;11013:214;;;;:::o;11233:468::-;11298:6;11306;11355:2;11343:9;11334:7;11330:23;11326:32;11323:119;;;11361:79;;:::i;:::-;11323:119;11481:1;11506:53;11551:7;11542:6;11531:9;11527:22;11506:53;:::i;:::-;11496:63;;11452:117;11608:2;11634:50;11676:7;11667:6;11656:9;11652:22;11634:50;:::i;:::-;11624:60;;11579:115;11233:468;;;;;:::o;11707:118::-;11794:24;11812:5;11794:24;:::i;:::-;11789:3;11782:37;11707:118;;:::o;11831:222::-;11924:4;11962:2;11951:9;11947:18;11939:26;;11975:71;12043:1;12032:9;12028:17;12019:6;11975:71;:::i;:::-;11831:222;;;;:::o;12059:117::-;12168:1;12165;12158:12;12199:568;12272:8;12282:6;12332:3;12325:4;12317:6;12313:17;12309:27;12299:122;;12340:79;;:::i;:::-;12299:122;12453:6;12440:20;12430:30;;12483:18;12475:6;12472:30;12469:117;;;12505:79;;:::i;:::-;12469:117;12619:4;12611:6;12607:17;12595:29;;12673:3;12665:4;12657:6;12653:17;12643:8;12639:32;12636:41;12633:128;;;12680:79;;:::i;:::-;12633:128;12199:568;;;;;:::o;12773:698::-;12865:6;12873;12881;12930:2;12918:9;12909:7;12905:23;12901:32;12898:119;;;12936:79;;:::i;:::-;12898:119;13084:1;13073:9;13069:17;13056:31;13114:18;13106:6;13103:30;13100:117;;;13136:79;;:::i;:::-;13100:117;13249:80;13321:7;13312:6;13301:9;13297:22;13249:80;:::i;:::-;13231:98;;;;13027:312;13378:2;13404:50;13446:7;13437:6;13426:9;13422:22;13404:50;:::i;:::-;13394:60;;13349:115;12773:698;;;;;:::o;13477:1495::-;13608:6;13616;13624;13632;13640;13648;13656;13664;13672;13721:3;13709:9;13700:7;13696:23;13692:33;13689:120;;;13728:79;;:::i;:::-;13689:120;13848:1;13873:53;13918:7;13909:6;13898:9;13894:22;13873:53;:::i;:::-;13863:63;;13819:117;13975:2;14001:53;14046:7;14037:6;14026:9;14022:22;14001:53;:::i;:::-;13991:63;;13946:118;14103:2;14129:53;14174:7;14165:6;14154:9;14150:22;14129:53;:::i;:::-;14119:63;;14074:118;14231:2;14257:53;14302:7;14293:6;14282:9;14278:22;14257:53;:::i;:::-;14247:63;;14202:118;14359:3;14386:53;14431:7;14422:6;14411:9;14407:22;14386:53;:::i;:::-;14376:63;;14330:119;14488:3;14515:53;14560:7;14551:6;14540:9;14536:22;14515:53;:::i;:::-;14505:63;;14459:119;14617:3;14644:53;14689:7;14680:6;14669:9;14665:22;14644:53;:::i;:::-;14634:63;;14588:119;14746:3;14773:53;14818:7;14809:6;14798:9;14794:22;14773:53;:::i;:::-;14763:63;;14717:119;14875:3;14902:53;14947:7;14938:6;14927:9;14923:22;14902:53;:::i;:::-;14892:63;;14846:119;13477:1495;;;;;;;;;;;:::o;14978:753::-;15058:6;15066;15074;15082;15131:3;15119:9;15110:7;15106:23;15102:33;15099:120;;;15138:79;;:::i;:::-;15099:120;15258:1;15283:50;15325:7;15316:6;15305:9;15301:22;15283:50;:::i;:::-;15273:60;;15229:114;15382:2;15408:53;15453:7;15444:6;15433:9;15429:22;15408:53;:::i;:::-;15398:63;;15353:118;15510:2;15536:53;15581:7;15572:6;15561:9;15557:22;15536:53;:::i;:::-;15526:63;;15481:118;15638:2;15664:50;15706:7;15697:6;15686:9;15682:22;15664:50;:::i;:::-;15654:60;;15609:115;14978:753;;;;;;;:::o;15737:474::-;15805:6;15813;15862:2;15850:9;15841:7;15837:23;15833:32;15830:119;;;15868:79;;:::i;:::-;15830:119;15988:1;16013:53;16058:7;16049:6;16038:9;16034:22;16013:53;:::i;:::-;16003:63;;15959:117;16115:2;16141:53;16186:7;16177:6;16166:9;16162:22;16141:53;:::i;:::-;16131:63;;16086:118;15737:474;;;;;:::o;16217:619::-;16294:6;16302;16310;16359:2;16347:9;16338:7;16334:23;16330:32;16327:119;;;16365:79;;:::i;:::-;16327:119;16485:1;16510:53;16555:7;16546:6;16535:9;16531:22;16510:53;:::i;:::-;16500:63;;16456:117;16612:2;16638:53;16683:7;16674:6;16663:9;16659:22;16638:53;:::i;:::-;16628:63;;16583:118;16740:2;16766:53;16811:7;16802:6;16791:9;16787:22;16766:53;:::i;:::-;16756:63;;16711:118;16217:619;;;;;:::o;16842:60::-;16870:3;16891:5;16884:12;;16842:60;;;:::o;16908:142::-;16958:9;16991:53;17009:34;17018:24;17036:5;17018:24;:::i;:::-;17009:34;:::i;:::-;16991:53;:::i;:::-;16978:66;;16908:142;;;:::o;17056:126::-;17106:9;17139:37;17170:5;17139:37;:::i;:::-;17126:50;;17056:126;;;:::o;17188:144::-;17256:9;17289:37;17320:5;17289:37;:::i;:::-;17276:50;;17188:144;;;:::o;17338:167::-;17443:55;17492:5;17443:55;:::i;:::-;17438:3;17431:68;17338:167;;:::o;17511:258::-;17622:4;17660:2;17649:9;17645:18;17637:26;;17673:89;17759:1;17748:9;17744:17;17735:6;17673:89;:::i;:::-;17511:258;;;;:::o;17775:182::-;17915:34;17911:1;17903:6;17899:14;17892:58;17775:182;:::o;17963:366::-;18105:3;18126:67;18190:2;18185:3;18126:67;:::i;:::-;18119:74;;18202:93;18291:3;18202:93;:::i;:::-;18320:2;18315:3;18311:12;18304:19;;17963:366;;;:::o;18335:419::-;18501:4;18539:2;18528:9;18524:18;18516:26;;18588:9;18582:4;18578:20;18574:1;18563:9;18559:17;18552:47;18616:131;18742:4;18616:131;:::i;:::-;18608:139;;18335:419;;;:::o;18760:177::-;18900:29;18896:1;18888:6;18884:14;18877:53;18760:177;:::o;18943:366::-;19085:3;19106:67;19170:2;19165:3;19106:67;:::i;:::-;19099:74;;19182:93;19271:3;19182:93;:::i;:::-;19300:2;19295:3;19291:12;19284:19;;18943:366;;;:::o;19315:419::-;19481:4;19519:2;19508:9;19504:18;19496:26;;19568:9;19562:4;19558:20;19554:1;19543:9;19539:17;19532:47;19596:131;19722:4;19596:131;:::i;:::-;19588:139;;19315:419;;;:::o;19740:180::-;19788:77;19785:1;19778:88;19885:4;19882:1;19875:15;19909:4;19906:1;19899:15;19926:410;19966:7;19989:20;20007:1;19989:20;:::i;:::-;19984:25;;20023:20;20041:1;20023:20;:::i;:::-;20018:25;;20078:1;20075;20071:9;20100:30;20118:11;20100:30;:::i;:::-;20089:41;;20279:1;20270:7;20266:15;20263:1;20260:22;20240:1;20233:9;20213:83;20190:139;;20309:18;;:::i;:::-;20190:139;19974:362;19926:410;;;;:::o;20342:180::-;20390:77;20387:1;20380:88;20487:4;20484:1;20477:15;20511:4;20508:1;20501:15;20528:185;20568:1;20585:20;20603:1;20585:20;:::i;:::-;20580:25;;20619:20;20637:1;20619:20;:::i;:::-;20614:25;;20658:1;20648:35;;20663:18;;:::i;:::-;20648:35;20705:1;20702;20698:9;20693:14;;20528:185;;;;:::o;20719:180::-;20767:77;20764:1;20757:88;20864:4;20861:1;20854:15;20888:4;20885:1;20878:15;20905:320;20949:6;20986:1;20980:4;20976:12;20966:22;;21033:1;21027:4;21023:12;21054:18;21044:81;;21110:4;21102:6;21098:17;21088:27;;21044:81;21172:2;21164:6;21161:14;21141:18;21138:38;21135:84;;21191:18;;:::i;:::-;21135:84;20956:269;20905:320;;;:::o;21231:171::-;21371:23;21367:1;21359:6;21355:14;21348:47;21231:171;:::o;21408:366::-;21550:3;21571:67;21635:2;21630:3;21571:67;:::i;:::-;21564:74;;21647:93;21736:3;21647:93;:::i;:::-;21765:2;21760:3;21756:12;21749:19;;21408:366;;;:::o;21780:419::-;21946:4;21984:2;21973:9;21969:18;21961:26;;22033:9;22027:4;22023:20;22019:1;22008:9;22004:17;21997:47;22061:131;22187:4;22061:131;:::i;:::-;22053:139;;21780:419;;;:::o;22205:180::-;22253:77;22250:1;22243:88;22350:4;22347:1;22340:15;22374:4;22371:1;22364:15;22391:168;22531:20;22527:1;22519:6;22515:14;22508:44;22391:168;:::o;22565:366::-;22707:3;22728:67;22792:2;22787:3;22728:67;:::i;:::-;22721:74;;22804:93;22893:3;22804:93;:::i;:::-;22922:2;22917:3;22913:12;22906:19;;22565:366;;;:::o;22937:419::-;23103:4;23141:2;23130:9;23126:18;23118:26;;23190:9;23184:4;23180:20;23176:1;23165:9;23161:17;23154:47;23218:131;23344:4;23218:131;:::i;:::-;23210:139;;22937:419;;;:::o;23362:89::-;23398:7;23438:6;23431:5;23427:18;23416:29;;23362:89;;;:::o;23457:171::-;23495:3;23518:23;23535:5;23518:23;:::i;:::-;23509:32;;23563:6;23556:5;23553:17;23550:43;;23573:18;;:::i;:::-;23550:43;23620:1;23613:5;23609:13;23602:20;;23457:171;;;:::o;23634:233::-;23673:3;23696:24;23714:5;23696:24;:::i;:::-;23687:33;;23742:66;23735:5;23732:77;23729:103;;23812:18;;:::i;:::-;23729:103;23859:1;23852:5;23848:13;23841:20;;23634:233;;;:::o;23873:179::-;24013:31;24009:1;24001:6;23997:14;23990:55;23873:179;:::o;24058:366::-;24200:3;24221:67;24285:2;24280:3;24221:67;:::i;:::-;24214:74;;24297:93;24386:3;24297:93;:::i;:::-;24415:2;24410:3;24406:12;24399:19;;24058:366;;;:::o;24430:419::-;24596:4;24634:2;24623:9;24619:18;24611:26;;24683:9;24677:4;24673:20;24669:1;24658:9;24654:17;24647:47;24711:131;24837:4;24711:131;:::i;:::-;24703:139;;24430:419;;;:::o;24855:180::-;24995:32;24991:1;24983:6;24979:14;24972:56;24855:180;:::o;25041:366::-;25183:3;25204:67;25268:2;25263:3;25204:67;:::i;:::-;25197:74;;25280:93;25369:3;25280:93;:::i;:::-;25398:2;25393:3;25389:12;25382:19;;25041:366;;;:::o;25413:419::-;25579:4;25617:2;25606:9;25602:18;25594:26;;25666:9;25660:4;25656:20;25652:1;25641:9;25637:17;25630:47;25694:131;25820:4;25694:131;:::i;:::-;25686:139;;25413:419;;;:::o;25838:181::-;25978:33;25974:1;25966:6;25962:14;25955:57;25838:181;:::o;26025:366::-;26167:3;26188:67;26252:2;26247:3;26188:67;:::i;:::-;26181:74;;26264:93;26353:3;26264:93;:::i;:::-;26382:2;26377:3;26373:12;26366:19;;26025:366;;;:::o;26397:419::-;26563:4;26601:2;26590:9;26586:18;26578:26;;26650:9;26644:4;26640:20;26636:1;26625:9;26621:17;26614:47;26678:131;26804:4;26678:131;:::i;:::-;26670:139;;26397:419;;;:::o;26822:222::-;26962:34;26958:1;26950:6;26946:14;26939:58;27031:5;27026:2;27018:6;27014:15;27007:30;26822:222;:::o;27050:366::-;27192:3;27213:67;27277:2;27272:3;27213:67;:::i;:::-;27206:74;;27289:93;27378:3;27289:93;:::i;:::-;27407:2;27402:3;27398:12;27391:19;;27050:366;;;:::o;27422:419::-;27588:4;27626:2;27615:9;27611:18;27603:26;;27675:9;27669:4;27665:20;27661:1;27650:9;27646:17;27639:47;27703:131;27829:4;27703:131;:::i;:::-;27695:139;;27422:419;;;:::o;27847:529::-;28012:4;28050:3;28039:9;28035:19;28027:27;;28064:65;28126:1;28115:9;28111:17;28102:6;28064:65;:::i;:::-;28139:66;28201:2;28190:9;28186:18;28177:6;28139:66;:::i;:::-;28215:72;28283:2;28272:9;28268:18;28259:6;28215:72;:::i;:::-;28297;28365:2;28354:9;28350:18;28341:6;28297:72;:::i;:::-;27847:529;;;;;;;:::o;28382:442::-;28531:4;28569:2;28558:9;28554:18;28546:26;;28582:71;28650:1;28639:9;28635:17;28626:6;28582:71;:::i;:::-;28663:72;28731:2;28720:9;28716:18;28707:6;28663:72;:::i;:::-;28745;28813:2;28802:9;28798:18;28789:6;28745:72;:::i;:::-;28382:442;;;;;;:::o;28830:182::-;28970:34;28966:1;28958:6;28954:14;28947:58;28830:182;:::o;29018:366::-;29160:3;29181:67;29245:2;29240:3;29181:67;:::i;:::-;29174:74;;29257:93;29346:3;29257:93;:::i;:::-;29375:2;29370:3;29366:12;29359:19;;29018:366;;;:::o;29390:419::-;29556:4;29594:2;29583:9;29579:18;29571:26;;29643:9;29637:4;29633:20;29629:1;29618:9;29614:17;29607:47;29671:131;29797:4;29671:131;:::i;:::-;29663:139;;29390:419;;;:::o;29815:143::-;29872:5;29903:6;29897:13;29888:22;;29919:33;29946:5;29919:33;:::i;:::-;29815:143;;;;:::o;29964:351::-;30034:6;30083:2;30071:9;30062:7;30058:23;30054:32;30051:119;;;30089:79;;:::i;:::-;30051:119;30209:1;30234:64;30290:7;30281:6;30270:9;30266:22;30234:64;:::i;:::-;30224:74;;30180:128;29964:351;;;;:::o;30321:332::-;30442:4;30480:2;30469:9;30465:18;30457:26;;30493:71;30561:1;30550:9;30546:17;30537:6;30493:71;:::i;:::-;30574:72;30642:2;30631:9;30627:18;30618:6;30574:72;:::i;:::-;30321:332;;;;;:::o;30659:137::-;30713:5;30744:6;30738:13;30729:22;;30760:30;30784:5;30760:30;:::i;:::-;30659:137;;;;:::o;30802:345::-;30869:6;30918:2;30906:9;30897:7;30893:23;30889:32;30886:119;;;30924:79;;:::i;:::-;30886:119;31044:1;31069:61;31122:7;31113:6;31102:9;31098:22;31069:61;:::i;:::-;31059:71;;31015:125;30802:345;;;;:::o;31153:225::-;31293:34;31289:1;31281:6;31277:14;31270:58;31362:8;31357:2;31349:6;31345:15;31338:33;31153:225;:::o;31384:366::-;31526:3;31547:67;31611:2;31606:3;31547:67;:::i;:::-;31540:74;;31623:93;31712:3;31623:93;:::i;:::-;31741:2;31736:3;31732:12;31725:19;;31384:366;;;:::o;31756:419::-;31922:4;31960:2;31949:9;31945:18;31937:26;;32009:9;32003:4;31999:20;31995:1;31984:9;31980:17;31973:47;32037:131;32163:4;32037:131;:::i;:::-;32029:139;;31756:419;;;:::o;32181:194::-;32221:4;32241:20;32259:1;32241:20;:::i;:::-;32236:25;;32275:20;32293:1;32275:20;:::i;:::-;32270:25;;32319:1;32316;32312:9;32304:17;;32343:1;32337:4;32334:11;32331:37;;;32348:18;;:::i;:::-;32331:37;32181:194;;;;:::o;32381:191::-;32421:3;32440:20;32458:1;32440:20;:::i;:::-;32435:25;;32474:20;32492:1;32474:20;:::i;:::-;32469:25;;32517:1;32514;32510:9;32503:16;;32538:3;32535:1;32532:10;32529:36;;;32545:18;;:::i;:::-;32529:36;32381:191;;;;:::o;32578:169::-;32718:21;32714:1;32706:6;32702:14;32695:45;32578:169;:::o;32753:366::-;32895:3;32916:67;32980:2;32975:3;32916:67;:::i;:::-;32909:74;;32992:93;33081:3;32992:93;:::i;:::-;33110:2;33105:3;33101:12;33094:19;;32753:366;;;:::o;33125:419::-;33291:4;33329:2;33318:9;33314:18;33306:26;;33378:9;33372:4;33368:20;33364:1;33353:9;33349:17;33342:47;33406:131;33532:4;33406:131;:::i;:::-;33398:139;;33125:419;;;:::o;33550:178::-;33690:30;33686:1;33678:6;33674:14;33667:54;33550:178;:::o;33734:366::-;33876:3;33897:67;33961:2;33956:3;33897:67;:::i;:::-;33890:74;;33973:93;34062:3;33973:93;:::i;:::-;34091:2;34086:3;34082:12;34075:19;;33734:366;;;:::o;34106:419::-;34272:4;34310:2;34299:9;34295:18;34287:26;;34359:9;34353:4;34349:20;34345:1;34334:9;34330:17;34323:47;34387:131;34513:4;34387:131;:::i;:::-;34379:139;;34106:419;;;:::o;34531:177::-;34671:29;34667:1;34659:6;34655:14;34648:53;34531:177;:::o;34714:366::-;34856:3;34877:67;34941:2;34936:3;34877:67;:::i;:::-;34870:74;;34953:93;35042:3;34953:93;:::i;:::-;35071:2;35066:3;35062:12;35055:19;;34714:366;;;:::o;35086:419::-;35252:4;35290:2;35279:9;35275:18;35267:26;;35339:9;35333:4;35329:20;35325:1;35314:9;35310:17;35303:47;35367:131;35493:4;35367:131;:::i;:::-;35359:139;;35086:419;;;:::o;35511:170::-;35651:22;35647:1;35639:6;35635:14;35628:46;35511:170;:::o;35687:366::-;35829:3;35850:67;35914:2;35909:3;35850:67;:::i;:::-;35843:74;;35926:93;36015:3;35926:93;:::i;:::-;36044:2;36039:3;36035:12;36028:19;;35687:366;;;:::o;36059:419::-;36225:4;36263:2;36252:9;36248:18;36240:26;;36312:9;36306:4;36302:20;36298:1;36287:9;36283:17;36276:47;36340:131;36466:4;36340:131;:::i;:::-;36332:139;;36059:419;;;:::o;36484:220::-;36624:34;36620:1;36612:6;36608:14;36601:58;36693:3;36688:2;36680:6;36676:15;36669:28;36484:220;:::o;36710:366::-;36852:3;36873:67;36937:2;36932:3;36873:67;:::i;:::-;36866:74;;36949:93;37038:3;36949:93;:::i;:::-;37067:2;37062:3;37058:12;37051:19;;36710:366;;;:::o;37082:419::-;37248:4;37286:2;37275:9;37271:18;37263:26;;37335:9;37329:4;37325:20;37321:1;37310:9;37306:17;37299:47;37363:131;37489:4;37363:131;:::i;:::-;37355:139;;37082:419;;;:::o;37507:177::-;37647:29;37643:1;37635:6;37631:14;37624:53;37507:177;:::o;37690:366::-;37832:3;37853:67;37917:2;37912:3;37853:67;:::i;:::-;37846:74;;37929:93;38018:3;37929:93;:::i;:::-;38047:2;38042:3;38038:12;38031:19;;37690:366;;;:::o;38062:419::-;38228:4;38266:2;38255:9;38251:18;38243:26;;38315:9;38309:4;38305:20;38301:1;38290:9;38286:17;38279:47;38343:131;38469:4;38343:131;:::i;:::-;38335:139;;38062:419;;;:::o;38487:85::-;38532:7;38561:5;38550:16;;38487:85;;;:::o;38578:158::-;38636:9;38669:61;38687:42;38696:32;38722:5;38696:32;:::i;:::-;38687:42;:::i;:::-;38669:61;:::i;:::-;38656:74;;38578:158;;;:::o;38742:147::-;38837:45;38876:5;38837:45;:::i;:::-;38832:3;38825:58;38742:147;;:::o;38895:114::-;38962:6;38996:5;38990:12;38980:22;;38895:114;;;:::o;39015:184::-;39114:11;39148:6;39143:3;39136:19;39188:4;39183:3;39179:14;39164:29;;39015:184;;;;:::o;39205:132::-;39272:4;39295:3;39287:11;;39325:4;39320:3;39316:14;39308:22;;39205:132;;;:::o;39343:108::-;39420:24;39438:5;39420:24;:::i;:::-;39415:3;39408:37;39343:108;;:::o;39457:179::-;39526:10;39547:46;39589:3;39581:6;39547:46;:::i;:::-;39625:4;39620:3;39616:14;39602:28;;39457:179;;;;:::o;39642:113::-;39712:4;39744;39739:3;39735:14;39727:22;;39642:113;;;:::o;39791:732::-;39910:3;39939:54;39987:5;39939:54;:::i;:::-;40009:86;40088:6;40083:3;40009:86;:::i;:::-;40002:93;;40119:56;40169:5;40119:56;:::i;:::-;40198:7;40229:1;40214:284;40239:6;40236:1;40233:13;40214:284;;;40315:6;40309:13;40342:63;40401:3;40386:13;40342:63;:::i;:::-;40335:70;;40428:60;40481:6;40428:60;:::i;:::-;40418:70;;40274:224;40261:1;40258;40254:9;40249:14;;40214:284;;;40218:14;40514:3;40507:10;;39915:608;;;39791:732;;;;:::o;40529:831::-;40792:4;40830:3;40819:9;40815:19;40807:27;;40844:71;40912:1;40901:9;40897:17;40888:6;40844:71;:::i;:::-;40925:80;41001:2;40990:9;40986:18;40977:6;40925:80;:::i;:::-;41052:9;41046:4;41042:20;41037:2;41026:9;41022:18;41015:48;41080:108;41183:4;41174:6;41080:108;:::i;:::-;41072:116;;41198:72;41266:2;41255:9;41251:18;41242:6;41198:72;:::i;:::-;41280:73;41348:3;41337:9;41333:19;41324:6;41280:73;:::i;:::-;40529:831;;;;;;;;:::o;41366:147::-;41467:11;41504:3;41489:18;;41366:147;;;;:::o;41519:114::-;;:::o;41639:398::-;41798:3;41819:83;41900:1;41895:3;41819:83;:::i;:::-;41812:90;;41911:93;42000:3;41911:93;:::i;:::-;42029:1;42024:3;42020:11;42013:18;;41639:398;;;:::o;42043:379::-;42227:3;42249:147;42392:3;42249:147;:::i;:::-;42242:154;;42413:3;42406:10;;42043:379;;;:::o;42428:807::-;42677:4;42715:3;42704:9;42700:19;42692:27;;42729:71;42797:1;42786:9;42782:17;42773:6;42729:71;:::i;:::-;42810:72;42878:2;42867:9;42863:18;42854:6;42810:72;:::i;:::-;42892:80;42968:2;42957:9;42953:18;42944:6;42892:80;:::i;:::-;42982;43058:2;43047:9;43043:18;43034:6;42982:80;:::i;:::-;43072:73;43140:3;43129:9;43125:19;43116:6;43072:73;:::i;:::-;43155;43223:3;43212:9;43208:19;43199:6;43155:73;:::i;:::-;42428:807;;;;;;;;;:::o;43241:663::-;43329:6;43337;43345;43394:2;43382:9;43373:7;43369:23;43365:32;43362:119;;;43400:79;;:::i;:::-;43362:119;43520:1;43545:64;43601:7;43592:6;43581:9;43577:22;43545:64;:::i;:::-;43535:74;;43491:128;43658:2;43684:64;43740:7;43731:6;43720:9;43716:22;43684:64;:::i;:::-;43674:74;;43629:129;43797:2;43823:64;43879:7;43870:6;43859:9;43855:22;43823:64;:::i;:::-;43813:74;;43768:129;43241:663;;;;;:::o;43910:332::-;44031:4;44069:2;44058:9;44054:18;44046:26;;44082:71;44150:1;44139:9;44135:17;44126:6;44082:71;:::i;:::-;44163:72;44231:2;44220:9;44216:18;44207:6;44163:72;:::i;:::-;43910:332;;;;;:::o

Swarm Source

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