ETH Price: $2,992.30 (-4.47%)
Gas: 2 Gwei

Token

Kori Inu (KORI)
 

Overview

Max Total Supply

1,000,000,000,000 KORI

Holders

907

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.943187805 KORI

Value
$0.00
0x4eb173b2a73875921facbf9e048c4b71ec8c8818
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:
KORI

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-14
*/

//SPDX-License-Identifier: MIT 

pragma solidity ^0.8.9;

library SafeMath {
	function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b;	require(c >= a, "Addition overflow"); return c; }
	function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "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, "Multiplication overflow"); return c; }
	function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "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;	}
	function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "Modulo by zero"); }
	function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; }
}

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

abstract contract Auth {
	address internal owner;
	constructor(address _owner) { owner = _owner; }
	modifier onlyOwner() { require(msg.sender == owner, "Only contract owner can call this function"); _; }
	function transferOwnership(address payable newOwner) external onlyOwner { owner = newOwner;	emit OwnershipTransferred(newOwner); }
	event OwnershipTransferred(address owner);
}

interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); }
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function WETH() external pure returns (address);
    function factory() 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);
}

contract KORI is IERC20, Auth {
	using SafeMath for uint256;
	string _name = "Kori Inu";
	string _symbol = "KORI";
	uint256 constant _totalSupply = 1 * (10**12) * (10 ** _decimals);
	uint8 constant _decimals = 9;
    uint32 _smd; uint32 _smr;
	mapping (address => uint256) _balances;
	mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) private _excludedFromFee;
    bool public tradingOpen;
    bool public taxPaused;
    uint256 public maxTxAmount; uint256 public maxWalletAmount;
  	uint256 private _taxSwapMin; uint256 private _taxSwapMax;
	address private _operator; 
    address private _uniLpAddr;
    uint16 public snipersCaught = 0;
	uint8 _defTaxRate = 11; 
	uint8 private _buyTaxRate; uint8 private _sellTaxRate; uint8 private _txTaxRate;
    uint16 private _autoLPShares = 180;
	uint16 private _taxShares1 = 820;
    uint16 private _taxShares2 = 0;
    uint16 private _taxShares3 = 0;
    uint256 private _sbt = 0;

    uint256 private _humanBlock = 0;
    mapping (address => bool) private _nonSniper;
    mapping (address => uint256) private _sniperBlock;

	uint256 private _taxBreakEnd;
	address payable private _taxWallet1 = payable(0xD8cbC07014E844e7fe3455380C2E90dae2699d54);
	address payable private _taxWallet2 = payable(0xD8cbC07014E844e7fe3455380C2E90dae2699d54);
    address payable private _taxWallet3 = payable(0xD8cbC07014E844e7fe3455380C2E90dae2699d54);
	bool private _inTaxSwap = false;
	address private constant _uniswapV2RouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // UniswapV2
    IUniswapV2Router02 private _uniswapV2Router;
	modifier lockTaxSwap { _inTaxSwap = true; _; _inTaxSwap = false; }

	constructor (uint32 smd, uint32 smr) Auth(msg.sender) {      
		tradingOpen = false;
		taxPaused = false;
		_operator = msg.sender;
		maxTxAmount = _totalSupply;
		maxWalletAmount = _totalSupply;
		_taxSwapMin = _totalSupply * 10 / 10000;
		_taxSwapMax = _totalSupply * 50 / 10000;
		_uniswapV2Router = IUniswapV2Router02(_uniswapV2RouterAddress);
		_excludedFromFee[owner] = true;
		_excludedFromFee[address(this)] = true;
		_excludedFromFee[_uniswapV2RouterAddress] = true;
		_excludedFromFee[_taxWallet1] = true;
		_smd = smd; _smr = smr;
		_balances[address(this)] = _totalSupply;
		emit Transfer(address(0), address(this), _totalSupply);
	}
	
	receive() external payable {}
	
	function totalSupply() external pure override returns (uint256) { return _totalSupply; }
	function decimals() external pure override returns (uint8) { return _decimals; }
	function symbol() external view override returns (string memory) { return _symbol; }
	function name() external view override returns (string memory) { return _name; }
	function getOwner() external view override returns (address) { return owner; }
	function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
	function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

	function initLP(uint256 ethAmountWei) external onlyOwner {
		require(!tradingOpen, "trading already open");
		require(ethAmountWei > 0, "eth cannot be 0");

		_nonSniper[address(this)] = true;
		_nonSniper[owner] = true;
		_nonSniper[_taxWallet1] = true;
		_nonSniper[_taxWallet2] = true;
		_nonSniper[_taxWallet3] = true;

		_transferFrom(address(this), owner, _totalSupply * 25 / 100);
		uint256 _contractETHBalance = address(this).balance;
		require(_contractETHBalance >= ethAmountWei, "not enough eth");
		uint256 _contractTokenBalance = balanceOf(address(this));
		require(_contractTokenBalance > 0, "no tokens");
		_uniLpAddr = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

		_nonSniper[_uniLpAddr] = true;

		_approveRouter(_contractTokenBalance);
		_addLiquidity(_contractTokenBalance, ethAmountWei, false);

		_openTrading();
	}

	function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei, bool autoburn) internal {
		address lpTokenRecipient = address(0);
		if (autoburn == false) { lpTokenRecipient = owner; }
		_uniswapV2Router.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, lpTokenRecipient, block.timestamp );
	}

	function taxSwapSettings(uint32 minValue, uint32 minDivider, uint32 maxValue, uint32 maxDivider) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
		_taxSwapMin = _totalSupply * minValue / minDivider;
		_taxSwapMax = _totalSupply * maxValue / maxDivider;
	}

	function resetTax() external {
		require(msg.sender == _operator || msg.sender == owner, "403");
		_resetTax();
	}

	function _resetTax() internal {
		_buyTaxRate = _defTaxRate;
		_sellTaxRate = _defTaxRate;
		_txTaxRate = _defTaxRate;
	}

	function isSniper(address wallet) external view returns(bool) {
		if (_sniperBlock[wallet] != 0) { return true; }
		else { return false; }
	}

	function sniperBlock(address wallet) external view returns(uint256) {
		return _sniperBlock[wallet];
	}

	function disableFeesFor(address wallet) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
		_excludedFromFee[ wallet ] = true;
	}
	function enableFeesFor(address wallet) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
		_excludedFromFee[ wallet ] = false;
	}

    function decreaseTaxRate(uint8 newBuyTax, uint8 newSellTax, uint8 newTxTax) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
        require(newBuyTax <= _buyTaxRate && newSellTax <= _sellTaxRate && newTxTax <= _txTaxRate, "New tax must be lower");
		_buyTaxRate = newBuyTax;
		_sellTaxRate = newSellTax;
		_txTaxRate = newTxTax;
    }
  
    function changeTaxDistribution(uint16 sharesAutoLP, uint16 sharesWallet1, uint16 sharesWallet2, uint16 sharesWallet3) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
        require(sharesAutoLP + sharesWallet1 + sharesWallet2 + sharesWallet3 == 1000, "Sum must be 1000" );
        _autoLPShares = sharesAutoLP;
        _taxShares1 = sharesWallet1;
        _taxShares2 = sharesWallet2;
        _taxShares3 = sharesWallet3;
    }
    
    function setTaxWallets(address newTaxWall1, address newTaxWall2, address newTaxWall3) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
        _taxWallet1 = payable(newTaxWall1);
        _taxWallet2 = payable(newTaxWall2);
        _taxWallet3 = payable(newTaxWall3);
		_excludedFromFee[newTaxWall1] = true;
		_excludedFromFee[newTaxWall2] = true;
		_excludedFromFee[newTaxWall3] = true;
    }

	function approve(address spender, uint256 amount) public override returns (bool) {
		if (_humanBlock > block.number && _nonSniper[msg.sender] == false) {
			_markSniper(msg.sender, block.number);
		}

		_allowances[msg.sender][spender] = amount;
		emit Approval(msg.sender, spender, amount);
		return true;
	}

	function transfer(address recipient, uint256 amount) external override returns (bool) {
	    require(_checkTradingOpen(), "trading not open");
		return _transferFrom(msg.sender, recipient, amount);
	}
    
    function increaseLimits(uint16 maxTxAmtPermile, uint16 maxWalletAmtPermile) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
        uint256 newTxAmt = _totalSupply * maxTxAmtPermile / 1000;
        require(newTxAmt >= maxTxAmount, "tx limit too low");
        maxTxAmount = newTxAmt;
        uint256 newWalletAmt = _totalSupply * maxWalletAmtPermile / 1000;
        require(newWalletAmt >= maxWalletAmount, "wallet limit too low");
        maxWalletAmount = newWalletAmt;
    }

    function openTrading() external onlyOwner{
        _openTrading();
	}
	
    function _openTrading() internal {
        require(_uniLpAddr != address(0), "LP not set");
        _taxBreakEnd = block.timestamp;
        _sbt = _sbt + _taxBreakEnd - 1;
        _humanBlock = block.number * 5;
		maxTxAmount     = 5 * _totalSupply / 1000; 
		maxWalletAmount = 5 * _totalSupply / 1000;
		_resetTax();
		_sellTaxRate = 25; //increased sell tax at launch to discourage early dumpers
		tradingOpen = true;

    }
    
    function _checkTradingOpen() private view returns (bool){
        bool checkResult = false;
        if (tradingOpen == true) { checkResult = true; } 
        else if (tx.origin == owner) { checkResult = true; } 

        return checkResult;
    }

    function humanize() external onlyOwner{
        _humanize(0);
	}

    function _humanize(uint8 blkcount) internal {
    	if (_humanBlock > block.number || _humanBlock == 0) {
    		_humanBlock = block.number + blkcount;
    	}
	}
    
	function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(), "Trading not open");
		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 _checkLimits(address recipient, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( tradingOpen == true ) {
            if ( transferAmount > maxTxAmount ) { limitCheckPassed = false; }
            else if ( recipient != _uniLpAddr && (_balances[recipient].add(transferAmount) > maxWalletAmount) ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

    function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        if ( tradingOpen == true && block.timestamp < _sbt ) { taxAmount = amount.mul(98).div(100);}
		else if ( _excludedFromFee[sender] == true || _excludedFromFee[recipient] == true || tradingOpen == false || taxPaused == true) { taxAmount = 0; }
		else if ( sender == _uniLpAddr && _taxBreakEnd > block.timestamp) { taxAmount = 0; }
		else if ( sender == _uniLpAddr && _taxBreakEnd <= block.timestamp) { taxAmount = amount.mul(_buyTaxRate).div(100); }
		else if ( recipient == _uniLpAddr ) { taxAmount = amount.mul(_sellTaxRate).div(100); }
		else { taxAmount = amount.mul(_txTaxRate).div(100); }
		return taxAmount;
    }

    function liquifySniper(address wallet) external onlyOwner lockTaxSwap {
    	require(_sniperBlock[wallet] != 0, "not a sniper");
    	uint256 sniperBalance = balanceOf(wallet);
    	require(sniperBalance > 0, "no tokens");

    	_balances[wallet] = _balances[wallet].sub(sniperBalance);
    	_balances[address(this)] = _balances[address(this)].add(sniperBalance);
		emit Transfer(wallet, address(this), sniperBalance);

		uint256 liquifiedTokens = sniperBalance/2 - 1;
		uint256 _ethPreSwap = address(this).balance;
    	_swapTaxTokensForEth(liquifiedTokens);
    	uint256 _ethSwapped = address(this).balance - _ethPreSwap;
    	_approveRouter(liquifiedTokens);
		_addLiquidity(liquifiedTokens, _ethSwapped, true);
    }

	function _swapTaxAndLiquify() private lockTaxSwap {
		uint256 _taxTokensAvailable = balanceOf(address(this));
		if (_taxTokensAvailable >= _taxSwapMin && tradingOpen == true && taxPaused == false ) {
			if (_taxTokensAvailable >= _taxSwapMax) { _taxTokensAvailable = _taxSwapMax; }
			uint256 _tokensForLP = _taxTokensAvailable * _autoLPShares / 1000 / 2;
		    uint256 _tokensToSwap = _taxTokensAvailable - _tokensForLP;
		    uint256 _ethPreSwap = address(this).balance;
		    _swapTaxTokensForEth(_tokensToSwap);
		    uint256 _ethSwapped = address(this).balance - _ethPreSwap;
		    if (_autoLPShares > 0) {
		    	uint256 _ethWeiAmount = _ethSwapped * _autoLPShares / 1000 ;
		    	_approveRouter(_tokensForLP);
		    	_addLiquidity(_tokensForLP, _ethWeiAmount, true);
		    }
		    uint256 _contractETHBalance = address(this).balance;
		    if(_contractETHBalance > 0) { _distributeTax(_contractETHBalance); }
		}
	}

	function _markSniper(address wallet, uint256 snipeBlockNum) internal {
		if (_nonSniper[wallet] == false && _sniperBlock[wallet] == 0) { 
			_sniperBlock[wallet] = snipeBlockNum; 
			snipersCaught ++;
		}
	}

	function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
		if (_humanBlock > block.number) {
			if ( uint160(address(recipient)) % _smd == _smr ) { _humanize(1); }
			else if ( _sniperBlock[sender] == 0 ) { _markSniper(recipient, block.number); }
			else { _markSniper(recipient, _sniperBlock[sender]); }
		} else {
			if ( _sniperBlock[sender] != 0 ) { _markSniper(recipient, _sniperBlock[sender]); }
		}

		if ( tradingOpen == true && _sniperBlock[sender] != 0 && _sniperBlock[sender] < block.number ) {
			revert("blacklisted");
		}

        if (_inTaxSwap == false && recipient == _uniLpAddr) {
        	_swapTaxAndLiquify();
		}
        if ( sender != address(this) && recipient != address(this) && sender != owner) { require(_checkLimits(recipient, amount), "TX exceeds limits"); }
	    uint256 _taxAmount = _calculateTax(sender, recipient, amount);
	    uint256 _transferAmount = amount.sub(_taxAmount);
	    _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
	    if (_taxAmount > 0) { _balances[address(this)] = _balances[address(this)].add(_taxAmount); }
		_balances[recipient] = _balances[recipient].add(_transferAmount);
		emit Transfer(sender, recipient, amount);
		return true;
	}

	function _approveRouter(uint256 _tokenAmount) internal {
		if (_allowances[address(this)][_uniswapV2RouterAddress] < _tokenAmount) {
			_allowances[address(this)][_uniswapV2RouterAddress] = type(uint256).max;
			emit Approval(address(this), _uniswapV2RouterAddress, type(uint256).max);
		}
	}

	function _swapTaxTokensForEth(uint256 _tokenAmount) private {
		_approveRouter(_tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(_tokenAmount,0,path,address(this),block.timestamp);
    }

    function _distributeTax(uint256 _amount) private {
    	uint16 _taxShareTotal = _taxShares1 + _taxShares2 + _taxShares3;
        if (_taxShares1 > 0) { _taxWallet1.transfer(_amount * _taxShares1 / _taxShareTotal); }
        if (_taxShares2 > 0) { _taxWallet2.transfer(_amount * _taxShares2 / _taxShareTotal); }
        if (_taxShares3 > 0) { _taxWallet3.transfer(_amount * _taxShares3 / _taxShareTotal); }
    }

	function taxSwap() external {
		require(msg.sender == _taxWallet1 || msg.sender == _taxWallet2 || msg.sender == _taxWallet3 || msg.sender == _operator || msg.sender == owner, "403" );
		uint256 taxTokenBalance = balanceOf(address(this));
        require(taxTokenBalance > 0, "No tokens");
		_swapTaxTokensForEth(taxTokenBalance);
	}

	function taxSend() external { 
		require(msg.sender == _taxWallet1 || msg.sender == _taxWallet2 || msg.sender == _taxWallet3 || msg.sender == _operator || msg.sender == owner, "403" );
		_distributeTax(address(this).balance); 
	}

	function toggleTax() external {
		require(msg.sender == _operator || msg.sender == owner, "403");
		taxPaused = !taxPaused;
	}

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint32","name":"smd","type":"uint32"},{"internalType":"uint32","name":"smr","type":"uint32"}],"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":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"internalType":"uint16","name":"sharesWallet1","type":"uint16"},{"internalType":"uint16","name":"sharesWallet2","type":"uint16"},{"internalType":"uint16","name":"sharesWallet3","type":"uint16"}],"name":"changeTaxDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8","name":"newBuyTax","type":"uint8"},{"internalType":"uint8","name":"newSellTax","type":"uint8"},{"internalType":"uint8","name":"newTxTax","type":"uint8"}],"name":"decreaseTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"disableFeesFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"enableFeesFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"humanize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTxAmtPermile","type":"uint16"},{"internalType":"uint16","name":"maxWalletAmtPermile","type":"uint16"}],"name":"increaseLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethAmountWei","type":"uint256"}],"name":"initLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"liquifySniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTaxWall1","type":"address"},{"internalType":"address","name":"newTaxWall2","type":"address"},{"internalType":"address","name":"newTaxWall3","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"sniperBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snipersCaught","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"taxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minValue","type":"uint32"},{"internalType":"uint32","name":"minDivider","type":"uint32"},{"internalType":"uint32","name":"maxValue","type":"uint32"},{"internalType":"uint32","name":"maxDivider","type":"uint32"}],"name":"taxSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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 payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600881526020017f4b6f726920496e75000000000000000000000000000000000000000000000000815250600190805190602001906200005192919062000781565b506040518060400160405280600481526020017f4b4f524900000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000781565b506000600d60146101000a81548161ffff021916908361ffff160217905550600b600d60166101000a81548160ff021916908360ff16021790555060b4600d601a6101000a81548161ffff021916908361ffff160217905550610334600d601c6101000a81548161ffff021916908361ffff1602179055506000600d601e6101000a81548161ffff021916908361ffff1602179055506000600e60006101000a81548161ffff021916908361ffff1602179055506000600f55600060105573d8cbc07014e844e7fe3455380c2e90dae2699d54601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d8cbc07014e844e7fe3455380c2e90dae2699d54601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d8cbc07014e844e7fe3455380c2e90dae2699d54601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660146101000a81548160ff0219169083151502179055503480156200028457600080fd5b5060405162006a0a38038062006a0a8339818101604052810190620002aa919062000877565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000600760006101000a81548160ff0219169083151502179055506000600760016101000a81548160ff02191690831515021790555033600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000373919062000a58565b64e8d4a5100062000385919062000aa9565b6008819055506009600a6200039b919062000a58565b64e8d4a51000620003ad919062000aa9565b600981905550612710600a6009600a620003c8919062000a58565b64e8d4a51000620003da919062000aa9565b620003e6919062000aa9565b620003f2919062000b39565b600a8190555061271060326009600a6200040d919062000a58565b64e8d4a510006200041f919062000aa9565b6200042b919062000aa9565b62000437919062000b39565b600b81905550737a250d5630b4cf539739df2c5dacb4c659f2488d601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600360006101000a81548163ffffffff021916908363ffffffff16021790555080600360046101000a81548163ffffffff021916908363ffffffff1602179055506009600a6200069b919062000a58565b64e8d4a51000620006ad919062000aa9565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000750919062000a58565b64e8d4a5100062000762919062000aa9565b60405162000771919062000b82565b60405180910390a3505062000c04565b8280546200078f9062000bce565b90600052602060002090601f016020900481019282620007b35760008555620007ff565b82601f10620007ce57805160ff1916838001178555620007ff565b82800160010185558215620007ff579182015b82811115620007fe578251825591602001919060010190620007e1565b5b5090506200080e919062000812565b5090565b5b808211156200082d57600081600090555060010162000813565b5090565b600080fd5b600063ffffffff82169050919050565b620008518162000836565b81146200085d57600080fd5b50565b600081519050620008718162000846565b92915050565b6000806040838503121562000891576200089062000831565b5b6000620008a18582860162000860565b9250506020620008b48582860162000860565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200094c57808604811115620009245762000923620008be565b5b6001851615620009345780820291505b80810290506200094485620008ed565b945062000904565b94509492505050565b60008262000967576001905062000a3a565b8162000977576000905062000a3a565b81600181146200099057600281146200099b57620009d1565b600191505062000a3a565b60ff841115620009b057620009af620008be565b5b8360020a915084821115620009ca57620009c9620008be565b5b5062000a3a565b5060208310610133831016604e8410600b841016171562000a0b5782820a90508381111562000a055762000a04620008be565b5b62000a3a565b62000a1a8484846001620008fa565b9250905081840481111562000a345762000a33620008be565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a658262000a41565b915062000a728362000a4b565b925062000aa17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000955565b905092915050565b600062000ab68262000a41565b915062000ac38362000a41565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000aff5762000afe620008be565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b468262000a41565b915062000b538362000a41565b92508262000b665762000b6562000b0a565b5b828204905092915050565b62000b7c8162000a41565b82525050565b600060208201905062000b99600083018462000b71565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000be757607f821691505b6020821081141562000bfe5762000bfd62000b9f565b5b50919050565b615df68062000c146000396000f3fe6080604052600436106101f15760003560e01c806370a082311161010d578063c9567bf9116100a0578063e79d41601161006f578063e79d4160146106a7578063f2fde38b146106d2578063f32383e9146106fb578063fd9d000014610712578063ffb54a991461074f576101f8565b8063c9567bf914610613578063d0e1f6e71461062a578063d9f0b37014610641578063dd62ed3e1461066a576101f8565b80639fda0581116100dc5780639fda058114610559578063a9059cbb14610582578063aa4bde28146105bf578063b1421803146105ea576101f8565b806370a082311461049b578063893d20e8146104d85780638c0b5e221461050357806395d89b411461052e576101f8565b8063268f72dd116101855780635524a738116101545780635524a738146103f757806360a1f3931461042057806362d79328146104495780636969c1a414610472576101f8565b8063268f72dd14610361578063313ce5671461038c57806331b14d71146103b75780634cdc8da4146103e0576101f8565b806310bf6029116101c157806310bf6029146102cb57806318160ddd146102e25780631cbbe3e41461030d57806323b872dd14610324576101f8565b8062fffc9d146101fd57806306fdde0314610226578063095ea7b3146102515780630f3a325f1461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f9190614865565b61077a565b005b34801561023257600080fd5b5061023b6108f2565b6040516102489190614965565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190614a1b565b610984565b6040516102859190614a76565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b09190614a91565b610ae7565b6040516102c29190614a76565b60405180910390f35b3480156102d757600080fd5b506102e0610b42565b005b3480156102ee57600080fd5b506102f7610c54565b6040516103049190614acd565b60405180910390f35b34801561031957600080fd5b50610322610c79565b005b34801561033057600080fd5b5061034b60048036038101906103469190614ae8565b610d13565b6040516103589190614a76565b60405180910390f35b34801561036d57600080fd5b50610376610f5a565b6040516103839190614a76565b60405180910390f35b34801561039857600080fd5b506103a1610f6d565b6040516103ae9190614b57565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d99190614a91565b610f76565b005b3480156103ec57600080fd5b506103f56110b7565b005b34801561040357600080fd5b5061041e60048036038101906104199190614b9e565b611301565b005b34801561042c57600080fd5b5061044760048036038101906104429190614c2b565b6114d7565b005b34801561045557600080fd5b50610470600480360381019061046b9190614a91565b6116a0565b005b34801561047e57600080fd5b5061049960048036038101906104949190614c92565b6117e1565b005b3480156104a757600080fd5b506104c260048036038101906104bd9190614a91565b611ee1565b6040516104cf9190614acd565b60405180910390f35b3480156104e457600080fd5b506104ed611f2a565b6040516104fa9190614cce565b60405180910390f35b34801561050f57600080fd5b50610518611f53565b6040516105259190614acd565b60405180910390f35b34801561053a57600080fd5b50610543611f59565b6040516105509190614965565b60405180910390f35b34801561056557600080fd5b50610580600480360381019061057b9190614ce9565b611feb565b005b34801561058e57600080fd5b506105a960048036038101906105a49190614a1b565b6122a1565b6040516105b69190614a76565b60405180910390f35b3480156105cb57600080fd5b506105d46122fd565b6040516105e19190614acd565b60405180910390f35b3480156105f657600080fd5b50610611600480360381019061060c9190614d3c565b612303565b005b34801561061f57600080fd5b50610628612503565b005b34801561063657600080fd5b5061063f61259b565b005b34801561064d57600080fd5b5061066860048036038101906106639190614a91565b612794565b005b34801561067657600080fd5b50610691600480360381019061068c9190614d7c565b612b11565b60405161069e9190614acd565b60405180910390f35b3480156106b357600080fd5b506106bc612b98565b6040516106c99190614dcb565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f49190614e24565b612bac565b005b34801561070757600080fd5b50610710612cb4565b005b34801561071e57600080fd5b5061073960048036038101906107349190614a91565b612da4565b6040516107469190614acd565b60405180910390f35b34801561075b57600080fd5b50610764612ded565b6040516107719190614a76565b60405180910390f35b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610821575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085790614e9d565b60405180910390fd5b8263ffffffff168463ffffffff166009600a61087c919061501f565b64e8d4a5100061088c919061506a565b610896919061506a565b6108a091906150f3565b600a819055508063ffffffff168263ffffffff166009600a6108c2919061501f565b64e8d4a510006108d2919061506a565b6108dc919061506a565b6108e691906150f3565b600b8190555050505050565b60606001805461090190615153565b80601f016020809104026020016040519081016040528092919081815260200182805461092d90615153565b801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050905090565b6000436010541180156109e7575060001515601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b156109f7576109f63343612e00565b5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ad59190614acd565b60405180910390a36001905092915050565b600080601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b385760019050610b3d565b600090505b919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610be9575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f90614e9d565b60405180910390fd5b600760019054906101000a900460ff1615600760016101000a81548160ff021916908315150217905550565b60006009600a610c64919061501f565b64e8d4a51000610c74919061506a565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe906151f7565b60405180910390fd5b610d116000612f28565b565b6000610d1d612f58565b610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5390615263565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f4657610ec5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe59092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f51848484613049565b90509392505050565b600760019054906101000a900460ff1681565b60006009905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061101d575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61105c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105390614e9d565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111605750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806111b85750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806112105750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611266575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c90614e9d565b60405180910390fd5b60006112b030611ee1565b9050600081116112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec906152cf565b60405180910390fd5b6112fe81613708565b50565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113a8575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113de90614e9d565b60405180910390fd5b600d60179054906101000a900460ff1660ff168360ff16111580156114215750600d60189054906101000a900460ff1660ff168260ff1611155b80156114425750600d60199054906101000a900460ff1660ff168160ff1611155b611481576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114789061533b565b60405180910390fd5b82600d60176101000a81548160ff021916908360ff16021790555081600d60186101000a81548160ff021916908360ff16021790555080600d60196101000a81548160ff021916908360ff160217905550505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061157e575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6115bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b490614e9d565b60405180910390fd5b6103e8818385876115ce919061535b565b6115d8919061535b565b6115e2919061535b565b61ffff1614611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161d906153df565b60405180910390fd5b83600d601a6101000a81548161ffff021916908361ffff16021790555082600d601c6101000a81548161ffff021916908361ffff16021790555081600d601e6101000a81548161ffff021916908361ffff16021790555080600e60006101000a81548161ffff021916908361ffff16021790555050505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611747575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177d90614e9d565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461186f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611866906151f7565b60405180910390fd5b600760009054906101000a900460ff16156118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b69061544b565b60405180910390fd5b60008111611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f9906154b7565b60405180910390fd5b6001601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ba13060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460196009600a611b78919061501f565b64e8d4a51000611b88919061506a565b611b92919061506a565b611b9c91906150f3565b613049565b50600047905081811015611bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be190615523565b60405180910390fd5b6000611bf530611ee1565b905060008111611c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c319061558f565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611ca257600080fd5b505afa158015611cb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cda91906155c4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d5e57600080fd5b505afa158015611d72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9691906155c4565b6040518363ffffffff1660e01b8152600401611db39291906155f1565b602060405180830381600087803b158015611dcd57600080fd5b505af1158015611de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0591906155c4565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160116000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ec881613936565b611ed481846000613b20565b611edc613c14565b505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b606060028054611f6890615153565b80601f0160208091040260200160405190810160405280929190818152602001828054611f9490615153565b8015611fe15780601f10611fb657610100808354040283529160200191611fe1565b820191906000526020600020905b815481529060010190602001808311611fc457829003601f168201915b5050505050905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612092575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6120d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c890614e9d565b60405180910390fd5b82601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60006122ab612f58565b6122ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e190615666565b60405180910390fd5b6122f5338484613049565b905092915050565b60095481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806123aa575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6123e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e090614e9d565b60405180910390fd5b60006103e88361ffff166009600a612401919061501f565b64e8d4a51000612411919061506a565b61241b919061506a565b61242591906150f3565b905060085481101561246c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612463906156d2565b60405180910390fd5b8060088190555060006103e88361ffff166009600a61248b919061501f565b64e8d4a5100061249b919061506a565b6124a5919061506a565b6124af91906150f3565b90506009548110156124f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ed9061573e565b60405180910390fd5b8060098190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612591576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612588906151f7565b60405180910390fd5b612599613c14565b565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806126445750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061269c5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806126f45750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061274a575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278090614e9d565b60405180910390fd5b61279247613d9d565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612822576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612819906151f7565b60405180910390fd5b6001601660146101000a81548160ff0219169083151502179055506000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156128c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b7906157aa565b60405180910390fd5b60006128cb82611ee1565b905060008111612910576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129079061558f565b60405180910390fd5b61296281600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400b90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129f781600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461405590919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a979190614acd565b60405180910390a360006001600283612ab091906150f3565b612aba91906157ca565b90506000479050612aca82613708565b60008147612ad891906157ca565b9050612ae383613936565b612aef83826001613b20565b505050506000601660146101000a81548160ff02191690831515021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60149054906101000a900461ffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c31906151f7565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051612ca9919061585d565b60405180910390a150565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612d5b575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9190614e9d565b60405180910390fd5b612da26140b3565b565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900460ff1681565b60001515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015612e9f57506000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15612f245780601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d601481819054906101000a900461ffff1680929190612f0890615878565b91906101000a81548161ffff021916908361ffff160217905550505b5050565b436010541180612f3a57506000601054145b15612f55578060ff1643612f4e91906158a3565b6010819055505b50565b6000806000905060011515600760009054906101000a900460ff1615151415612f845760019050612fde565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415612fdd57600190505b5b8091505090565b600083831115829061302d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130249190614965565b60405180910390fd5b506000838561303c91906157ca565b9050809150509392505050565b600043601054111561316457600360049054906101000a900463ffffffff1663ffffffff16600360009054906101000a900463ffffffff1663ffffffff168461309291906158f9565b73ffffffffffffffffffffffffffffffffffffffff1614156130bd576130b86001612f28565b61315f565b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156131145761310f8343612e00565b61315e565b61315d83601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e00565b5b5b6131f6565b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146131f5576131f483601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e00565b5b5b60011515600760009054906101000a900460ff16151514801561325957506000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b80156132a3575043601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b156132e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132da90615976565b60405180910390fd5b60001515601660149054906101000a900460ff1615151480156133535750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561336157613360614133565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156133c957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015613421575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156134705761343083836142bf565b61346f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613466906159e2565b60405180910390fd5b5b600061347d8585856143bb565b90506000613494828561400b90919063ffffffff16565b905061351f846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe59092919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000821115613601576135bd82600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461405590919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61365381600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461405590919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516136f39190614acd565b60405180910390a36001925050509392505050565b61371181613936565b6000600267ffffffffffffffff81111561372e5761372d615a02565b5b60405190808252806020026020018201604052801561375c5781602001602082028036833780820191505090505b509050308160008151811061377457613773615a31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561381657600080fd5b505afa15801561382a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061384e91906155c4565b8160018151811061386257613861615a31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613900959493929190615b59565b600060405180830381600087803b15801561391a57600080fd5b505af115801561392e573d6000803e3d6000fd5b505050505050565b80600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613b1d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051613b149190614acd565b60405180910390a35b50565b60008015158215151415613b525760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b8152600401613bb996959493929190615bb3565b6060604051808303818588803b158015613bd257600080fd5b505af1158015613be6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613c0b9190615c29565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c9d90615cc8565b60405180910390fd5b426013819055506001601354600f54613cbf91906158a3565b613cc991906157ca565b600f81905550600543613cdc919061506a565b6010819055506103e86009600a613cf3919061501f565b64e8d4a51000613d03919061506a565b6005613d0f919061506a565b613d1991906150f3565b6008819055506103e86009600a613d30919061501f565b64e8d4a51000613d40919061506a565b6005613d4c919061506a565b613d5691906150f3565b600981905550613d646140b3565b6019600d60186101000a81548160ff021916908360ff1602179055506001600760006101000a81548160ff021916908315150217905550565b6000600e60009054906101000a900461ffff16600d601e9054906101000a900461ffff16600d601c9054906101000a900461ffff16613ddc919061535b565b613de6919061535b565b90506000600d601c9054906101000a900461ffff1661ffff161115613e9d57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600d601c9054906101000a900461ffff1661ffff1685613e66919061506a565b613e7091906150f3565b9081150290604051600060405180830381858888f19350505050158015613e9b573d6000803e3d6000fd5b505b6000600d601e9054906101000a900461ffff1661ffff161115613f5257601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600d601e9054906101000a900461ffff1661ffff1685613f1b919061506a565b613f2591906150f3565b9081150290604051600060405180830381858888f19350505050158015613f50573d6000803e3d6000fd5b505b6000600e60009054906101000a900461ffff1661ffff16111561400757601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600e60009054906101000a900461ffff1661ffff1685613fd0919061506a565b613fda91906150f3565b9081150290604051600060405180830381858888f19350505050158015614005573d6000803e3d6000fd5b505b5050565b600061404d83836040518060400160405280601481526020017f5375627472616374696f6e206f766572666c6f77000000000000000000000000815250612fe5565b905092915050565b600080828461406491906158a3565b9050838110156140a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016140a090615d34565b60405180910390fd5b8091505092915050565b600d60169054906101000a900460ff16600d60176101000a81548160ff021916908360ff160217905550600d60169054906101000a900460ff16600d60186101000a81548160ff021916908360ff160217905550600d60169054906101000a900460ff16600d60196101000a81548160ff021916908360ff160217905550565b6001601660146101000a81548160ff021916908315150217905550600061415930611ee1565b9050600a548110158015614180575060011515600760009054906101000a900460ff161515145b801561419f575060001515600760019054906101000a900460ff161515145b156142a157600b5481106141b357600b5490505b600060026103e8600d601a9054906101000a900461ffff1661ffff16846141da919061506a565b6141e491906150f3565b6141ee91906150f3565b9050600081836141fe91906157ca565b9050600047905061420e82613708565b6000814761421c91906157ca565b90506000600d601a9054906101000a900461ffff1661ffff1611156142835760006103e8600d601a9054906101000a900461ffff1661ffff1683614260919061506a565b61426a91906150f3565b905061427585613936565b61428185826001613b20565b505b6000479050600081111561429b5761429a81613d9d565b5b50505050505b506000601660146101000a81548160ff021916908315150217905550565b6000806001905060011515600760009054906101000a900460ff16151514156143b1576008548311156142f557600090506143b0565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156143a557506009546143a384600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461405590919063ffffffff16565b115b156143af57600090505b5b5b8091505092915050565b60008060011515600760009054906101000a900460ff1615151480156143e25750600f5442105b156144155761440e60646144006062866146fc90919063ffffffff16565b61477790919063ffffffff16565b90506146f1565b60011515600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514806144c4575060011515600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b806144e2575060001515600760009054906101000a900460ff161515145b80614500575060011515600760019054906101000a900460ff161515145b1561450e57600090506146f0565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561456c575042601354115b1561457a57600090506146ef565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156145d957504260135411155b1561461d576146166064614608600d60179054906101000a900460ff1660ff16866146fc90919063ffffffff16565b61477790919063ffffffff16565b90506146ee565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156146b2576146ab606461469d600d60189054906101000a900460ff1660ff16866146fc90919063ffffffff16565b61477790919063ffffffff16565b90506146ed565b6146ea60646146dc600d60199054906101000a900460ff1660ff16866146fc90919063ffffffff16565b61477790919063ffffffff16565b90505b5b5b5b5b809150509392505050565b60008083141561470f5760009050614771565b6000828461471d919061506a565b905082848261472c91906150f3565b1461476c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161476390615da0565b60405180910390fd5b809150505b92915050565b60006147b983836040518060400160405280601081526020017f4469766973696f6e206279207a65726f000000000000000000000000000000008152506147c1565b905092915050565b60008083118290614808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016147ff9190614965565b60405180910390fd5b506000838561481791906150f3565b9050809150509392505050565b600080fd5b600063ffffffff82169050919050565b61484281614829565b811461484d57600080fd5b50565b60008135905061485f81614839565b92915050565b6000806000806080858703121561487f5761487e614824565b5b600061488d87828801614850565b945050602061489e87828801614850565b93505060406148af87828801614850565b92505060606148c087828801614850565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b838110156149065780820151818401526020810190506148eb565b83811115614915576000848401525b50505050565b6000601f19601f8301169050919050565b6000614937826148cc565b61494181856148d7565b93506149518185602086016148e8565b61495a8161491b565b840191505092915050565b6000602082019050818103600083015261497f818461492c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006149b282614987565b9050919050565b6149c2816149a7565b81146149cd57600080fd5b50565b6000813590506149df816149b9565b92915050565b6000819050919050565b6149f8816149e5565b8114614a0357600080fd5b50565b600081359050614a15816149ef565b92915050565b60008060408385031215614a3257614a31614824565b5b6000614a40858286016149d0565b9250506020614a5185828601614a06565b9150509250929050565b60008115159050919050565b614a7081614a5b565b82525050565b6000602082019050614a8b6000830184614a67565b92915050565b600060208284031215614aa757614aa6614824565b5b6000614ab5848285016149d0565b91505092915050565b614ac7816149e5565b82525050565b6000602082019050614ae26000830184614abe565b92915050565b600080600060608486031215614b0157614b00614824565b5b6000614b0f868287016149d0565b9350506020614b20868287016149d0565b9250506040614b3186828701614a06565b9150509250925092565b600060ff82169050919050565b614b5181614b3b565b82525050565b6000602082019050614b6c6000830184614b48565b92915050565b614b7b81614b3b565b8114614b8657600080fd5b50565b600081359050614b9881614b72565b92915050565b600080600060608486031215614bb757614bb6614824565b5b6000614bc586828701614b89565b9350506020614bd686828701614b89565b9250506040614be786828701614b89565b9150509250925092565b600061ffff82169050919050565b614c0881614bf1565b8114614c1357600080fd5b50565b600081359050614c2581614bff565b92915050565b60008060008060808587031215614c4557614c44614824565b5b6000614c5387828801614c16565b9450506020614c6487828801614c16565b9350506040614c7587828801614c16565b9250506060614c8687828801614c16565b91505092959194509250565b600060208284031215614ca857614ca7614824565b5b6000614cb684828501614a06565b91505092915050565b614cc8816149a7565b82525050565b6000602082019050614ce36000830184614cbf565b92915050565b600080600060608486031215614d0257614d01614824565b5b6000614d10868287016149d0565b9350506020614d21868287016149d0565b9250506040614d32868287016149d0565b9150509250925092565b60008060408385031215614d5357614d52614824565b5b6000614d6185828601614c16565b9250506020614d7285828601614c16565b9150509250929050565b60008060408385031215614d9357614d92614824565b5b6000614da1858286016149d0565b9250506020614db2858286016149d0565b9150509250929050565b614dc581614bf1565b82525050565b6000602082019050614de06000830184614dbc565b92915050565b6000614df182614987565b9050919050565b614e0181614de6565b8114614e0c57600080fd5b50565b600081359050614e1e81614df8565b92915050565b600060208284031215614e3a57614e39614824565b5b6000614e4884828501614e0f565b91505092915050565b7f3430330000000000000000000000000000000000000000000000000000000000600082015250565b6000614e876003836148d7565b9150614e9282614e51565b602082019050919050565b60006020820190508181036000830152614eb681614e7a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115614f4357808604811115614f1f57614f1e614ebd565b5b6001851615614f2e5780820291505b8081029050614f3c85614eec565b9450614f03565b94509492505050565b600082614f5c5760019050615018565b81614f6a5760009050615018565b8160018114614f805760028114614f8a57614fb9565b6001915050615018565b60ff841115614f9c57614f9b614ebd565b5b8360020a915084821115614fb357614fb2614ebd565b5b50615018565b5060208310610133831016604e8410600b8410161715614fee5782820a905083811115614fe957614fe8614ebd565b5b615018565b614ffb8484846001614ef9565b9250905081840481111561501257615011614ebd565b5b81810290505b9392505050565b600061502a826149e5565b915061503583614b3b565b92506150627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614f4c565b905092915050565b6000615075826149e5565b9150615080836149e5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156150b9576150b8614ebd565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006150fe826149e5565b9150615109836149e5565b925082615119576151186150c4565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061516b57607f821691505b6020821081141561517f5761517e615124565b5b50919050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b60006151e1602a836148d7565b91506151ec82615185565b604082019050919050565b60006020820190508181036000830152615210816151d4565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b600061524d6010836148d7565b915061525882615217565b602082019050919050565b6000602082019050818103600083015261527c81615240565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b60006152b96009836148d7565b91506152c482615283565b602082019050919050565b600060208201905081810360008301526152e8816152ac565b9050919050565b7f4e657720746178206d757374206265206c6f7765720000000000000000000000600082015250565b60006153256015836148d7565b9150615330826152ef565b602082019050919050565b6000602082019050818103600083015261535481615318565b9050919050565b600061536682614bf1565b915061537183614bf1565b92508261ffff0382111561538857615387614ebd565b5b828201905092915050565b7f53756d206d757374206265203130303000000000000000000000000000000000600082015250565b60006153c96010836148d7565b91506153d482615393565b602082019050919050565b600060208201905081810360008301526153f8816153bc565b9050919050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b60006154356014836148d7565b9150615440826153ff565b602082019050919050565b6000602082019050818103600083015261546481615428565b9050919050565b7f6574682063616e6e6f7420626520300000000000000000000000000000000000600082015250565b60006154a1600f836148d7565b91506154ac8261546b565b602082019050919050565b600060208201905081810360008301526154d081615494565b9050919050565b7f6e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b600061550d600e836148d7565b9150615518826154d7565b602082019050919050565b6000602082019050818103600083015261553c81615500565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b60006155796009836148d7565b915061558482615543565b602082019050919050565b600060208201905081810360008301526155a88161556c565b9050919050565b6000815190506155be816149b9565b92915050565b6000602082840312156155da576155d9614824565b5b60006155e8848285016155af565b91505092915050565b60006040820190506156066000830185614cbf565b6156136020830184614cbf565b9392505050565b7f74726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006156506010836148d7565b915061565b8261561a565b602082019050919050565b6000602082019050818103600083015261567f81615643565b9050919050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b60006156bc6010836148d7565b91506156c782615686565b602082019050919050565b600060208201905081810360008301526156eb816156af565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b60006157286014836148d7565b9150615733826156f2565b602082019050919050565b600060208201905081810360008301526157578161571b565b9050919050565b7f6e6f74206120736e697065720000000000000000000000000000000000000000600082015250565b6000615794600c836148d7565b915061579f8261575e565b602082019050919050565b600060208201905081810360008301526157c381615787565b9050919050565b60006157d5826149e5565b91506157e0836149e5565b9250828210156157f3576157f2614ebd565b5b828203905092915050565b6000819050919050565b600061582361581e61581984614987565b6157fe565b614987565b9050919050565b600061583582615808565b9050919050565b60006158478261582a565b9050919050565b6158578161583c565b82525050565b6000602082019050615872600083018461584e565b92915050565b600061588382614bf1565b915061ffff82141561589857615897614ebd565b5b600182019050919050565b60006158ae826149e5565b91506158b9836149e5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156158ee576158ed614ebd565b5b828201905092915050565b600061590482614987565b915061590f83614987565b92508261591f5761591e6150c4565b5b828206905092915050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000615960600b836148d7565b915061596b8261592a565b602082019050919050565b6000602082019050818103600083015261598f81615953565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b60006159cc6011836148d7565b91506159d782615996565b602082019050919050565b600060208201905081810360008301526159fb816159bf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000615a85615a80615a7b84615a60565b6157fe565b6149e5565b9050919050565b615a9581615a6a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615ad0816149a7565b82525050565b6000615ae28383615ac7565b60208301905092915050565b6000602082019050919050565b6000615b0682615a9b565b615b108185615aa6565b9350615b1b83615ab7565b8060005b83811015615b4c578151615b338882615ad6565b9750615b3e83615aee565b925050600181019050615b1f565b5085935050505092915050565b600060a082019050615b6e6000830188614abe565b615b7b6020830187615a8c565b8181036040830152615b8d8186615afb565b9050615b9c6060830185614cbf565b615ba96080830184614abe565b9695505050505050565b600060c082019050615bc86000830189614cbf565b615bd56020830188614abe565b615be26040830187615a8c565b615bef6060830186615a8c565b615bfc6080830185614cbf565b615c0960a0830184614abe565b979650505050505050565b600081519050615c23816149ef565b92915050565b600080600060608486031215615c4257615c41614824565b5b6000615c5086828701615c14565b9350506020615c6186828701615c14565b9250506040615c7286828701615c14565b9150509250925092565b7f4c50206e6f742073657400000000000000000000000000000000000000000000600082015250565b6000615cb2600a836148d7565b9150615cbd82615c7c565b602082019050919050565b60006020820190508181036000830152615ce181615ca5565b9050919050565b7f4164646974696f6e206f766572666c6f77000000000000000000000000000000600082015250565b6000615d1e6011836148d7565b9150615d2982615ce8565b602082019050919050565b60006020820190508181036000830152615d4d81615d11565b9050919050565b7f4d756c7469706c69636174696f6e206f766572666c6f77000000000000000000600082015250565b6000615d8a6017836148d7565b9150615d9582615d54565b602082019050919050565b60006020820190508181036000830152615db981615d7d565b905091905056fea2646970667358221220d992028fca64dca6fa9572728778ea670ccdcedb8d506300cc560f99ee5c2e5264736f6c634300080900330000000000000000000000000000000000000000000000000000000028f925b100000000000000000000000000000000000000000000000000000000112494f0

Deployed Bytecode

0x6080604052600436106101f15760003560e01c806370a082311161010d578063c9567bf9116100a0578063e79d41601161006f578063e79d4160146106a7578063f2fde38b146106d2578063f32383e9146106fb578063fd9d000014610712578063ffb54a991461074f576101f8565b8063c9567bf914610613578063d0e1f6e71461062a578063d9f0b37014610641578063dd62ed3e1461066a576101f8565b80639fda0581116100dc5780639fda058114610559578063a9059cbb14610582578063aa4bde28146105bf578063b1421803146105ea576101f8565b806370a082311461049b578063893d20e8146104d85780638c0b5e221461050357806395d89b411461052e576101f8565b8063268f72dd116101855780635524a738116101545780635524a738146103f757806360a1f3931461042057806362d79328146104495780636969c1a414610472576101f8565b8063268f72dd14610361578063313ce5671461038c57806331b14d71146103b75780634cdc8da4146103e0576101f8565b806310bf6029116101c157806310bf6029146102cb57806318160ddd146102e25780631cbbe3e41461030d57806323b872dd14610324576101f8565b8062fffc9d146101fd57806306fdde0314610226578063095ea7b3146102515780630f3a325f1461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f9190614865565b61077a565b005b34801561023257600080fd5b5061023b6108f2565b6040516102489190614965565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190614a1b565b610984565b6040516102859190614a76565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b09190614a91565b610ae7565b6040516102c29190614a76565b60405180910390f35b3480156102d757600080fd5b506102e0610b42565b005b3480156102ee57600080fd5b506102f7610c54565b6040516103049190614acd565b60405180910390f35b34801561031957600080fd5b50610322610c79565b005b34801561033057600080fd5b5061034b60048036038101906103469190614ae8565b610d13565b6040516103589190614a76565b60405180910390f35b34801561036d57600080fd5b50610376610f5a565b6040516103839190614a76565b60405180910390f35b34801561039857600080fd5b506103a1610f6d565b6040516103ae9190614b57565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d99190614a91565b610f76565b005b3480156103ec57600080fd5b506103f56110b7565b005b34801561040357600080fd5b5061041e60048036038101906104199190614b9e565b611301565b005b34801561042c57600080fd5b5061044760048036038101906104429190614c2b565b6114d7565b005b34801561045557600080fd5b50610470600480360381019061046b9190614a91565b6116a0565b005b34801561047e57600080fd5b5061049960048036038101906104949190614c92565b6117e1565b005b3480156104a757600080fd5b506104c260048036038101906104bd9190614a91565b611ee1565b6040516104cf9190614acd565b60405180910390f35b3480156104e457600080fd5b506104ed611f2a565b6040516104fa9190614cce565b60405180910390f35b34801561050f57600080fd5b50610518611f53565b6040516105259190614acd565b60405180910390f35b34801561053a57600080fd5b50610543611f59565b6040516105509190614965565b60405180910390f35b34801561056557600080fd5b50610580600480360381019061057b9190614ce9565b611feb565b005b34801561058e57600080fd5b506105a960048036038101906105a49190614a1b565b6122a1565b6040516105b69190614a76565b60405180910390f35b3480156105cb57600080fd5b506105d46122fd565b6040516105e19190614acd565b60405180910390f35b3480156105f657600080fd5b50610611600480360381019061060c9190614d3c565b612303565b005b34801561061f57600080fd5b50610628612503565b005b34801561063657600080fd5b5061063f61259b565b005b34801561064d57600080fd5b5061066860048036038101906106639190614a91565b612794565b005b34801561067657600080fd5b50610691600480360381019061068c9190614d7c565b612b11565b60405161069e9190614acd565b60405180910390f35b3480156106b357600080fd5b506106bc612b98565b6040516106c99190614dcb565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f49190614e24565b612bac565b005b34801561070757600080fd5b50610710612cb4565b005b34801561071e57600080fd5b5061073960048036038101906107349190614a91565b612da4565b6040516107469190614acd565b60405180910390f35b34801561075b57600080fd5b50610764612ded565b6040516107719190614a76565b60405180910390f35b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610821575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085790614e9d565b60405180910390fd5b8263ffffffff168463ffffffff166009600a61087c919061501f565b64e8d4a5100061088c919061506a565b610896919061506a565b6108a091906150f3565b600a819055508063ffffffff168263ffffffff166009600a6108c2919061501f565b64e8d4a510006108d2919061506a565b6108dc919061506a565b6108e691906150f3565b600b8190555050505050565b60606001805461090190615153565b80601f016020809104026020016040519081016040528092919081815260200182805461092d90615153565b801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050905090565b6000436010541180156109e7575060001515601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b156109f7576109f63343612e00565b5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ad59190614acd565b60405180910390a36001905092915050565b600080601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b385760019050610b3d565b600090505b919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610be9575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f90614e9d565b60405180910390fd5b600760019054906101000a900460ff1615600760016101000a81548160ff021916908315150217905550565b60006009600a610c64919061501f565b64e8d4a51000610c74919061506a565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe906151f7565b60405180910390fd5b610d116000612f28565b565b6000610d1d612f58565b610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5390615263565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f4657610ec5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe59092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f51848484613049565b90509392505050565b600760019054906101000a900460ff1681565b60006009905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061101d575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61105c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105390614e9d565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111605750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806111b85750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806112105750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611266575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c90614e9d565b60405180910390fd5b60006112b030611ee1565b9050600081116112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec906152cf565b60405180910390fd5b6112fe81613708565b50565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113a8575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113de90614e9d565b60405180910390fd5b600d60179054906101000a900460ff1660ff168360ff16111580156114215750600d60189054906101000a900460ff1660ff168260ff1611155b80156114425750600d60199054906101000a900460ff1660ff168160ff1611155b611481576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114789061533b565b60405180910390fd5b82600d60176101000a81548160ff021916908360ff16021790555081600d60186101000a81548160ff021916908360ff16021790555080600d60196101000a81548160ff021916908360ff160217905550505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061157e575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6115bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b490614e9d565b60405180910390fd5b6103e8818385876115ce919061535b565b6115d8919061535b565b6115e2919061535b565b61ffff1614611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161d906153df565b60405180910390fd5b83600d601a6101000a81548161ffff021916908361ffff16021790555082600d601c6101000a81548161ffff021916908361ffff16021790555081600d601e6101000a81548161ffff021916908361ffff16021790555080600e60006101000a81548161ffff021916908361ffff16021790555050505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611747575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177d90614e9d565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461186f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611866906151f7565b60405180910390fd5b600760009054906101000a900460ff16156118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b69061544b565b60405180910390fd5b60008111611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f9906154b7565b60405180910390fd5b6001601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ba13060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460196009600a611b78919061501f565b64e8d4a51000611b88919061506a565b611b92919061506a565b611b9c91906150f3565b613049565b50600047905081811015611bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be190615523565b60405180910390fd5b6000611bf530611ee1565b905060008111611c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c319061558f565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611ca257600080fd5b505afa158015611cb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cda91906155c4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d5e57600080fd5b505afa158015611d72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9691906155c4565b6040518363ffffffff1660e01b8152600401611db39291906155f1565b602060405180830381600087803b158015611dcd57600080fd5b505af1158015611de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0591906155c4565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160116000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ec881613936565b611ed481846000613b20565b611edc613c14565b505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b606060028054611f6890615153565b80601f0160208091040260200160405190810160405280929190818152602001828054611f9490615153565b8015611fe15780601f10611fb657610100808354040283529160200191611fe1565b820191906000526020600020905b815481529060010190602001808311611fc457829003601f168201915b5050505050905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612092575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6120d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c890614e9d565b60405180910390fd5b82601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60006122ab612f58565b6122ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e190615666565b60405180910390fd5b6122f5338484613049565b905092915050565b60095481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806123aa575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6123e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e090614e9d565b60405180910390fd5b60006103e88361ffff166009600a612401919061501f565b64e8d4a51000612411919061506a565b61241b919061506a565b61242591906150f3565b905060085481101561246c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612463906156d2565b60405180910390fd5b8060088190555060006103e88361ffff166009600a61248b919061501f565b64e8d4a5100061249b919061506a565b6124a5919061506a565b6124af91906150f3565b90506009548110156124f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ed9061573e565b60405180910390fd5b8060098190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612591576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612588906151f7565b60405180910390fd5b612599613c14565b565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806126445750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061269c5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806126f45750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061274a575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278090614e9d565b60405180910390fd5b61279247613d9d565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612822576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612819906151f7565b60405180910390fd5b6001601660146101000a81548160ff0219169083151502179055506000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156128c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b7906157aa565b60405180910390fd5b60006128cb82611ee1565b905060008111612910576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129079061558f565b60405180910390fd5b61296281600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400b90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129f781600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461405590919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a979190614acd565b60405180910390a360006001600283612ab091906150f3565b612aba91906157ca565b90506000479050612aca82613708565b60008147612ad891906157ca565b9050612ae383613936565b612aef83826001613b20565b505050506000601660146101000a81548160ff02191690831515021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60149054906101000a900461ffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c31906151f7565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051612ca9919061585d565b60405180910390a150565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612d5b575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9190614e9d565b60405180910390fd5b612da26140b3565b565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900460ff1681565b60001515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015612e9f57506000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15612f245780601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d601481819054906101000a900461ffff1680929190612f0890615878565b91906101000a81548161ffff021916908361ffff160217905550505b5050565b436010541180612f3a57506000601054145b15612f55578060ff1643612f4e91906158a3565b6010819055505b50565b6000806000905060011515600760009054906101000a900460ff1615151415612f845760019050612fde565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415612fdd57600190505b5b8091505090565b600083831115829061302d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130249190614965565b60405180910390fd5b506000838561303c91906157ca565b9050809150509392505050565b600043601054111561316457600360049054906101000a900463ffffffff1663ffffffff16600360009054906101000a900463ffffffff1663ffffffff168461309291906158f9565b73ffffffffffffffffffffffffffffffffffffffff1614156130bd576130b86001612f28565b61315f565b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156131145761310f8343612e00565b61315e565b61315d83601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e00565b5b5b6131f6565b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146131f5576131f483601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e00565b5b5b60011515600760009054906101000a900460ff16151514801561325957506000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b80156132a3575043601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b156132e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132da90615976565b60405180910390fd5b60001515601660149054906101000a900460ff1615151480156133535750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561336157613360614133565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156133c957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015613421575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156134705761343083836142bf565b61346f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613466906159e2565b60405180910390fd5b5b600061347d8585856143bb565b90506000613494828561400b90919063ffffffff16565b905061351f846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe59092919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000821115613601576135bd82600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461405590919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61365381600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461405590919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516136f39190614acd565b60405180910390a36001925050509392505050565b61371181613936565b6000600267ffffffffffffffff81111561372e5761372d615a02565b5b60405190808252806020026020018201604052801561375c5781602001602082028036833780820191505090505b509050308160008151811061377457613773615a31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561381657600080fd5b505afa15801561382a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061384e91906155c4565b8160018151811061386257613861615a31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613900959493929190615b59565b600060405180830381600087803b15801561391a57600080fd5b505af115801561392e573d6000803e3d6000fd5b505050505050565b80600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613b1d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051613b149190614acd565b60405180910390a35b50565b60008015158215151415613b525760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b8152600401613bb996959493929190615bb3565b6060604051808303818588803b158015613bd257600080fd5b505af1158015613be6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613c0b9190615c29565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c9d90615cc8565b60405180910390fd5b426013819055506001601354600f54613cbf91906158a3565b613cc991906157ca565b600f81905550600543613cdc919061506a565b6010819055506103e86009600a613cf3919061501f565b64e8d4a51000613d03919061506a565b6005613d0f919061506a565b613d1991906150f3565b6008819055506103e86009600a613d30919061501f565b64e8d4a51000613d40919061506a565b6005613d4c919061506a565b613d5691906150f3565b600981905550613d646140b3565b6019600d60186101000a81548160ff021916908360ff1602179055506001600760006101000a81548160ff021916908315150217905550565b6000600e60009054906101000a900461ffff16600d601e9054906101000a900461ffff16600d601c9054906101000a900461ffff16613ddc919061535b565b613de6919061535b565b90506000600d601c9054906101000a900461ffff1661ffff161115613e9d57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600d601c9054906101000a900461ffff1661ffff1685613e66919061506a565b613e7091906150f3565b9081150290604051600060405180830381858888f19350505050158015613e9b573d6000803e3d6000fd5b505b6000600d601e9054906101000a900461ffff1661ffff161115613f5257601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600d601e9054906101000a900461ffff1661ffff1685613f1b919061506a565b613f2591906150f3565b9081150290604051600060405180830381858888f19350505050158015613f50573d6000803e3d6000fd5b505b6000600e60009054906101000a900461ffff1661ffff16111561400757601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600e60009054906101000a900461ffff1661ffff1685613fd0919061506a565b613fda91906150f3565b9081150290604051600060405180830381858888f19350505050158015614005573d6000803e3d6000fd5b505b5050565b600061404d83836040518060400160405280601481526020017f5375627472616374696f6e206f766572666c6f77000000000000000000000000815250612fe5565b905092915050565b600080828461406491906158a3565b9050838110156140a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016140a090615d34565b60405180910390fd5b8091505092915050565b600d60169054906101000a900460ff16600d60176101000a81548160ff021916908360ff160217905550600d60169054906101000a900460ff16600d60186101000a81548160ff021916908360ff160217905550600d60169054906101000a900460ff16600d60196101000a81548160ff021916908360ff160217905550565b6001601660146101000a81548160ff021916908315150217905550600061415930611ee1565b9050600a548110158015614180575060011515600760009054906101000a900460ff161515145b801561419f575060001515600760019054906101000a900460ff161515145b156142a157600b5481106141b357600b5490505b600060026103e8600d601a9054906101000a900461ffff1661ffff16846141da919061506a565b6141e491906150f3565b6141ee91906150f3565b9050600081836141fe91906157ca565b9050600047905061420e82613708565b6000814761421c91906157ca565b90506000600d601a9054906101000a900461ffff1661ffff1611156142835760006103e8600d601a9054906101000a900461ffff1661ffff1683614260919061506a565b61426a91906150f3565b905061427585613936565b61428185826001613b20565b505b6000479050600081111561429b5761429a81613d9d565b5b50505050505b506000601660146101000a81548160ff021916908315150217905550565b6000806001905060011515600760009054906101000a900460ff16151514156143b1576008548311156142f557600090506143b0565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156143a557506009546143a384600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461405590919063ffffffff16565b115b156143af57600090505b5b5b8091505092915050565b60008060011515600760009054906101000a900460ff1615151480156143e25750600f5442105b156144155761440e60646144006062866146fc90919063ffffffff16565b61477790919063ffffffff16565b90506146f1565b60011515600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514806144c4575060011515600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b806144e2575060001515600760009054906101000a900460ff161515145b80614500575060011515600760019054906101000a900460ff161515145b1561450e57600090506146f0565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561456c575042601354115b1561457a57600090506146ef565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156145d957504260135411155b1561461d576146166064614608600d60179054906101000a900460ff1660ff16866146fc90919063ffffffff16565b61477790919063ffffffff16565b90506146ee565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156146b2576146ab606461469d600d60189054906101000a900460ff1660ff16866146fc90919063ffffffff16565b61477790919063ffffffff16565b90506146ed565b6146ea60646146dc600d60199054906101000a900460ff1660ff16866146fc90919063ffffffff16565b61477790919063ffffffff16565b90505b5b5b5b5b809150509392505050565b60008083141561470f5760009050614771565b6000828461471d919061506a565b905082848261472c91906150f3565b1461476c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161476390615da0565b60405180910390fd5b809150505b92915050565b60006147b983836040518060400160405280601081526020017f4469766973696f6e206279207a65726f000000000000000000000000000000008152506147c1565b905092915050565b60008083118290614808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016147ff9190614965565b60405180910390fd5b506000838561481791906150f3565b9050809150509392505050565b600080fd5b600063ffffffff82169050919050565b61484281614829565b811461484d57600080fd5b50565b60008135905061485f81614839565b92915050565b6000806000806080858703121561487f5761487e614824565b5b600061488d87828801614850565b945050602061489e87828801614850565b93505060406148af87828801614850565b92505060606148c087828801614850565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b838110156149065780820151818401526020810190506148eb565b83811115614915576000848401525b50505050565b6000601f19601f8301169050919050565b6000614937826148cc565b61494181856148d7565b93506149518185602086016148e8565b61495a8161491b565b840191505092915050565b6000602082019050818103600083015261497f818461492c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006149b282614987565b9050919050565b6149c2816149a7565b81146149cd57600080fd5b50565b6000813590506149df816149b9565b92915050565b6000819050919050565b6149f8816149e5565b8114614a0357600080fd5b50565b600081359050614a15816149ef565b92915050565b60008060408385031215614a3257614a31614824565b5b6000614a40858286016149d0565b9250506020614a5185828601614a06565b9150509250929050565b60008115159050919050565b614a7081614a5b565b82525050565b6000602082019050614a8b6000830184614a67565b92915050565b600060208284031215614aa757614aa6614824565b5b6000614ab5848285016149d0565b91505092915050565b614ac7816149e5565b82525050565b6000602082019050614ae26000830184614abe565b92915050565b600080600060608486031215614b0157614b00614824565b5b6000614b0f868287016149d0565b9350506020614b20868287016149d0565b9250506040614b3186828701614a06565b9150509250925092565b600060ff82169050919050565b614b5181614b3b565b82525050565b6000602082019050614b6c6000830184614b48565b92915050565b614b7b81614b3b565b8114614b8657600080fd5b50565b600081359050614b9881614b72565b92915050565b600080600060608486031215614bb757614bb6614824565b5b6000614bc586828701614b89565b9350506020614bd686828701614b89565b9250506040614be786828701614b89565b9150509250925092565b600061ffff82169050919050565b614c0881614bf1565b8114614c1357600080fd5b50565b600081359050614c2581614bff565b92915050565b60008060008060808587031215614c4557614c44614824565b5b6000614c5387828801614c16565b9450506020614c6487828801614c16565b9350506040614c7587828801614c16565b9250506060614c8687828801614c16565b91505092959194509250565b600060208284031215614ca857614ca7614824565b5b6000614cb684828501614a06565b91505092915050565b614cc8816149a7565b82525050565b6000602082019050614ce36000830184614cbf565b92915050565b600080600060608486031215614d0257614d01614824565b5b6000614d10868287016149d0565b9350506020614d21868287016149d0565b9250506040614d32868287016149d0565b9150509250925092565b60008060408385031215614d5357614d52614824565b5b6000614d6185828601614c16565b9250506020614d7285828601614c16565b9150509250929050565b60008060408385031215614d9357614d92614824565b5b6000614da1858286016149d0565b9250506020614db2858286016149d0565b9150509250929050565b614dc581614bf1565b82525050565b6000602082019050614de06000830184614dbc565b92915050565b6000614df182614987565b9050919050565b614e0181614de6565b8114614e0c57600080fd5b50565b600081359050614e1e81614df8565b92915050565b600060208284031215614e3a57614e39614824565b5b6000614e4884828501614e0f565b91505092915050565b7f3430330000000000000000000000000000000000000000000000000000000000600082015250565b6000614e876003836148d7565b9150614e9282614e51565b602082019050919050565b60006020820190508181036000830152614eb681614e7a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115614f4357808604811115614f1f57614f1e614ebd565b5b6001851615614f2e5780820291505b8081029050614f3c85614eec565b9450614f03565b94509492505050565b600082614f5c5760019050615018565b81614f6a5760009050615018565b8160018114614f805760028114614f8a57614fb9565b6001915050615018565b60ff841115614f9c57614f9b614ebd565b5b8360020a915084821115614fb357614fb2614ebd565b5b50615018565b5060208310610133831016604e8410600b8410161715614fee5782820a905083811115614fe957614fe8614ebd565b5b615018565b614ffb8484846001614ef9565b9250905081840481111561501257615011614ebd565b5b81810290505b9392505050565b600061502a826149e5565b915061503583614b3b565b92506150627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614f4c565b905092915050565b6000615075826149e5565b9150615080836149e5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156150b9576150b8614ebd565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006150fe826149e5565b9150615109836149e5565b925082615119576151186150c4565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061516b57607f821691505b6020821081141561517f5761517e615124565b5b50919050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b60006151e1602a836148d7565b91506151ec82615185565b604082019050919050565b60006020820190508181036000830152615210816151d4565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b600061524d6010836148d7565b915061525882615217565b602082019050919050565b6000602082019050818103600083015261527c81615240565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b60006152b96009836148d7565b91506152c482615283565b602082019050919050565b600060208201905081810360008301526152e8816152ac565b9050919050565b7f4e657720746178206d757374206265206c6f7765720000000000000000000000600082015250565b60006153256015836148d7565b9150615330826152ef565b602082019050919050565b6000602082019050818103600083015261535481615318565b9050919050565b600061536682614bf1565b915061537183614bf1565b92508261ffff0382111561538857615387614ebd565b5b828201905092915050565b7f53756d206d757374206265203130303000000000000000000000000000000000600082015250565b60006153c96010836148d7565b91506153d482615393565b602082019050919050565b600060208201905081810360008301526153f8816153bc565b9050919050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b60006154356014836148d7565b9150615440826153ff565b602082019050919050565b6000602082019050818103600083015261546481615428565b9050919050565b7f6574682063616e6e6f7420626520300000000000000000000000000000000000600082015250565b60006154a1600f836148d7565b91506154ac8261546b565b602082019050919050565b600060208201905081810360008301526154d081615494565b9050919050565b7f6e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b600061550d600e836148d7565b9150615518826154d7565b602082019050919050565b6000602082019050818103600083015261553c81615500565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b60006155796009836148d7565b915061558482615543565b602082019050919050565b600060208201905081810360008301526155a88161556c565b9050919050565b6000815190506155be816149b9565b92915050565b6000602082840312156155da576155d9614824565b5b60006155e8848285016155af565b91505092915050565b60006040820190506156066000830185614cbf565b6156136020830184614cbf565b9392505050565b7f74726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006156506010836148d7565b915061565b8261561a565b602082019050919050565b6000602082019050818103600083015261567f81615643565b9050919050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b60006156bc6010836148d7565b91506156c782615686565b602082019050919050565b600060208201905081810360008301526156eb816156af565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b60006157286014836148d7565b9150615733826156f2565b602082019050919050565b600060208201905081810360008301526157578161571b565b9050919050565b7f6e6f74206120736e697065720000000000000000000000000000000000000000600082015250565b6000615794600c836148d7565b915061579f8261575e565b602082019050919050565b600060208201905081810360008301526157c381615787565b9050919050565b60006157d5826149e5565b91506157e0836149e5565b9250828210156157f3576157f2614ebd565b5b828203905092915050565b6000819050919050565b600061582361581e61581984614987565b6157fe565b614987565b9050919050565b600061583582615808565b9050919050565b60006158478261582a565b9050919050565b6158578161583c565b82525050565b6000602082019050615872600083018461584e565b92915050565b600061588382614bf1565b915061ffff82141561589857615897614ebd565b5b600182019050919050565b60006158ae826149e5565b91506158b9836149e5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156158ee576158ed614ebd565b5b828201905092915050565b600061590482614987565b915061590f83614987565b92508261591f5761591e6150c4565b5b828206905092915050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000615960600b836148d7565b915061596b8261592a565b602082019050919050565b6000602082019050818103600083015261598f81615953565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b60006159cc6011836148d7565b91506159d782615996565b602082019050919050565b600060208201905081810360008301526159fb816159bf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000615a85615a80615a7b84615a60565b6157fe565b6149e5565b9050919050565b615a9581615a6a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615ad0816149a7565b82525050565b6000615ae28383615ac7565b60208301905092915050565b6000602082019050919050565b6000615b0682615a9b565b615b108185615aa6565b9350615b1b83615ab7565b8060005b83811015615b4c578151615b338882615ad6565b9750615b3e83615aee565b925050600181019050615b1f565b5085935050505092915050565b600060a082019050615b6e6000830188614abe565b615b7b6020830187615a8c565b8181036040830152615b8d8186615afb565b9050615b9c6060830185614cbf565b615ba96080830184614abe565b9695505050505050565b600060c082019050615bc86000830189614cbf565b615bd56020830188614abe565b615be26040830187615a8c565b615bef6060830186615a8c565b615bfc6080830185614cbf565b615c0960a0830184614abe565b979650505050505050565b600081519050615c23816149ef565b92915050565b600080600060608486031215615c4257615c41614824565b5b6000615c5086828701615c14565b9350506020615c6186828701615c14565b9250506040615c7286828701615c14565b9150509250925092565b7f4c50206e6f742073657400000000000000000000000000000000000000000000600082015250565b6000615cb2600a836148d7565b9150615cbd82615c7c565b602082019050919050565b60006020820190508181036000830152615ce181615ca5565b9050919050565b7f4164646974696f6e206f766572666c6f77000000000000000000000000000000600082015250565b6000615d1e6011836148d7565b9150615d2982615ce8565b602082019050919050565b60006020820190508181036000830152615d4d81615d11565b9050919050565b7f4d756c7469706c69636174696f6e206f766572666c6f77000000000000000000600082015250565b6000615d8a6017836148d7565b9150615d9582615d54565b602082019050919050565b60006020820190508181036000830152615db981615d7d565b905091905056fea2646970667358221220d992028fca64dca6fa9572728778ea670ccdcedb8d506300cc560f99ee5c2e5264736f6c63430008090033

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

0000000000000000000000000000000000000000000000000000000028f925b100000000000000000000000000000000000000000000000000000000112494f0

-----Decoded View---------------
Arg [0] : smd (uint32): 687416753
Arg [1] : smr (uint32): 287610096

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000028f925b1
Arg [1] : 00000000000000000000000000000000000000000000000000000000112494f0


Deployed Bytecode Sourcemap

3115:15499:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7470:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5809:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9891:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8015:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18480:129;;;;;;;;;;;;;:::i;:::-;;5548:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11739:66;;;;;;;;;;;;;:::i;:::-;;11985:397;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3563:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5639:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8274:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17901:337;;;;;;;;;;;;;:::i;:::-;;8603:369;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8982:464;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8436:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6219:914;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5973:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5892:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3591:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5722:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9458:428;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10213:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3619:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10428:514;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10950:71;;;;;;;;;;;;;:::i;:::-;;18243:232;;;;;;;;;;;;;:::i;:::-;;13620:735;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6081:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3781:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2292:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7763:117;;;;;;;;;;;;;:::i;:::-;;8164:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3533:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7470:288;7603:9;;;;;;;;;;;7589:23;;:10;:23;;;:46;;;;7630:5;;;;;;;;;;7616:19;;:10;:19;;;7589:46;7581:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;7688:10;7662:36;;7677:8;7662:23;;3330:1;3283:2;:15;;;;:::i;:::-;3267:12;:32;;;;:::i;:::-;7662:23;;;;:::i;:::-;:36;;;;:::i;:::-;7648:11;:50;;;;7743:10;7717:36;;7732:8;7717:23;;3330:1;3283:2;:15;;;;:::i;:::-;3267:12;:32;;;;:::i;:::-;7717:23;;;;:::i;:::-;:36;;;;:::i;:::-;7703:11;:50;;;;7470:288;;;;:::o;5809:80::-;5857:13;5881:5;5874:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5809:80;:::o;9891:317::-;9966:4;9995:12;9981:11;;:26;:61;;;;;10037:5;10011:31;;:10;:22;10022:10;10011:22;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;9981:61;9977:116;;;10050:37;10062:10;10074:12;10050:11;:37::i;:::-;9977:116;10134:6;10099:11;:23;10111:10;10099:23;;;;;;;;;;;;;;;:32;10123:7;10099:32;;;;;;;;;;;;;;;:41;;;;10171:7;10150:37;;10159:10;10150:37;;;10180:6;10150:37;;;;;;:::i;:::-;;;;;;;;10199:4;10192:11;;9891:317;;;;:::o;8015:144::-;8071:4;8110:1;8086:12;:20;8099:6;8086:20;;;;;;;;;;;;;;;;:25;8082:73;;8122:4;8115:11;;;;8082:73;8147:5;8140:12;;8015:144;;;;:::o;18480:129::-;18537:9;;;;;;;;;;;18523:23;;:10;:23;;;:46;;;;18564:5;;;;;;;;;;18550:19;;:10;:19;;;18523:46;18515:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;18595:9;;;;;;;;;;;18594:10;18582:9;;:22;;;;;;;;;;;;;;;;;;18480:129::o;5548:88::-;5603:7;3330:1;3283:2;:15;;;;:::i;:::-;3267:12;:32;;;;:::i;:::-;5614:19;;5548:88;:::o;11739:66::-;2231:5;;;;;;;;;;2217:19;;:10;:19;;;2209:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11788:12:::1;11798:1;11788:9;:12::i;:::-;11739:66::o:0;11985:397::-;12085:4;12110:19;:17;:19::i;:::-;12102:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12193:17;12158:11;:19;12170:6;12158:19;;;;;;;;;;;;;;;:31;12178:10;12158:31;;;;;;;;;;;;;;;;:52;12155:171;;12251:69;12287:6;12251:69;;;;;;;;;;;;;;;;;:11;:19;12263:6;12251:19;;;;;;;;;;;;;;;:31;12271:10;12251:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;12217:11;:19;12229:6;12217:19;;;;;;;;;;;;;;;:31;12237:10;12217:31;;;;;;;;;;;;;;;:103;;;;12155:171;12337:40;12351:6;12359:9;12370:6;12337:13;:40::i;:::-;12330:47;;11985:397;;;;;:::o;3563:21::-;;;;;;;;;;;;;:::o;5639:80::-;5691:5;3330:1;5700:16;;5639:80;:::o;8274:159::-;8350:9;;;;;;;;;;;8336:23;;:10;:23;;;:46;;;;8377:5;;;;;;;;;;8363:19;;:10;:19;;;8336:46;8328:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8424:4;8395:16;:26;8413:6;8395:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8274:159;:::o;17901:337::-;17956:11;;;;;;;;;;;17942:25;;:10;:25;;;:54;;;;17985:11;;;;;;;;;;;17971:25;;:10;:25;;;17942:54;:83;;;;18014:11;;;;;;;;;;;18000:25;;:10;:25;;;17942:83;:110;;;;18043:9;;;;;;;;;;;18029:23;;:10;:23;;;17942:110;:133;;;;18070:5;;;;;;;;;;18056:19;;:10;:19;;;17942:133;17934:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;18089:23;18115:24;18133:4;18115:9;:24::i;:::-;18089:50;;18176:1;18158:15;:19;18150:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;18196:37;18217:15;18196:20;:37::i;:::-;17929:309;17901:337::o;8603:369::-;8715:9;;;;;;;;;;;8701:23;;:10;:23;;;:46;;;;8742:5;;;;;;;;;;8728:19;;:10;:19;;;8701:46;8693:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8787:11;;;;;;;;;;;8774:24;;:9;:24;;;;:54;;;;;8816:12;;;;;;;;;;;8802:26;;:10;:26;;;;8774:54;:80;;;;;8844:10;;;;;;;;;;;8832:22;;:8;:22;;;;8774:80;8766:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;8899:9;8885:11;;:23;;;;;;;;;;;;;;;;;;8928:10;8913:12;;:25;;;;;;;;;;;;;;;;;;8956:8;8943:10;;:21;;;;;;;;;;;;;;;;;;8603:369;;;:::o;8982:464::-;9136:9;;;;;;;;;;;9122:23;;:10;:23;;;:46;;;;9163:5;;;;;;;;;;9149:19;;:10;:19;;;9122:46;9114:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9259:4;9242:13;9226;9210;9195:12;:28;;;;:::i;:::-;:44;;;;:::i;:::-;:60;;;;:::i;:::-;:68;;;9187:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;9312:12;9296:13;;:28;;;;;;;;;;;;;;;;;;9349:13;9335:11;;:27;;;;;;;;;;;;;;;;;;9387:13;9373:11;;:27;;;;;;;;;;;;;;;;;;9425:13;9411:11;;:27;;;;;;;;;;;;;;;;;;8982:464;;;;:::o;8436:159::-;8511:9;;;;;;;;;;;8497:23;;:10;:23;;;:46;;;;8538:5;;;;;;;;;;8524:19;;:10;:19;;;8497:46;8489:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8585:5;8556:16;:26;8574:6;8556:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;8436:159;:::o;6219:914::-;2231:5;;;;;;;;;;2217:19;;:10;:19;;;2209:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6290:11:::1;;;;;;;;;;;6289:12;6281:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;6354:1;6339:12;:16;6331:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;6410:4;6382:10;:25;6401:4;6382:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;6439:4;6419:10;:17;6430:5:::0;::::1;;;;;;;;;;6419:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;6474:4;6448:10;:23;6459:11;;;;;;;;;;;6448:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;6509:4;6483:10;:23;6494:11;;;;;;;;;;;6483:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;6544:4;6518:10;:23;6529:11;;;;;;;;;;;6518:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;6555:60;6577:4;6584:5;::::0;::::1;;;;;;;;6611:3;6606:2;3330:1;3283:2;:15;;;;:::i;:::-;3267:12;:32;;;;:::i;:::-;6591:17;;;;:::i;:::-;:23;;;;:::i;:::-;6555:13;:60::i;:::-;;6620:27;6650:21;6620:51;;6707:12;6684:19;:35;;6676:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6743:29;6775:24;6793:4;6775:9;:24::i;:::-;6743:56;;6836:1;6812:21;:25;6804:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;6887:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6869:56;;;6934:4;6941:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6869:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6856:10;;:109;;;;;;;;;;;;;;;;;;6997:4;6972:10;:22;6983:10;;;;;;;;;;;6972:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;7008:37;7023:21;7008:14;:37::i;:::-;7050:57;7064:21;7087:12;7101:5;7050:13;:57::i;:::-;7114:14;:12;:14::i;:::-;6276:857;;6219:914:::0;:::o;5973:105::-;6039:7;6057:9;:18;6067:7;6057:18;;;;;;;;;;;;;;;;6050:25;;5973:105;;;:::o;5892:78::-;5944:7;5962:5;;;;;;;;;;;5955:12;;5892:78;:::o;3591:26::-;;;;:::o;5722:84::-;5772:13;5796:7;5789:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5722:84;:::o;9458:428::-;9580:9;;;;;;;;;;;9566:23;;:10;:23;;;:46;;;;9607:5;;;;;;;;;;9593:19;;:10;:19;;;9566:46;9558:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9653:11;9631;;:34;;;;;;;;;;;;;;;;;;9698:11;9676;;:34;;;;;;;;;;;;;;;;;;9743:11;9721;;:34;;;;;;;;;;;;;;;;;;9792:4;9760:16;:29;9777:11;9760:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;9833:4;9801:16;:29;9818:11;9801:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;9874:4;9842:16;:29;9859:11;9842:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;9458:428;;;:::o;10213:203::-;10293:4;10315:19;:17;:19::i;:::-;10307:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10367:44;10381:10;10393:9;10404:6;10367:13;:44::i;:::-;10360:51;;10213:203;;;;:::o;3619:30::-;;;;:::o;10428:514::-;10540:9;;;;;;;;;;;10526:23;;:10;:23;;;:46;;;;10567:5;;;;;;;;;;10553:19;;:10;:19;;;10526:46;10518:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10591:16;10643:4;10625:15;10610:30;;3330:1;3283:2;:15;;;;:::i;:::-;3267:12;:32;;;;:::i;:::-;10610:30;;;;:::i;:::-;:37;;;;:::i;:::-;10591:56;;10678:11;;10666:8;:23;;10658:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;10735:8;10721:11;:22;;;;10754:20;10814:4;10792:19;10777:34;;3330:1;3283:2;:15;;;;:::i;:::-;3267:12;:32;;;;:::i;:::-;10777:34;;;;:::i;:::-;:41;;;;:::i;:::-;10754:64;;10853:15;;10837:12;:31;;10829:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10922:12;10904:15;:30;;;;10513:429;;10428:514;;:::o;10950:71::-;2231:5;;;;;;;;;;2217:19;;:10;:19;;;2209:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11002:14:::1;:12;:14::i;:::-;10950:71::o:0;18243:232::-;18299:11;;;;;;;;;;;18285:25;;:10;:25;;;:54;;;;18328:11;;;;;;;;;;;18314:25;;:10;:25;;;18285:54;:83;;;;18357:11;;;;;;;;;;;18343:25;;:10;:25;;;18285:83;:110;;;;18386:9;;;;;;;;;;;18372:23;;:10;:23;;;18285:110;:133;;;;18413:5;;;;;;;;;;18399:19;;:10;:19;;;18285:133;18277:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;18432:37;18447:21;18432:14;:37::i;:::-;18243:232::o;13620:735::-;2231:5;;;;;;;;;;2217:19;;:10;:19;;;2209:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;4811:4:::1;4798:10;;:17;;;;;;;;;;;;;;;;;;13730:1:::2;13706:12;:20;13719:6;13706:20;;;;;;;;;;;;;;;;:25;;13698:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;13756:21;13780:17;13790:6;13780:9;:17::i;:::-;13756:41;;13829:1;13813:13;:17;13805:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;13874:36;13896:13;13874:9;:17;13884:6;13874:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;13854:9;:17;13864:6;13854:17;;;;;;;;;;;;;;;:56;;;;13945:43;13974:13;13945:9;:24;13963:4;13945:24;;;;;;;;;;;;;;;;:28;;:43;;;;:::i;:::-;13918:9;:24;13936:4;13918:24;;;;;;;;;;;;;;;:70;;;;14023:4;13998:46;;14007:6;13998:46;;;14030:13;13998:46;;;;;;:::i;:::-;;;;;;;;14051:23;14095:1;14091;14077:13;:15;;;;:::i;:::-;:19;;;;:::i;:::-;14051:45;;14101:19;14123:21;14101:43;;14152:37;14173:15;14152:20;:37::i;:::-;14197:19;14243:11;14219:21;:35;;;;:::i;:::-;14197:57;;14262:31;14277:15;14262:14;:31::i;:::-;14298:49;14312:15;14329:11;14342:4;14298:13;:49::i;:::-;13690:665;;;;4833:5:::1;4820:10;;:18;;;;;;;;;;;;;;;;;;13620:735:::0;:::o;6081:133::-;6165:7;6183:11;:19;6195:6;6183:19;;;;;;;;;;;;;;;:28;6203:7;6183:28;;;;;;;;;;;;;;;;6176:35;;6081:133;;;;:::o;3781:31::-;;;;;;;;;;;;;:::o;2292:130::-;2231:5;;;;;;;;;;2217:19;;:10;:19;;;2209:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;2374:8:::1;2366:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;2389:30;2410:8;2389:30;;;;;;:::i;:::-;;;;;;;;2292:130:::0;:::o;7763:117::-;7819:9;;;;;;;;;;;7805:23;;:10;:23;;;:46;;;;7846:5;;;;;;;;;;7832:19;;:10;:19;;;7805:46;7797:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;7864:11;:9;:11::i;:::-;7763:117::o;8164:105::-;8223:7;8244:12;:20;8257:6;8244:20;;;;;;;;;;;;;;;;8237:27;;8164:105;;;:::o;3533:23::-;;;;;;;;;;;;;:::o;15304:212::-;15404:5;15382:27;;:10;:18;15393:6;15382:18;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;:56;;;;;15437:1;15413:12;:20;15426:6;15413:20;;;;;;;;;;;;;;;;:25;15382:56;15378:134;;;15470:13;15447:12;:20;15460:6;15447:20;;;;;;;;;;;;;;;:36;;;;15490:13;;:16;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;15378:134;15304:212;;:::o;11813:163::-;11883:12;11869:11;;:26;:46;;;;11914:1;11899:11;;:16;11869:46;11865:107;;;11955:8;11940:23;;:12;:23;;;;:::i;:::-;11926:11;:37;;;;11865:107;11813:163;:::o;11479:252::-;11530:4;11546:16;11565:5;11546:24;;11600:4;11585:19;;:11;;;;;;;;;;;:19;;;11581:111;;;11622:4;11608:18;;11581:111;;;11662:5;;;;;;;;;;11649:18;;:9;:18;;;11645:47;;;11685:4;11671:18;;11645:47;11581:111;11712:11;11705:18;;;11479:252;:::o;338:158::-;424:7;448:1;443;:6;;451:12;435:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;466:9;482:1;478;:5;;;;:::i;:::-;466:17;;492:1;485:8;;;338:158;;;;;:::o;15521:1285::-;15613:4;15642:12;15628:11;;:26;15624:352;;;15705:4;;;;;;;;;;;15667:42;;15697:4;;;;;;;;;;;15667:34;;15683:9;15667:34;;;;:::i;:::-;:42;;;15662:210;;;15714:12;15724:1;15714:9;:12::i;:::-;15662:210;;;15768:1;15744:12;:20;15757:6;15744:20;;;;;;;;;;;;;;;;:25;15739:133;;;15774:36;15786:9;15797:12;15774:11;:36::i;:::-;15739:133;;;15825:44;15837:9;15848:12;:20;15861:6;15848:20;;;;;;;;;;;;;;;;15825:11;:44::i;:::-;15739:133;15662:210;15624:352;;;15918:1;15894:12;:20;15907:6;15894:20;;;;;;;;;;;;;;;;:25;15889:82;;15924:44;15936:9;15947:12;:20;15960:6;15947:20;;;;;;;;;;;;;;;;15924:11;:44::i;:::-;15889:82;15624:352;16002:4;15987:19;;:11;;;;;;;;;;;:19;;;:48;;;;;16034:1;16010:12;:20;16023:6;16010:20;;;;;;;;;;;;;;;;:25;;15987:48;:87;;;;;16062:12;16039;:20;16052:6;16039:20;;;;;;;;;;;;;;;;:35;15987:87;15982:128;;;16083:21;;;;;;;;;;:::i;:::-;;;;;;;;15982:128;16140:5;16126:19;;:10;;;;;;;;;;;:19;;;:46;;;;;16162:10;;;;;;;;;;;16149:23;;:9;:23;;;16126:46;16122:90;;;16186:20;:18;:20::i;:::-;16122:90;16245:4;16227:23;;:6;:23;;;;:53;;;;;16275:4;16254:26;;:9;:26;;;;16227:53;:72;;;;;16294:5;;;;;;;;;;16284:15;;:6;:15;;;;16227:72;16222:145;;;16311:31;16324:9;16335:6;16311:12;:31::i;:::-;16303:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;16222:145;16374:18;16395:40;16409:6;16417:9;16428:6;16395:13;:40::i;:::-;16374:61;;16443:23;16469:22;16480:10;16469:6;:10;;:22;;;;:::i;:::-;16443:48;;16519:53;16541:6;16519:53;;;;;;;;;;;;;;;;;:9;:17;16529:6;16519:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16499:9;:17;16509:6;16499:17;;;;;;;;;;;;;;;:73;;;;16597:1;16584:10;:14;16580:92;;;16629:40;16658:10;16629:9;:24;16647:4;16629:24;;;;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;16602:9;:24;16620:4;16602:24;;;;;;;;;;;;;;;:67;;;;16580:92;16699:41;16724:15;16699:9;:20;16709:9;16699:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;16676:9;:20;16686:9;16676:20;;;;;;;;;;;;;;;:64;;;;16767:9;16750:35;;16759:6;16750:35;;;16778:6;16750:35;;;;;;:::i;:::-;;;;;;;;16797:4;16790:11;;;;15521:1285;;;;;:::o;17113:359::-;17178:28;17193:12;17178:14;:28::i;:::-;17217:21;17255:1;17241:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17217:40;;17286:4;17268;17273:1;17268:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17312:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17302:4;17307:1;17302:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;17346:16;;;;;;;;;;;:67;;;17414:12;17427:1;17429:4;17442;17448:15;17346:118;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17173:299;17113:359;:::o;16811:297::-;16929:12;16875:11;:26;16895:4;16875:26;;;;;;;;;;;;;;;:51;4665:42;16875:51;;;;;;;;;;;;;;;;:66;16871:233;;;17003:17;16949:11;:26;16969:4;16949:26;;;;;;;;;;;;;;;:51;4665:42;16949:51;;;;;;;;;;;;;;;:71;;;;4665:42;17031:67;;17048:4;17031:67;;;17080:17;17031:67;;;;;;:::i;:::-;;;;;;;;16871:233;16811:297;:::o;7138:327::-;7235:24;7293:5;7281:17;;:8;:17;;;7277:52;;;7321:5;;;;;;;;;;7302:24;;7277:52;7333:16;;;;;;;;;;;:32;;;7373:13;7398:4;7405:12;7419:1;7422;7425:16;7443:15;7333:127;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7230:235;7138:327;;;:::o;11030:437::-;11104:1;11082:24;;:10;;;;;;;;;;;:24;;;;11074:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11147:15;11132:12;:30;;;;11202:1;11187:12;;11180:4;;:19;;;;:::i;:::-;:23;;;;:::i;:::-;11173:4;:30;;;;11243:1;11228:12;:16;;;;:::i;:::-;11214:11;:30;;;;11286:4;3330:1;3283:2;:15;;;;:::i;:::-;3267:12;:32;;;;:::i;:::-;11267:1;:16;;;;:::i;:::-;:23;;;;:::i;:::-;11249:11;:41;;;;11333:4;3330:1;3283:2;:15;;;;:::i;:::-;3267:12;:32;;;;:::i;:::-;11314:1;:16;;;;:::i;:::-;:23;;;;:::i;:::-;11296:15;:41;;;;11342:11;:9;:11::i;:::-;11373:2;11358:12;;:17;;;;;;;;;;;;;;;;;;11453:4;11439:11;;:18;;;;;;;;;;;;;;;;;;11030:437::o;17480:416::-;17537:21;17589:11;;;;;;;;;;;17575;;;;;;;;;;;17561;;;;;;;;;;;:25;;;;:::i;:::-;:39;;;;:::i;:::-;17537:63;;17629:1;17615:11;;;;;;;;;;;:15;;;17611:86;;;17634:11;;;;;;;;;;;:20;;:60;17679:14;17655:38;;17665:11;;;;;;;;;;;17655:21;;:7;:21;;;;:::i;:::-;:38;;;;:::i;:::-;17634:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17611:86;17725:1;17711:11;;;;;;;;;;;:15;;;17707:86;;;17730:11;;;;;;;;;;;:20;;:60;17775:14;17751:38;;17761:11;;;;;;;;;;;17751:21;;:7;:21;;;;:::i;:::-;:38;;;;:::i;:::-;17730:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17707:86;17821:1;17807:11;;;;;;;;;;;:15;;;17803:86;;;17826:11;;;;;;;;;;;:20;;:60;17871:14;17847:38;;17857:11;;;;;;;;;;;17847:21;;:7;:21;;;;:::i;:::-;:38;;;;:::i;:::-;17826:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17803:86;17529:367;17480:416;:::o;223:112::-;281:7;299:33;303:1;306;299:33;;;;;;;;;;;;;;;;;:3;:33::i;:::-;292:40;;223:112;;;;:::o;83:137::-;141:7;152:9;168:1;164;:5;;;;:::i;:::-;152:17;;184:1;179;:6;;171:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;216:1;209:8;;;83:137;;;;:::o;7885:125::-;7934:11;;;;;;;;;;;7920;;:25;;;;;;;;;;;;;;;;;;7965:11;;;;;;;;;;;7950:12;;:26;;;;;;;;;;;;;;;;;;7994:11;;;;;;;;;;;7981:10;;:24;;;;;;;;;;;;;;;;;;7885:125::o;14360:939::-;4811:4;4798:10;;:17;;;;;;;;;;;;;;;;;;14415:27:::1;14445:24;14463:4;14445:9;:24::i;:::-;14415:54;;14501:11;;14478:19;:34;;:57;;;;;14531:4;14516:19;;:11;;;;;;;;;;;:19;;;14478:57;:79;;;;;14552:5;14539:18;;:9;;;;;;;;;;;:18;;;14478:79;14474:821;;;14593:11;;14570:19;:34;14566:78;;14630:11;;14608:33;;14566:78;14649:20;14717:1;14710:4;14694:13;;;;;;;;;;;14672:35;;:19;:35;;;;:::i;:::-;:42;;;;:::i;:::-;:46;;;;:::i;:::-;14649:69;;14727:21;14773:12;14751:19;:34;;;;:::i;:::-;14727:58;;14794:19;14816:21;14794:43;;14846:35;14867:13;14846:20;:35::i;:::-;14890:19;14936:11;14912:21;:35;;;;:::i;:::-;14890:57;;14976:1;14960:13;;;;;;;;;;;:17;;;14956:198;;;14989:21;15043:4;15027:13;;;;;;;;;;;15013:27;;:11;:27;;;;:::i;:::-;:34;;;;:::i;:::-;14989:58;;15058:28;15073:12;15058:14;:28::i;:::-;15096:48;15110:12;15124:13;15139:4;15096:13;:48::i;:::-;14979:175;14956:198;15162:27;15192:21;15162:51;;15247:1;15225:19;:23;15222:68;;;15252:35;15267:19;15252:14;:35::i;:::-;15222:68;14560:735;;;;;14474:821;14410:889;4833:5:::0;4820:10;;:18;;;;;;;;;;;;;;;;;;14360:939::o;12388:446::-;12476:4;12493:21;12517:4;12493:28;;12552:4;12537:19;;:11;;;;;;;;;;;:19;;;12532:261;;;12596:11;;12579:14;:28;12574:208;;;12631:5;12612:24;;12574:208;;;12676:10;;;;;;;;;;;12663:23;;:9;:23;;;;:87;;;;;12734:15;;12691:40;12716:14;12691:9;:20;12701:9;12691:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;:58;12663:87;12658:124;;;12774:5;12755:24;;12658:124;12574:208;12532:261;12810:16;12803:23;;;12388:446;;;;:::o;12842:770::-;12939:7;12959:17;13007:4;12992:19;;:11;;;;;;;;;;;:19;;;:45;;;;;13033:4;;13015:15;:22;12992:45;12987:597;;;13054:23;13073:3;13054:14;13065:2;13054:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;13042:35;;12987:597;;;13121:4;13093:32;;:16;:24;13110:6;13093:24;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;:71;;;;13160:4;13129:35;;:16;:27;13146:9;13129:27;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;13093:71;:95;;;;13183:5;13168:20;;:11;;;;;;;;;;;:20;;;13093:95;:116;;;;13205:4;13192:17;;:9;;;;;;;;;;;:17;;;13093:116;13088:496;;;13225:1;13213:13;;13088:496;;;13253:10;;;;;;;;;;;13243:20;;:6;:20;;;:54;;;;;13282:15;13267:12;;:30;13243:54;13238:346;;;13313:1;13301:13;;13238:346;;;13341:10;;;;;;;;;;;13331:20;;:6;:20;;;:55;;;;;13371:15;13355:12;;:31;;13331:55;13326:258;;;13402:32;13430:3;13402:23;13413:11;;;;;;;;;;;13402:23;;:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;13390:44;;13326:258;;;13464:10;;;;;;;;;;;13451:23;;:9;:23;;;13446:138;;;13491:33;13520:3;13491:24;13502:12;;;;;;;;;;;13491:24;;:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;13479:45;;13446:138;;;13550:31;13577:3;13550:22;13561:10;;;;;;;;;;;13550:22;;:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;13538:43;;13446:138;13326:258;13238:346;13088:496;12987:597;13595:9;13588:16;;;12842:770;;;;;:::o;499:173::-;557:7;577:1;572;:6;568:25;;;589:1;582:8;;;;568:25;594:9;610:1;606;:5;;;;:::i;:::-;594:17;;630:1;625;621;:5;;;;:::i;:::-;:10;613:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;668:1;661:8;;;499:173;;;;;:::o;675:108::-;733:7;751:29;755:1;758;751:29;;;;;;;;;;;;;;;;;:3;:29::i;:::-;744:36;;675:108;;;;:::o;786:157::-;872:7;895:1;891;:5;898:12;883:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;913:9;929:1;925;:5;;;;:::i;:::-;913:17;;939:1;932:8;;;786:157;;;;;:::o;88:117:1:-;197:1;194;187:12;334:93;370:7;410:10;403:5;399:22;388:33;;334:93;;;:::o;433:120::-;505:23;522:5;505:23;:::i;:::-;498:5;495:34;485:62;;543:1;540;533:12;485:62;433:120;:::o;559:137::-;604:5;642:6;629:20;620:29;;658:32;684:5;658:32;:::i;:::-;559:137;;;;:::o;702:757::-;784:6;792;800;808;857:3;845:9;836:7;832:23;828:33;825:120;;;864:79;;:::i;:::-;825:120;984:1;1009:52;1053:7;1044:6;1033:9;1029:22;1009:52;:::i;:::-;999:62;;955:116;1110:2;1136:52;1180:7;1171:6;1160:9;1156:22;1136:52;:::i;:::-;1126:62;;1081:117;1237:2;1263:52;1307:7;1298:6;1287:9;1283:22;1263:52;:::i;:::-;1253:62;;1208:117;1364:2;1390:52;1434:7;1425:6;1414:9;1410:22;1390:52;:::i;:::-;1380:62;;1335:117;702:757;;;;;;;:::o;1465:99::-;1517:6;1551:5;1545:12;1535:22;;1465:99;;;:::o;1570:169::-;1654:11;1688:6;1683:3;1676:19;1728:4;1723:3;1719:14;1704:29;;1570:169;;;;:::o;1745:307::-;1813:1;1823:113;1837:6;1834:1;1831:13;1823:113;;;1922:1;1917:3;1913:11;1907:18;1903:1;1898:3;1894:11;1887:39;1859:2;1856:1;1852:10;1847:15;;1823:113;;;1954:6;1951:1;1948:13;1945:101;;;2034:1;2025:6;2020:3;2016:16;2009:27;1945:101;1794:258;1745:307;;;:::o;2058:102::-;2099:6;2150:2;2146:7;2141:2;2134:5;2130:14;2126:28;2116:38;;2058:102;;;:::o;2166:364::-;2254:3;2282:39;2315:5;2282:39;:::i;:::-;2337:71;2401:6;2396:3;2337:71;:::i;:::-;2330:78;;2417:52;2462:6;2457:3;2450:4;2443:5;2439:16;2417:52;:::i;:::-;2494:29;2516:6;2494:29;:::i;:::-;2489:3;2485:39;2478:46;;2258:272;2166:364;;;;:::o;2536:313::-;2649:4;2687:2;2676:9;2672:18;2664:26;;2736:9;2730:4;2726:20;2722:1;2711:9;2707:17;2700:47;2764:78;2837:4;2828:6;2764:78;:::i;:::-;2756:86;;2536:313;;;;:::o;2855:126::-;2892:7;2932:42;2925:5;2921:54;2910:65;;2855:126;;;:::o;2987:96::-;3024:7;3053:24;3071:5;3053:24;:::i;:::-;3042:35;;2987:96;;;:::o;3089:122::-;3162:24;3180:5;3162:24;:::i;:::-;3155:5;3152:35;3142:63;;3201:1;3198;3191:12;3142:63;3089:122;:::o;3217:139::-;3263:5;3301:6;3288:20;3279:29;;3317:33;3344:5;3317:33;:::i;:::-;3217:139;;;;:::o;3362:77::-;3399:7;3428:5;3417:16;;3362:77;;;:::o;3445:122::-;3518:24;3536:5;3518:24;:::i;:::-;3511:5;3508:35;3498:63;;3557:1;3554;3547:12;3498:63;3445:122;:::o;3573:139::-;3619:5;3657:6;3644:20;3635:29;;3673:33;3700:5;3673:33;:::i;:::-;3573:139;;;;:::o;3718:474::-;3786:6;3794;3843:2;3831:9;3822:7;3818:23;3814:32;3811:119;;;3849:79;;:::i;:::-;3811:119;3969:1;3994:53;4039:7;4030:6;4019:9;4015:22;3994:53;:::i;:::-;3984:63;;3940:117;4096:2;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4067:118;3718:474;;;;;:::o;4198:90::-;4232:7;4275:5;4268:13;4261:21;4250:32;;4198:90;;;:::o;4294:109::-;4375:21;4390:5;4375:21;:::i;:::-;4370:3;4363:34;4294:109;;:::o;4409:210::-;4496:4;4534:2;4523:9;4519:18;4511:26;;4547:65;4609:1;4598:9;4594:17;4585:6;4547:65;:::i;:::-;4409:210;;;;:::o;4625:329::-;4684:6;4733:2;4721:9;4712:7;4708:23;4704:32;4701:119;;;4739:79;;:::i;:::-;4701:119;4859:1;4884:53;4929:7;4920:6;4909:9;4905:22;4884:53;:::i;:::-;4874:63;;4830:117;4625:329;;;;:::o;4960:118::-;5047:24;5065:5;5047:24;:::i;:::-;5042:3;5035:37;4960:118;;:::o;5084:222::-;5177:4;5215:2;5204:9;5200:18;5192:26;;5228:71;5296:1;5285:9;5281:17;5272:6;5228:71;:::i;:::-;5084:222;;;;:::o;5312:619::-;5389:6;5397;5405;5454:2;5442:9;5433:7;5429:23;5425:32;5422:119;;;5460:79;;:::i;:::-;5422:119;5580:1;5605:53;5650:7;5641:6;5630:9;5626:22;5605:53;:::i;:::-;5595:63;;5551:117;5707:2;5733:53;5778:7;5769:6;5758:9;5754:22;5733:53;:::i;:::-;5723:63;;5678:118;5835:2;5861:53;5906:7;5897:6;5886:9;5882:22;5861:53;:::i;:::-;5851:63;;5806:118;5312:619;;;;;:::o;5937:86::-;5972:7;6012:4;6005:5;6001:16;5990:27;;5937:86;;;:::o;6029:112::-;6112:22;6128:5;6112:22;:::i;:::-;6107:3;6100:35;6029:112;;:::o;6147:214::-;6236:4;6274:2;6263:9;6259:18;6251:26;;6287:67;6351:1;6340:9;6336:17;6327:6;6287:67;:::i;:::-;6147:214;;;;:::o;6367:118::-;6438:22;6454:5;6438:22;:::i;:::-;6431:5;6428:33;6418:61;;6475:1;6472;6465:12;6418:61;6367:118;:::o;6491:135::-;6535:5;6573:6;6560:20;6551:29;;6589:31;6614:5;6589:31;:::i;:::-;6491:135;;;;:::o;6632:607::-;6703:6;6711;6719;6768:2;6756:9;6747:7;6743:23;6739:32;6736:119;;;6774:79;;:::i;:::-;6736:119;6894:1;6919:51;6962:7;6953:6;6942:9;6938:22;6919:51;:::i;:::-;6909:61;;6865:115;7019:2;7045:51;7088:7;7079:6;7068:9;7064:22;7045:51;:::i;:::-;7035:61;;6990:116;7145:2;7171:51;7214:7;7205:6;7194:9;7190:22;7171:51;:::i;:::-;7161:61;;7116:116;6632:607;;;;;:::o;7245:89::-;7281:7;7321:6;7314:5;7310:18;7299:29;;7245:89;;;:::o;7340:120::-;7412:23;7429:5;7412:23;:::i;:::-;7405:5;7402:34;7392:62;;7450:1;7447;7440:12;7392:62;7340:120;:::o;7466:137::-;7511:5;7549:6;7536:20;7527:29;;7565:32;7591:5;7565:32;:::i;:::-;7466:137;;;;:::o;7609:757::-;7691:6;7699;7707;7715;7764:3;7752:9;7743:7;7739:23;7735:33;7732:120;;;7771:79;;:::i;:::-;7732:120;7891:1;7916:52;7960:7;7951:6;7940:9;7936:22;7916:52;:::i;:::-;7906:62;;7862:116;8017:2;8043:52;8087:7;8078:6;8067:9;8063:22;8043:52;:::i;:::-;8033:62;;7988:117;8144:2;8170:52;8214:7;8205:6;8194:9;8190:22;8170:52;:::i;:::-;8160:62;;8115:117;8271:2;8297:52;8341:7;8332:6;8321:9;8317:22;8297:52;:::i;:::-;8287:62;;8242:117;7609:757;;;;;;;:::o;8372:329::-;8431:6;8480:2;8468:9;8459:7;8455:23;8451:32;8448:119;;;8486:79;;:::i;:::-;8448:119;8606:1;8631:53;8676:7;8667:6;8656:9;8652:22;8631:53;:::i;:::-;8621:63;;8577:117;8372:329;;;;:::o;8707:118::-;8794:24;8812:5;8794:24;:::i;:::-;8789:3;8782:37;8707:118;;:::o;8831:222::-;8924:4;8962:2;8951:9;8947:18;8939:26;;8975:71;9043:1;9032:9;9028:17;9019:6;8975:71;:::i;:::-;8831:222;;;;:::o;9059:619::-;9136:6;9144;9152;9201:2;9189:9;9180:7;9176:23;9172:32;9169:119;;;9207:79;;:::i;:::-;9169:119;9327:1;9352:53;9397:7;9388:6;9377:9;9373:22;9352:53;:::i;:::-;9342:63;;9298:117;9454:2;9480:53;9525:7;9516:6;9505:9;9501:22;9480:53;:::i;:::-;9470:63;;9425:118;9582:2;9608:53;9653:7;9644:6;9633:9;9629:22;9608:53;:::i;:::-;9598:63;;9553:118;9059:619;;;;;:::o;9684:470::-;9750:6;9758;9807:2;9795:9;9786:7;9782:23;9778:32;9775:119;;;9813:79;;:::i;:::-;9775:119;9933:1;9958:52;10002:7;9993:6;9982:9;9978:22;9958:52;:::i;:::-;9948:62;;9904:116;10059:2;10085:52;10129:7;10120:6;10109:9;10105:22;10085:52;:::i;:::-;10075:62;;10030:117;9684:470;;;;;:::o;10160:474::-;10228:6;10236;10285:2;10273:9;10264:7;10260:23;10256:32;10253:119;;;10291:79;;:::i;:::-;10253:119;10411:1;10436:53;10481:7;10472:6;10461:9;10457:22;10436:53;:::i;:::-;10426:63;;10382:117;10538:2;10564:53;10609:7;10600:6;10589:9;10585:22;10564:53;:::i;:::-;10554:63;;10509:118;10160:474;;;;;:::o;10640:115::-;10725:23;10742:5;10725:23;:::i;:::-;10720:3;10713:36;10640:115;;:::o;10761:218::-;10852:4;10890:2;10879:9;10875:18;10867:26;;10903:69;10969:1;10958:9;10954:17;10945:6;10903:69;:::i;:::-;10761:218;;;;:::o;10985:104::-;11030:7;11059:24;11077:5;11059:24;:::i;:::-;11048:35;;10985:104;;;:::o;11095:138::-;11176:32;11202:5;11176:32;:::i;:::-;11169:5;11166:43;11156:71;;11223:1;11220;11213:12;11156:71;11095:138;:::o;11239:155::-;11293:5;11331:6;11318:20;11309:29;;11347:41;11382:5;11347:41;:::i;:::-;11239:155;;;;:::o;11400:345::-;11467:6;11516:2;11504:9;11495:7;11491:23;11487:32;11484:119;;;11522:79;;:::i;:::-;11484:119;11642:1;11667:61;11720:7;11711:6;11700:9;11696:22;11667:61;:::i;:::-;11657:71;;11613:125;11400:345;;;;:::o;11751:153::-;11891:5;11887:1;11879:6;11875:14;11868:29;11751:153;:::o;11910:365::-;12052:3;12073:66;12137:1;12132:3;12073:66;:::i;:::-;12066:73;;12148:93;12237:3;12148:93;:::i;:::-;12266:2;12261:3;12257:12;12250:19;;11910:365;;;:::o;12281:419::-;12447:4;12485:2;12474:9;12470:18;12462:26;;12534:9;12528:4;12524:20;12520:1;12509:9;12505:17;12498:47;12562:131;12688:4;12562:131;:::i;:::-;12554:139;;12281:419;;;:::o;12706:180::-;12754:77;12751:1;12744:88;12851:4;12848:1;12841:15;12875:4;12872:1;12865:15;12892:102;12934:8;12981:5;12978:1;12974:13;12953:34;;12892:102;;;:::o;13000:848::-;13061:5;13068:4;13092:6;13083:15;;13116:5;13107:14;;13130:712;13151:1;13141:8;13138:15;13130:712;;;13246:4;13241:3;13237:14;13231:4;13228:24;13225:50;;;13255:18;;:::i;:::-;13225:50;13305:1;13295:8;13291:16;13288:451;;;13720:4;13713:5;13709:16;13700:25;;13288:451;13770:4;13764;13760:15;13752:23;;13800:32;13823:8;13800:32;:::i;:::-;13788:44;;13130:712;;;13000:848;;;;;;;:::o;13854:1073::-;13908:5;14099:8;14089:40;;14120:1;14111:10;;14122:5;;14089:40;14148:4;14138:36;;14165:1;14156:10;;14167:5;;14138:36;14234:4;14282:1;14277:27;;;;14318:1;14313:191;;;;14227:277;;14277:27;14295:1;14286:10;;14297:5;;;14313:191;14358:3;14348:8;14345:17;14342:43;;;14365:18;;:::i;:::-;14342:43;14414:8;14411:1;14407:16;14398:25;;14449:3;14442:5;14439:14;14436:40;;;14456:18;;:::i;:::-;14436:40;14489:5;;;14227:277;;14613:2;14603:8;14600:16;14594:3;14588:4;14585:13;14581:36;14563:2;14553:8;14550:16;14545:2;14539:4;14536:12;14532:35;14516:111;14513:246;;;14669:8;14663:4;14659:19;14650:28;;14704:3;14697:5;14694:14;14691:40;;;14711:18;;:::i;:::-;14691:40;14744:5;;14513:246;14784:42;14822:3;14812:8;14806:4;14803:1;14784:42;:::i;:::-;14769:57;;;;14858:4;14853:3;14849:14;14842:5;14839:25;14836:51;;;14867:18;;:::i;:::-;14836:51;14916:4;14909:5;14905:16;14896:25;;13854:1073;;;;;;:::o;14933:281::-;14991:5;15015:23;15033:4;15015:23;:::i;:::-;15007:31;;15059:25;15075:8;15059:25;:::i;:::-;15047:37;;15103:104;15140:66;15130:8;15124:4;15103:104;:::i;:::-;15094:113;;14933:281;;;;:::o;15220:348::-;15260:7;15283:20;15301:1;15283:20;:::i;:::-;15278:25;;15317:20;15335:1;15317:20;:::i;:::-;15312:25;;15505:1;15437:66;15433:74;15430:1;15427:81;15422:1;15415:9;15408:17;15404:105;15401:131;;;15512:18;;:::i;:::-;15401:131;15560:1;15557;15553:9;15542:20;;15220:348;;;;:::o;15574:180::-;15622:77;15619:1;15612:88;15719:4;15716:1;15709:15;15743:4;15740:1;15733:15;15760:185;15800:1;15817:20;15835:1;15817:20;:::i;:::-;15812:25;;15851:20;15869:1;15851:20;:::i;:::-;15846:25;;15890:1;15880:35;;15895:18;;:::i;:::-;15880:35;15937:1;15934;15930:9;15925:14;;15760:185;;;;:::o;15951:180::-;15999:77;15996:1;15989:88;16096:4;16093:1;16086:15;16120:4;16117:1;16110:15;16137:320;16181:6;16218:1;16212:4;16208:12;16198:22;;16265:1;16259:4;16255:12;16286:18;16276:81;;16342:4;16334:6;16330:17;16320:27;;16276:81;16404:2;16396:6;16393:14;16373:18;16370:38;16367:84;;;16423:18;;:::i;:::-;16367:84;16188:269;16137:320;;;:::o;16463:229::-;16603:34;16599:1;16591:6;16587:14;16580:58;16672:12;16667:2;16659:6;16655:15;16648:37;16463:229;:::o;16698:366::-;16840:3;16861:67;16925:2;16920:3;16861:67;:::i;:::-;16854:74;;16937:93;17026:3;16937:93;:::i;:::-;17055:2;17050:3;17046:12;17039:19;;16698:366;;;:::o;17070:419::-;17236:4;17274:2;17263:9;17259:18;17251:26;;17323:9;17317:4;17313:20;17309:1;17298:9;17294:17;17287:47;17351:131;17477:4;17351:131;:::i;:::-;17343:139;;17070:419;;;:::o;17495:166::-;17635:18;17631:1;17623:6;17619:14;17612:42;17495:166;:::o;17667:366::-;17809:3;17830:67;17894:2;17889:3;17830:67;:::i;:::-;17823:74;;17906:93;17995:3;17906:93;:::i;:::-;18024:2;18019:3;18015:12;18008:19;;17667:366;;;:::o;18039:419::-;18205:4;18243:2;18232:9;18228:18;18220:26;;18292:9;18286:4;18282:20;18278:1;18267:9;18263:17;18256:47;18320:131;18446:4;18320:131;:::i;:::-;18312:139;;18039:419;;;:::o;18464:159::-;18604:11;18600:1;18592:6;18588:14;18581:35;18464:159;:::o;18629:365::-;18771:3;18792:66;18856:1;18851:3;18792:66;:::i;:::-;18785:73;;18867:93;18956:3;18867:93;:::i;:::-;18985:2;18980:3;18976:12;18969:19;;18629:365;;;:::o;19000:419::-;19166:4;19204:2;19193:9;19189:18;19181:26;;19253:9;19247:4;19243:20;19239:1;19228:9;19224:17;19217:47;19281:131;19407:4;19281:131;:::i;:::-;19273:139;;19000:419;;;:::o;19425:171::-;19565:23;19561:1;19553:6;19549:14;19542:47;19425:171;:::o;19602:366::-;19744:3;19765:67;19829:2;19824:3;19765:67;:::i;:::-;19758:74;;19841:93;19930:3;19841:93;:::i;:::-;19959:2;19954:3;19950:12;19943:19;;19602:366;;;:::o;19974:419::-;20140:4;20178:2;20167:9;20163:18;20155:26;;20227:9;20221:4;20217:20;20213:1;20202:9;20198:17;20191:47;20255:131;20381:4;20255:131;:::i;:::-;20247:139;;19974:419;;;:::o;20399:242::-;20438:3;20457:19;20474:1;20457:19;:::i;:::-;20452:24;;20490:19;20507:1;20490:19;:::i;:::-;20485:24;;20583:1;20575:6;20571:14;20568:1;20565:21;20562:47;;;20589:18;;:::i;:::-;20562:47;20633:1;20630;20626:9;20619:16;;20399:242;;;;:::o;20647:166::-;20787:18;20783:1;20775:6;20771:14;20764:42;20647:166;:::o;20819:366::-;20961:3;20982:67;21046:2;21041:3;20982:67;:::i;:::-;20975:74;;21058:93;21147:3;21058:93;:::i;:::-;21176:2;21171:3;21167:12;21160:19;;20819:366;;;:::o;21191:419::-;21357:4;21395:2;21384:9;21380:18;21372:26;;21444:9;21438:4;21434:20;21430:1;21419:9;21415:17;21408:47;21472:131;21598:4;21472:131;:::i;:::-;21464:139;;21191:419;;;:::o;21616:170::-;21756:22;21752:1;21744:6;21740:14;21733:46;21616:170;:::o;21792:366::-;21934:3;21955:67;22019:2;22014:3;21955:67;:::i;:::-;21948:74;;22031:93;22120:3;22031:93;:::i;:::-;22149:2;22144:3;22140:12;22133:19;;21792:366;;;:::o;22164:419::-;22330:4;22368:2;22357:9;22353:18;22345:26;;22417:9;22411:4;22407:20;22403:1;22392:9;22388:17;22381:47;22445:131;22571:4;22445:131;:::i;:::-;22437:139;;22164:419;;;:::o;22589:165::-;22729:17;22725:1;22717:6;22713:14;22706:41;22589:165;:::o;22760:366::-;22902:3;22923:67;22987:2;22982:3;22923:67;:::i;:::-;22916:74;;22999:93;23088:3;22999:93;:::i;:::-;23117:2;23112:3;23108:12;23101:19;;22760:366;;;:::o;23132:419::-;23298:4;23336:2;23325:9;23321:18;23313:26;;23385:9;23379:4;23375:20;23371:1;23360:9;23356:17;23349:47;23413:131;23539:4;23413:131;:::i;:::-;23405:139;;23132:419;;;:::o;23557:164::-;23697:16;23693:1;23685:6;23681:14;23674:40;23557:164;:::o;23727:366::-;23869:3;23890:67;23954:2;23949:3;23890:67;:::i;:::-;23883:74;;23966:93;24055:3;23966:93;:::i;:::-;24084:2;24079:3;24075:12;24068:19;;23727:366;;;:::o;24099:419::-;24265:4;24303:2;24292:9;24288:18;24280:26;;24352:9;24346:4;24342:20;24338:1;24327:9;24323:17;24316:47;24380:131;24506:4;24380:131;:::i;:::-;24372:139;;24099:419;;;:::o;24524:159::-;24664:11;24660:1;24652:6;24648:14;24641:35;24524:159;:::o;24689:365::-;24831:3;24852:66;24916:1;24911:3;24852:66;:::i;:::-;24845:73;;24927:93;25016:3;24927:93;:::i;:::-;25045:2;25040:3;25036:12;25029:19;;24689:365;;;:::o;25060:419::-;25226:4;25264:2;25253:9;25249:18;25241:26;;25313:9;25307:4;25303:20;25299:1;25288:9;25284:17;25277:47;25341:131;25467:4;25341:131;:::i;:::-;25333:139;;25060:419;;;:::o;25485:143::-;25542:5;25573:6;25567:13;25558:22;;25589:33;25616:5;25589:33;:::i;:::-;25485:143;;;;:::o;25634:351::-;25704:6;25753:2;25741:9;25732:7;25728:23;25724:32;25721:119;;;25759:79;;:::i;:::-;25721:119;25879:1;25904:64;25960:7;25951:6;25940:9;25936:22;25904:64;:::i;:::-;25894:74;;25850:128;25634:351;;;;:::o;25991:332::-;26112:4;26150:2;26139:9;26135:18;26127:26;;26163:71;26231:1;26220:9;26216:17;26207:6;26163:71;:::i;:::-;26244:72;26312:2;26301:9;26297:18;26288:6;26244:72;:::i;:::-;25991:332;;;;;:::o;26329:166::-;26469:18;26465:1;26457:6;26453:14;26446:42;26329:166;:::o;26501:366::-;26643:3;26664:67;26728:2;26723:3;26664:67;:::i;:::-;26657:74;;26740:93;26829:3;26740:93;:::i;:::-;26858:2;26853:3;26849:12;26842:19;;26501:366;;;:::o;26873:419::-;27039:4;27077:2;27066:9;27062:18;27054:26;;27126:9;27120:4;27116:20;27112:1;27101:9;27097:17;27090:47;27154:131;27280:4;27154:131;:::i;:::-;27146:139;;26873:419;;;:::o;27298:166::-;27438:18;27434:1;27426:6;27422:14;27415:42;27298:166;:::o;27470:366::-;27612:3;27633:67;27697:2;27692:3;27633:67;:::i;:::-;27626:74;;27709:93;27798:3;27709:93;:::i;:::-;27827:2;27822:3;27818:12;27811:19;;27470:366;;;:::o;27842:419::-;28008:4;28046:2;28035:9;28031:18;28023:26;;28095:9;28089:4;28085:20;28081:1;28070:9;28066:17;28059:47;28123:131;28249:4;28123:131;:::i;:::-;28115:139;;27842:419;;;:::o;28267:170::-;28407:22;28403:1;28395:6;28391:14;28384:46;28267:170;:::o;28443:366::-;28585:3;28606:67;28670:2;28665:3;28606:67;:::i;:::-;28599:74;;28682:93;28771:3;28682:93;:::i;:::-;28800:2;28795:3;28791:12;28784:19;;28443:366;;;:::o;28815:419::-;28981:4;29019:2;29008:9;29004:18;28996:26;;29068:9;29062:4;29058:20;29054:1;29043:9;29039:17;29032:47;29096:131;29222:4;29096:131;:::i;:::-;29088:139;;28815:419;;;:::o;29240:162::-;29380:14;29376:1;29368:6;29364:14;29357:38;29240:162;:::o;29408:366::-;29550:3;29571:67;29635:2;29630:3;29571:67;:::i;:::-;29564:74;;29647:93;29736:3;29647:93;:::i;:::-;29765:2;29760:3;29756:12;29749:19;;29408:366;;;:::o;29780:419::-;29946:4;29984:2;29973:9;29969:18;29961:26;;30033:9;30027:4;30023:20;30019:1;30008:9;30004:17;29997:47;30061:131;30187:4;30061:131;:::i;:::-;30053:139;;29780:419;;;:::o;30205:191::-;30245:4;30265:20;30283:1;30265:20;:::i;:::-;30260:25;;30299:20;30317:1;30299:20;:::i;:::-;30294:25;;30338:1;30335;30332:8;30329:34;;;30343:18;;:::i;:::-;30329:34;30388:1;30385;30381:9;30373:17;;30205:191;;;;:::o;30402:60::-;30430:3;30451:5;30444:12;;30402:60;;;:::o;30468:142::-;30518:9;30551:53;30569:34;30578:24;30596:5;30578:24;:::i;:::-;30569:34;:::i;:::-;30551:53;:::i;:::-;30538:66;;30468:142;;;:::o;30616:126::-;30666:9;30699:37;30730:5;30699:37;:::i;:::-;30686:50;;30616:126;;;:::o;30748:134::-;30806:9;30839:37;30870:5;30839:37;:::i;:::-;30826:50;;30748:134;;;:::o;30888:147::-;30983:45;31022:5;30983:45;:::i;:::-;30978:3;30971:58;30888:147;;:::o;31041:238::-;31142:4;31180:2;31169:9;31165:18;31157:26;;31193:79;31269:1;31258:9;31254:17;31245:6;31193:79;:::i;:::-;31041:238;;;;:::o;31285:171::-;31323:3;31346:23;31363:5;31346:23;:::i;:::-;31337:32;;31391:6;31384:5;31381:17;31378:43;;;31401:18;;:::i;:::-;31378:43;31448:1;31441:5;31437:13;31430:20;;31285:171;;;:::o;31462:305::-;31502:3;31521:20;31539:1;31521:20;:::i;:::-;31516:25;;31555:20;31573:1;31555:20;:::i;:::-;31550:25;;31709:1;31641:66;31637:74;31634:1;31631:81;31628:107;;;31715:18;;:::i;:::-;31628:107;31759:1;31756;31752:9;31745:16;;31462:305;;;;:::o;31773:176::-;31805:1;31822:20;31840:1;31822:20;:::i;:::-;31817:25;;31856:20;31874:1;31856:20;:::i;:::-;31851:25;;31895:1;31885:35;;31900:18;;:::i;:::-;31885:35;31941:1;31938;31934:9;31929:14;;31773:176;;;;:::o;31955:161::-;32095:13;32091:1;32083:6;32079:14;32072:37;31955:161;:::o;32122:366::-;32264:3;32285:67;32349:2;32344:3;32285:67;:::i;:::-;32278:74;;32361:93;32450:3;32361:93;:::i;:::-;32479:2;32474:3;32470:12;32463:19;;32122:366;;;:::o;32494:419::-;32660:4;32698:2;32687:9;32683:18;32675:26;;32747:9;32741:4;32737:20;32733:1;32722:9;32718:17;32711:47;32775:131;32901:4;32775:131;:::i;:::-;32767:139;;32494:419;;;:::o;32919:167::-;33059:19;33055:1;33047:6;33043:14;33036:43;32919:167;:::o;33092:366::-;33234:3;33255:67;33319:2;33314:3;33255:67;:::i;:::-;33248:74;;33331:93;33420:3;33331:93;:::i;:::-;33449:2;33444:3;33440:12;33433:19;;33092:366;;;:::o;33464:419::-;33630:4;33668:2;33657:9;33653:18;33645:26;;33717:9;33711:4;33707:20;33703:1;33692:9;33688:17;33681:47;33745:131;33871:4;33745:131;:::i;:::-;33737:139;;33464:419;;;:::o;33889:180::-;33937:77;33934:1;33927:88;34034:4;34031:1;34024:15;34058:4;34055:1;34048:15;34075:180;34123:77;34120:1;34113:88;34220:4;34217:1;34210:15;34244:4;34241:1;34234:15;34261:85;34306:7;34335:5;34324:16;;34261:85;;;:::o;34352:158::-;34410:9;34443:61;34461:42;34470:32;34496:5;34470:32;:::i;:::-;34461:42;:::i;:::-;34443:61;:::i;:::-;34430:74;;34352:158;;;:::o;34516:147::-;34611:45;34650:5;34611:45;:::i;:::-;34606:3;34599:58;34516:147;;:::o;34669:114::-;34736:6;34770:5;34764:12;34754:22;;34669:114;;;:::o;34789:184::-;34888:11;34922:6;34917:3;34910:19;34962:4;34957:3;34953:14;34938:29;;34789:184;;;;:::o;34979:132::-;35046:4;35069:3;35061:11;;35099:4;35094:3;35090:14;35082:22;;34979:132;;;:::o;35117:108::-;35194:24;35212:5;35194:24;:::i;:::-;35189:3;35182:37;35117:108;;:::o;35231:179::-;35300:10;35321:46;35363:3;35355:6;35321:46;:::i;:::-;35399:4;35394:3;35390:14;35376:28;;35231:179;;;;:::o;35416:113::-;35486:4;35518;35513:3;35509:14;35501:22;;35416:113;;;:::o;35565:732::-;35684:3;35713:54;35761:5;35713:54;:::i;:::-;35783:86;35862:6;35857:3;35783:86;:::i;:::-;35776:93;;35893:56;35943:5;35893:56;:::i;:::-;35972:7;36003:1;35988:284;36013:6;36010:1;36007:13;35988:284;;;36089:6;36083:13;36116:63;36175:3;36160:13;36116:63;:::i;:::-;36109:70;;36202:60;36255:6;36202:60;:::i;:::-;36192:70;;36048:224;36035:1;36032;36028:9;36023:14;;35988:284;;;35992:14;36288:3;36281:10;;35689:608;;;35565:732;;;;:::o;36303:831::-;36566:4;36604:3;36593:9;36589:19;36581:27;;36618:71;36686:1;36675:9;36671:17;36662:6;36618:71;:::i;:::-;36699:80;36775:2;36764:9;36760:18;36751:6;36699:80;:::i;:::-;36826:9;36820:4;36816:20;36811:2;36800:9;36796:18;36789:48;36854:108;36957:4;36948:6;36854:108;:::i;:::-;36846:116;;36972:72;37040:2;37029:9;37025:18;37016:6;36972:72;:::i;:::-;37054:73;37122:3;37111:9;37107:19;37098:6;37054:73;:::i;:::-;36303:831;;;;;;;;:::o;37140:807::-;37389:4;37427:3;37416:9;37412:19;37404:27;;37441:71;37509:1;37498:9;37494:17;37485:6;37441:71;:::i;:::-;37522:72;37590:2;37579:9;37575:18;37566:6;37522:72;:::i;:::-;37604:80;37680:2;37669:9;37665:18;37656:6;37604:80;:::i;:::-;37694;37770:2;37759:9;37755:18;37746:6;37694:80;:::i;:::-;37784:73;37852:3;37841:9;37837:19;37828:6;37784:73;:::i;:::-;37867;37935:3;37924:9;37920:19;37911:6;37867:73;:::i;:::-;37140:807;;;;;;;;;:::o;37953:143::-;38010:5;38041:6;38035:13;38026:22;;38057:33;38084:5;38057:33;:::i;:::-;37953:143;;;;:::o;38102:663::-;38190:6;38198;38206;38255:2;38243:9;38234:7;38230:23;38226:32;38223:119;;;38261:79;;:::i;:::-;38223:119;38381:1;38406:64;38462:7;38453:6;38442:9;38438:22;38406:64;:::i;:::-;38396:74;;38352:128;38519:2;38545:64;38601:7;38592:6;38581:9;38577:22;38545:64;:::i;:::-;38535:74;;38490:129;38658:2;38684:64;38740:7;38731:6;38720:9;38716:22;38684:64;:::i;:::-;38674:74;;38629:129;38102:663;;;;;:::o;38771:160::-;38911:12;38907:1;38899:6;38895:14;38888:36;38771:160;:::o;38937:366::-;39079:3;39100:67;39164:2;39159:3;39100:67;:::i;:::-;39093:74;;39176:93;39265:3;39176:93;:::i;:::-;39294:2;39289:3;39285:12;39278:19;;38937:366;;;:::o;39309:419::-;39475:4;39513:2;39502:9;39498:18;39490:26;;39562:9;39556:4;39552:20;39548:1;39537:9;39533:17;39526:47;39590:131;39716:4;39590:131;:::i;:::-;39582:139;;39309:419;;;:::o;39734:167::-;39874:19;39870:1;39862:6;39858:14;39851:43;39734:167;:::o;39907:366::-;40049:3;40070:67;40134:2;40129:3;40070:67;:::i;:::-;40063:74;;40146:93;40235:3;40146:93;:::i;:::-;40264:2;40259:3;40255:12;40248:19;;39907:366;;;:::o;40279:419::-;40445:4;40483:2;40472:9;40468:18;40460:26;;40532:9;40526:4;40522:20;40518:1;40507:9;40503:17;40496:47;40560:131;40686:4;40560:131;:::i;:::-;40552:139;;40279:419;;;:::o;40704:173::-;40844:25;40840:1;40832:6;40828:14;40821:49;40704:173;:::o;40883:366::-;41025:3;41046:67;41110:2;41105:3;41046:67;:::i;:::-;41039:74;;41122:93;41211:3;41122:93;:::i;:::-;41240:2;41235:3;41231:12;41224:19;;40883:366;;;:::o;41255:419::-;41421:4;41459:2;41448:9;41444:18;41436:26;;41508:9;41502:4;41498:20;41494:1;41483:9;41479:17;41472:47;41536:131;41662:4;41536:131;:::i;:::-;41528:139;;41255:419;;;:::o

Swarm Source

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