ETH Price: $3,478.82 (+0.79%)
Gas: 8.57 Gwei

Token

Rebel (Rebel)
 

Overview

Max Total Supply

1,000,000,000,000 Rebel

Holders

128

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000025 Rebel

Value
$0.00
0x99663078ee034b8b23373a19b8435c5e08acec5a
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:
rebel

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-25
*/

/**
https://t.me/BullishRebel
*/
//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 rebel is IERC20, Auth {
	using SafeMath for uint256;
	string _name = "Rebel";
	string _symbol = "Rebel";
	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 = 3; 
	uint8 private _buyTaxRate; uint8 private _sellTaxRate; uint8 private _txTaxRate;
    uint16 private _autoLPShares = 1000;
	uint16 private _taxShares1 = 0;
    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(0x8679c0Ccd4dE94c9429C10196E22502b58D3B037);
	address payable private _taxWallet2 = payable(0x8679c0Ccd4dE94c9429C10196E22502b58D3B037);
    address payable private _taxWallet3 = payable(0x8679c0Ccd4dE94c9429C10196E22502b58D3B037);
	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"}]

60806040526040518060400160405280600581526020017f526562656c000000000000000000000000000000000000000000000000000000815250600190805190602001906200005192919062000781565b506040518060400160405280600581526020017f526562656c000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000781565b506000600d60146101000a81548161ffff021916908361ffff1602179055506003600d60166101000a81548160ff021916908360ff1602179055506103e8600d601a6101000a81548161ffff021916908361ffff1602179055506000600d601c6101000a81548161ffff021916908361ffff1602179055506000600d601e6101000a81548161ffff021916908361ffff1602179055506000600e60006101000a81548161ffff021916908361ffff1602179055506000600f556000601055738679c0ccd4de94c9429c10196e22502b58d3b037601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738679c0ccd4de94c9429c10196e22502b58d3b037601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738679c0ccd4de94c9429c10196e22502b58d3b037601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660146101000a81548160ff0219169083151502179055503480156200028457600080fd5b50604051620069bf380380620069bf8339818101604052810190620002aa919062000877565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000600760006101000a81548160ff0219169083151502179055506000600760016101000a81548160ff02191690831515021790555033600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000373919062000a58565b64e8d4a5100062000385919062000aa9565b6008819055506009600a6200039b919062000a58565b64e8d4a51000620003ad919062000aa9565b600981905550612710600a6009600a620003c8919062000a58565b64e8d4a51000620003da919062000aa9565b620003e6919062000aa9565b620003f2919062000b39565b600a8190555061271060326009600a6200040d919062000a58565b64e8d4a510006200041f919062000aa9565b6200042b919062000aa9565b62000437919062000b39565b600b81905550737a250d5630b4cf539739df2c5dacb4c659f2488d601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600360006101000a81548163ffffffff021916908363ffffffff16021790555080600360046101000a81548163ffffffff021916908363ffffffff1602179055506009600a6200069b919062000a58565b64e8d4a51000620006ad919062000aa9565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000750919062000a58565b64e8d4a5100062000762919062000aa9565b60405162000771919062000b82565b60405180910390a3505062000c04565b8280546200078f9062000bce565b90600052602060002090601f016020900481019282620007b35760008555620007ff565b82601f10620007ce57805160ff1916838001178555620007ff565b82800160010185558215620007ff579182015b82811115620007fe578251825591602001919060010190620007e1565b5b5090506200080e919062000812565b5090565b5b808211156200082d57600081600090555060010162000813565b5090565b600080fd5b600063ffffffff82169050919050565b620008518162000836565b81146200085d57600080fd5b50565b600081519050620008718162000846565b92915050565b6000806040838503121562000891576200089062000831565b5b6000620008a18582860162000860565b9250506020620008b48582860162000860565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200094c57808604811115620009245762000923620008be565b5b6001851615620009345780820291505b80810290506200094485620008ed565b945062000904565b94509492505050565b60008262000967576001905062000a3a565b8162000977576000905062000a3a565b81600181146200099057600281146200099b57620009d1565b600191505062000a3a565b60ff841115620009b057620009af620008be565b5b8360020a915084821115620009ca57620009c9620008be565b5b5062000a3a565b5060208310610133831016604e8410600b841016171562000a0b5782820a90508381111562000a055762000a04620008be565b5b62000a3a565b62000a1a8484846001620008fa565b9250905081840481111562000a345762000a33620008be565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a658262000a41565b915062000a728362000a4b565b925062000aa17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000955565b905092915050565b600062000ab68262000a41565b915062000ac38362000a41565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000aff5762000afe620008be565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b468262000a41565b915062000b538362000a41565b92508262000b665762000b6562000b0a565b5b828204905092915050565b62000b7c8162000a41565b82525050565b600060208201905062000b99600083018462000b71565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000be757607f821691505b6020821081141562000bfe5762000bfd62000b9f565b5b50919050565b615dab8062000c146000396000f3fe6080604052600436106101f15760003560e01c806370a082311161010d578063c9567bf9116100a0578063e79d41601161006f578063e79d4160146106a7578063f2fde38b146106d2578063f32383e9146106fb578063fd9d000014610712578063ffb54a991461074f576101f8565b8063c9567bf914610613578063d0e1f6e71461062a578063d9f0b37014610641578063dd62ed3e1461066a576101f8565b80639fda0581116100dc5780639fda058114610559578063a9059cbb14610582578063aa4bde28146105bf578063b1421803146105ea576101f8565b806370a082311461049b578063893d20e8146104d85780638c0b5e221461050357806395d89b411461052e576101f8565b8063268f72dd116101855780635524a738116101545780635524a738146103f757806360a1f3931461042057806362d79328146104495780636969c1a414610472576101f8565b8063268f72dd14610361578063313ce5671461038c57806331b14d71146103b75780634cdc8da4146103e0576101f8565b806310bf6029116101c157806310bf6029146102cb57806318160ddd146102e25780631cbbe3e41461030d57806323b872dd14610324576101f8565b8062fffc9d146101fd57806306fdde0314610226578063095ea7b3146102515780630f3a325f1461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f919061481a565b61077a565b005b34801561023257600080fd5b5061023b6108f2565b604051610248919061491a565b60405180910390f35b34801561025d57600080fd5b50610278600480360381019061027391906149d0565b610984565b6040516102859190614a2b565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b09190614a46565b610ae7565b6040516102c29190614a2b565b60405180910390f35b3480156102d757600080fd5b506102e0610b42565b005b3480156102ee57600080fd5b506102f7610c54565b6040516103049190614a82565b60405180910390f35b34801561031957600080fd5b50610322610c79565b005b34801561033057600080fd5b5061034b60048036038101906103469190614a9d565b610d13565b6040516103589190614a2b565b60405180910390f35b34801561036d57600080fd5b50610376610f5a565b6040516103839190614a2b565b60405180910390f35b34801561039857600080fd5b506103a1610f6d565b6040516103ae9190614b0c565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d99190614a46565b610f76565b005b3480156103ec57600080fd5b506103f56110b7565b005b34801561040357600080fd5b5061041e60048036038101906104199190614b53565b611301565b005b34801561042c57600080fd5b5061044760048036038101906104429190614be0565b6114d7565b005b34801561045557600080fd5b50610470600480360381019061046b9190614a46565b6116a0565b005b34801561047e57600080fd5b5061049960048036038101906104949190614c47565b6117e1565b005b3480156104a757600080fd5b506104c260048036038101906104bd9190614a46565b611eb4565b6040516104cf9190614a82565b60405180910390f35b3480156104e457600080fd5b506104ed611efd565b6040516104fa9190614c83565b60405180910390f35b34801561050f57600080fd5b50610518611f26565b6040516105259190614a82565b60405180910390f35b34801561053a57600080fd5b50610543611f2c565b604051610550919061491a565b60405180910390f35b34801561056557600080fd5b50610580600480360381019061057b9190614c9e565b611fbe565b005b34801561058e57600080fd5b506105a960048036038101906105a491906149d0565b612274565b6040516105b69190614a2b565b60405180910390f35b3480156105cb57600080fd5b506105d46122d0565b6040516105e19190614a82565b60405180910390f35b3480156105f657600080fd5b50610611600480360381019061060c9190614cf1565b6122d6565b005b34801561061f57600080fd5b506106286124d6565b005b34801561063657600080fd5b5061063f61256e565b005b34801561064d57600080fd5b5061066860048036038101906106639190614a46565b612767565b005b34801561067657600080fd5b50610691600480360381019061068c9190614d31565b612ae4565b60405161069e9190614a82565b60405180910390f35b3480156106b357600080fd5b506106bc612b6b565b6040516106c99190614d80565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f49190614dd9565b612b7f565b005b34801561070757600080fd5b50610710612c87565b005b34801561071e57600080fd5b5061073960048036038101906107349190614a46565b612d77565b6040516107469190614a82565b60405180910390f35b34801561075b57600080fd5b50610764612dc0565b6040516107719190614a2b565b60405180910390f35b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610821575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085790614e52565b60405180910390fd5b8263ffffffff168463ffffffff166009600a61087c9190614fd4565b64e8d4a5100061088c919061501f565b610896919061501f565b6108a091906150a8565b600a819055508063ffffffff168263ffffffff166009600a6108c29190614fd4565b64e8d4a510006108d2919061501f565b6108dc919061501f565b6108e691906150a8565b600b8190555050505050565b60606001805461090190615108565b80601f016020809104026020016040519081016040528092919081815260200182805461092d90615108565b801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050905090565b6000436010541180156109e7575060001515601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b156109f7576109f63343612dd3565b5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ad59190614a82565b60405180910390a36001905092915050565b600080601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b385760019050610b3d565b600090505b919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610be9575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f90614e52565b60405180910390fd5b600760019054906101000a900460ff1615600760016101000a81548160ff021916908315150217905550565b60006009600a610c649190614fd4565b64e8d4a51000610c74919061501f565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe906151ac565b60405180910390fd5b610d116000612efb565b565b6000610d1d612f2b565b610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5390615218565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f4657610ec5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fb89092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f5184848461301c565b90509392505050565b600760019054906101000a900460ff1681565b60006009905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061101d575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61105c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105390614e52565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111605750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806111b85750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806112105750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611266575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c90614e52565b60405180910390fd5b60006112b030611eb4565b9050600081116112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec90615284565b60405180910390fd5b6112fe816136db565b50565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113a8575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113de90614e52565b60405180910390fd5b600d60179054906101000a900460ff1660ff168360ff16111580156114215750600d60189054906101000a900460ff1660ff168260ff1611155b80156114425750600d60199054906101000a900460ff1660ff168160ff1611155b611481576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611478906152f0565b60405180910390fd5b82600d60176101000a81548160ff021916908360ff16021790555081600d60186101000a81548160ff021916908360ff16021790555080600d60196101000a81548160ff021916908360ff160217905550505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061157e575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6115bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b490614e52565b60405180910390fd5b6103e8818385876115ce9190615310565b6115d89190615310565b6115e29190615310565b61ffff1614611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161d90615394565b60405180910390fd5b83600d601a6101000a81548161ffff021916908361ffff16021790555082600d601c6101000a81548161ffff021916908361ffff16021790555081600d601e6101000a81548161ffff021916908361ffff16021790555080600e60006101000a81548161ffff021916908361ffff16021790555050505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611747575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177d90614e52565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461186f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611866906151ac565b60405180910390fd5b600760009054906101000a900460ff16156118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b690615400565b60405180910390fd5b60008111611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f99061546c565b60405180910390fd5b6001601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ba13060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460196009600a611b789190614fd4565b64e8d4a51000611b88919061501f565b611b92919061501f565b611b9c91906150a8565b61301c565b50600047905081811015611bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be1906154d8565b60405180910390fd5b6000611bf530611eb4565b905060008111611c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3190615544565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccb9190615579565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d789190615579565b6040518363ffffffff1660e01b8152600401611d959291906155a6565b6020604051808303816000875af1158015611db4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd89190615579565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160116000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611e9b816138fa565b611ea781846000613ae4565b611eaf613bc9565b505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b606060028054611f3b90615108565b80601f0160208091040260200160405190810160405280929190818152602001828054611f6790615108565b8015611fb45780601f10611f8957610100808354040283529160200191611fb4565b820191906000526020600020905b815481529060010190602001808311611f9757829003601f168201915b5050505050905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612065575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6120a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209b90614e52565b60405180910390fd5b82601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b600061227e612f2b565b6122bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b49061561b565b60405180910390fd5b6122c833848461301c565b905092915050565b60095481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061237d575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6123bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b390614e52565b60405180910390fd5b60006103e88361ffff166009600a6123d49190614fd4565b64e8d4a510006123e4919061501f565b6123ee919061501f565b6123f891906150a8565b905060085481101561243f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243690615687565b60405180910390fd5b8060088190555060006103e88361ffff166009600a61245e9190614fd4565b64e8d4a5100061246e919061501f565b612478919061501f565b61248291906150a8565b90506009548110156124c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c0906156f3565b60405180910390fd5b8060098190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255b906151ac565b60405180910390fd5b61256c613bc9565b565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806126175750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061266f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806126c75750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061271d575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61275c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275390614e52565b60405180910390fd5b61276547613d52565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146127f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ec906151ac565b60405180910390fd5b6001601660146101000a81548160ff0219169083151502179055506000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415612893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288a9061575f565b60405180910390fd5b600061289e82611eb4565b9050600081116128e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128da90615544565b60405180910390fd5b61293581600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fc090919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129ca81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a6a9190614a82565b60405180910390a360006001600283612a8391906150a8565b612a8d919061577f565b90506000479050612a9d826136db565b60008147612aab919061577f565b9050612ab6836138fa565b612ac283826001613ae4565b505050506000601660146101000a81548160ff02191690831515021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60149054906101000a900461ffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c04906151ac565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051612c7c9190615812565b60405180910390a150565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612d2e575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6490614e52565b60405180910390fd5b612d75614068565b565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900460ff1681565b60001515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015612e7257506000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15612ef75780601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d601481819054906101000a900461ffff1680929190612edb9061582d565b91906101000a81548161ffff021916908361ffff160217905550505b5050565b436010541180612f0d57506000601054145b15612f28578060ff1643612f219190615858565b6010819055505b50565b6000806000905060011515600760009054906101000a900460ff1615151415612f575760019050612fb1565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415612fb057600190505b5b8091505090565b6000838311158290613000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff7919061491a565b60405180910390fd5b506000838561300f919061577f565b9050809150509392505050565b600043601054111561313757600360049054906101000a900463ffffffff1663ffffffff16600360009054906101000a900463ffffffff1663ffffffff168461306591906158ae565b73ffffffffffffffffffffffffffffffffffffffff1614156130905761308b6001612efb565b613132565b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156130e7576130e28343612dd3565b613131565b61313083601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dd3565b5b5b6131c9565b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146131c8576131c783601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dd3565b5b5b60011515600760009054906101000a900460ff16151514801561322c57506000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b8015613276575043601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b156132b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ad9061592b565b60405180910390fd5b60001515601660149054906101000a900460ff1615151480156133265750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15613334576133336140e8565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561339c57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156133f4575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15613443576134038383614274565b613442576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161343990615997565b60405180910390fd5b5b6000613450858585614370565b905060006134678285613fc090919063ffffffff16565b90506134f2846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fb89092919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008211156135d45761359082600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61362681600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400a90919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516136c69190614a82565b60405180910390a36001925050509392505050565b6136e4816138fa565b6000600267ffffffffffffffff811115613701576137006159b7565b5b60405190808252806020026020018201604052801561372f5781602001602082028036833780820191505090505b5090503081600081518110613747576137466159e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138129190615579565b81600181518110613826576138256159e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016138c4959493929190615b0e565b600060405180830381600087803b1580156138de57600080fd5b505af11580156138f2573d6000803e3d6000fd5b505050505050565b80600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613ae1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051613ad89190614a82565b60405180910390a35b50565b60008015158215151415613b165760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b8152600401613b7d96959493929190615b68565b60606040518083038185885af1158015613b9b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613bc09190615bde565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c5290615c7d565b60405180910390fd5b426013819055506001601354600f54613c749190615858565b613c7e919061577f565b600f81905550600543613c91919061501f565b6010819055506103e86009600a613ca89190614fd4565b64e8d4a51000613cb8919061501f565b6005613cc4919061501f565b613cce91906150a8565b6008819055506103e86009600a613ce59190614fd4565b64e8d4a51000613cf5919061501f565b6005613d01919061501f565b613d0b91906150a8565b600981905550613d19614068565b6019600d60186101000a81548160ff021916908360ff1602179055506001600760006101000a81548160ff021916908315150217905550565b6000600e60009054906101000a900461ffff16600d601e9054906101000a900461ffff16600d601c9054906101000a900461ffff16613d919190615310565b613d9b9190615310565b90506000600d601c9054906101000a900461ffff1661ffff161115613e5257601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600d601c9054906101000a900461ffff1661ffff1685613e1b919061501f565b613e2591906150a8565b9081150290604051600060405180830381858888f19350505050158015613e50573d6000803e3d6000fd5b505b6000600d601e9054906101000a900461ffff1661ffff161115613f0757601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600d601e9054906101000a900461ffff1661ffff1685613ed0919061501f565b613eda91906150a8565b9081150290604051600060405180830381858888f19350505050158015613f05573d6000803e3d6000fd5b505b6000600e60009054906101000a900461ffff1661ffff161115613fbc57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600e60009054906101000a900461ffff1661ffff1685613f85919061501f565b613f8f91906150a8565b9081150290604051600060405180830381858888f19350505050158015613fba573d6000803e3d6000fd5b505b5050565b600061400283836040518060400160405280601481526020017f5375627472616374696f6e206f766572666c6f77000000000000000000000000815250612fb8565b905092915050565b60008082846140199190615858565b90508381101561405e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161405590615ce9565b60405180910390fd5b8091505092915050565b600d60169054906101000a900460ff16600d60176101000a81548160ff021916908360ff160217905550600d60169054906101000a900460ff16600d60186101000a81548160ff021916908360ff160217905550600d60169054906101000a900460ff16600d60196101000a81548160ff021916908360ff160217905550565b6001601660146101000a81548160ff021916908315150217905550600061410e30611eb4565b9050600a548110158015614135575060011515600760009054906101000a900460ff161515145b8015614154575060001515600760019054906101000a900460ff161515145b1561425657600b54811061416857600b5490505b600060026103e8600d601a9054906101000a900461ffff1661ffff168461418f919061501f565b61419991906150a8565b6141a391906150a8565b9050600081836141b3919061577f565b905060004790506141c3826136db565b600081476141d1919061577f565b90506000600d601a9054906101000a900461ffff1661ffff1611156142385760006103e8600d601a9054906101000a900461ffff1661ffff1683614215919061501f565b61421f91906150a8565b905061422a856138fa565b61423685826001613ae4565b505b600047905060008111156142505761424f81613d52565b5b50505050505b506000601660146101000a81548160ff021916908315150217905550565b6000806001905060011515600760009054906101000a900460ff1615151415614366576008548311156142aa5760009050614365565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561435a575060095461435884600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400a90919063ffffffff16565b115b1561436457600090505b5b5b8091505092915050565b60008060011515600760009054906101000a900460ff1615151480156143975750600f5442105b156143ca576143c360646143b56062866146b190919063ffffffff16565b61472c90919063ffffffff16565b90506146a6565b60011515600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480614479575060011515600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80614497575060001515600760009054906101000a900460ff161515145b806144b5575060011515600760019054906101000a900460ff161515145b156144c357600090506146a5565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015614521575042601354115b1561452f57600090506146a4565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561458e57504260135411155b156145d2576145cb60646145bd600d60179054906101000a900460ff1660ff16866146b190919063ffffffff16565b61472c90919063ffffffff16565b90506146a3565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614667576146606064614652600d60189054906101000a900460ff1660ff16866146b190919063ffffffff16565b61472c90919063ffffffff16565b90506146a2565b61469f6064614691600d60199054906101000a900460ff1660ff16866146b190919063ffffffff16565b61472c90919063ffffffff16565b90505b5b5b5b5b809150509392505050565b6000808314156146c45760009050614726565b600082846146d2919061501f565b90508284826146e191906150a8565b14614721576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161471890615d55565b60405180910390fd5b809150505b92915050565b600061476e83836040518060400160405280601081526020017f4469766973696f6e206279207a65726f00000000000000000000000000000000815250614776565b905092915050565b600080831182906147bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016147b4919061491a565b60405180910390fd5b50600083856147cc91906150a8565b9050809150509392505050565b600080fd5b600063ffffffff82169050919050565b6147f7816147de565b811461480257600080fd5b50565b600081359050614814816147ee565b92915050565b60008060008060808587031215614834576148336147d9565b5b600061484287828801614805565b945050602061485387828801614805565b935050604061486487828801614805565b925050606061487587828801614805565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b838110156148bb5780820151818401526020810190506148a0565b838111156148ca576000848401525b50505050565b6000601f19601f8301169050919050565b60006148ec82614881565b6148f6818561488c565b935061490681856020860161489d565b61490f816148d0565b840191505092915050565b6000602082019050818103600083015261493481846148e1565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006149678261493c565b9050919050565b6149778161495c565b811461498257600080fd5b50565b6000813590506149948161496e565b92915050565b6000819050919050565b6149ad8161499a565b81146149b857600080fd5b50565b6000813590506149ca816149a4565b92915050565b600080604083850312156149e7576149e66147d9565b5b60006149f585828601614985565b9250506020614a06858286016149bb565b9150509250929050565b60008115159050919050565b614a2581614a10565b82525050565b6000602082019050614a406000830184614a1c565b92915050565b600060208284031215614a5c57614a5b6147d9565b5b6000614a6a84828501614985565b91505092915050565b614a7c8161499a565b82525050565b6000602082019050614a976000830184614a73565b92915050565b600080600060608486031215614ab657614ab56147d9565b5b6000614ac486828701614985565b9350506020614ad586828701614985565b9250506040614ae6868287016149bb565b9150509250925092565b600060ff82169050919050565b614b0681614af0565b82525050565b6000602082019050614b216000830184614afd565b92915050565b614b3081614af0565b8114614b3b57600080fd5b50565b600081359050614b4d81614b27565b92915050565b600080600060608486031215614b6c57614b6b6147d9565b5b6000614b7a86828701614b3e565b9350506020614b8b86828701614b3e565b9250506040614b9c86828701614b3e565b9150509250925092565b600061ffff82169050919050565b614bbd81614ba6565b8114614bc857600080fd5b50565b600081359050614bda81614bb4565b92915050565b60008060008060808587031215614bfa57614bf96147d9565b5b6000614c0887828801614bcb565b9450506020614c1987828801614bcb565b9350506040614c2a87828801614bcb565b9250506060614c3b87828801614bcb565b91505092959194509250565b600060208284031215614c5d57614c5c6147d9565b5b6000614c6b848285016149bb565b91505092915050565b614c7d8161495c565b82525050565b6000602082019050614c986000830184614c74565b92915050565b600080600060608486031215614cb757614cb66147d9565b5b6000614cc586828701614985565b9350506020614cd686828701614985565b9250506040614ce786828701614985565b9150509250925092565b60008060408385031215614d0857614d076147d9565b5b6000614d1685828601614bcb565b9250506020614d2785828601614bcb565b9150509250929050565b60008060408385031215614d4857614d476147d9565b5b6000614d5685828601614985565b9250506020614d6785828601614985565b9150509250929050565b614d7a81614ba6565b82525050565b6000602082019050614d956000830184614d71565b92915050565b6000614da68261493c565b9050919050565b614db681614d9b565b8114614dc157600080fd5b50565b600081359050614dd381614dad565b92915050565b600060208284031215614def57614dee6147d9565b5b6000614dfd84828501614dc4565b91505092915050565b7f3430330000000000000000000000000000000000000000000000000000000000600082015250565b6000614e3c60038361488c565b9150614e4782614e06565b602082019050919050565b60006020820190508181036000830152614e6b81614e2f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115614ef857808604811115614ed457614ed3614e72565b5b6001851615614ee35780820291505b8081029050614ef185614ea1565b9450614eb8565b94509492505050565b600082614f115760019050614fcd565b81614f1f5760009050614fcd565b8160018114614f355760028114614f3f57614f6e565b6001915050614fcd565b60ff841115614f5157614f50614e72565b5b8360020a915084821115614f6857614f67614e72565b5b50614fcd565b5060208310610133831016604e8410600b8410161715614fa35782820a905083811115614f9e57614f9d614e72565b5b614fcd565b614fb08484846001614eae565b92509050818404811115614fc757614fc6614e72565b5b81810290505b9392505050565b6000614fdf8261499a565b9150614fea83614af0565b92506150177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614f01565b905092915050565b600061502a8261499a565b91506150358361499a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561506e5761506d614e72565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006150b38261499a565b91506150be8361499a565b9250826150ce576150cd615079565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061512057607f821691505b60208210811415615134576151336150d9565b5b50919050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000615196602a8361488c565b91506151a18261513a565b604082019050919050565b600060208201905081810360008301526151c581615189565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b600061520260108361488c565b915061520d826151cc565b602082019050919050565b60006020820190508181036000830152615231816151f5565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b600061526e60098361488c565b915061527982615238565b602082019050919050565b6000602082019050818103600083015261529d81615261565b9050919050565b7f4e657720746178206d757374206265206c6f7765720000000000000000000000600082015250565b60006152da60158361488c565b91506152e5826152a4565b602082019050919050565b60006020820190508181036000830152615309816152cd565b9050919050565b600061531b82614ba6565b915061532683614ba6565b92508261ffff0382111561533d5761533c614e72565b5b828201905092915050565b7f53756d206d757374206265203130303000000000000000000000000000000000600082015250565b600061537e60108361488c565b915061538982615348565b602082019050919050565b600060208201905081810360008301526153ad81615371565b9050919050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b60006153ea60148361488c565b91506153f5826153b4565b602082019050919050565b60006020820190508181036000830152615419816153dd565b9050919050565b7f6574682063616e6e6f7420626520300000000000000000000000000000000000600082015250565b6000615456600f8361488c565b915061546182615420565b602082019050919050565b6000602082019050818103600083015261548581615449565b9050919050565b7f6e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b60006154c2600e8361488c565b91506154cd8261548c565b602082019050919050565b600060208201905081810360008301526154f1816154b5565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b600061552e60098361488c565b9150615539826154f8565b602082019050919050565b6000602082019050818103600083015261555d81615521565b9050919050565b6000815190506155738161496e565b92915050565b60006020828403121561558f5761558e6147d9565b5b600061559d84828501615564565b91505092915050565b60006040820190506155bb6000830185614c74565b6155c86020830184614c74565b9392505050565b7f74726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b600061560560108361488c565b9150615610826155cf565b602082019050919050565b60006020820190508181036000830152615634816155f8565b9050919050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b600061567160108361488c565b915061567c8261563b565b602082019050919050565b600060208201905081810360008301526156a081615664565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b60006156dd60148361488c565b91506156e8826156a7565b602082019050919050565b6000602082019050818103600083015261570c816156d0565b9050919050565b7f6e6f74206120736e697065720000000000000000000000000000000000000000600082015250565b6000615749600c8361488c565b915061575482615713565b602082019050919050565b600060208201905081810360008301526157788161573c565b9050919050565b600061578a8261499a565b91506157958361499a565b9250828210156157a8576157a7614e72565b5b828203905092915050565b6000819050919050565b60006157d86157d36157ce8461493c565b6157b3565b61493c565b9050919050565b60006157ea826157bd565b9050919050565b60006157fc826157df565b9050919050565b61580c816157f1565b82525050565b60006020820190506158276000830184615803565b92915050565b600061583882614ba6565b915061ffff82141561584d5761584c614e72565b5b600182019050919050565b60006158638261499a565b915061586e8361499a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156158a3576158a2614e72565b5b828201905092915050565b60006158b98261493c565b91506158c48361493c565b9250826158d4576158d3615079565b5b828206905092915050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000615915600b8361488c565b9150615920826158df565b602082019050919050565b6000602082019050818103600083015261594481615908565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b600061598160118361488c565b915061598c8261594b565b602082019050919050565b600060208201905081810360008301526159b081615974565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000615a3a615a35615a3084615a15565b6157b3565b61499a565b9050919050565b615a4a81615a1f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615a858161495c565b82525050565b6000615a978383615a7c565b60208301905092915050565b6000602082019050919050565b6000615abb82615a50565b615ac58185615a5b565b9350615ad083615a6c565b8060005b83811015615b01578151615ae88882615a8b565b9750615af383615aa3565b925050600181019050615ad4565b5085935050505092915050565b600060a082019050615b236000830188614a73565b615b306020830187615a41565b8181036040830152615b428186615ab0565b9050615b516060830185614c74565b615b5e6080830184614a73565b9695505050505050565b600060c082019050615b7d6000830189614c74565b615b8a6020830188614a73565b615b976040830187615a41565b615ba46060830186615a41565b615bb16080830185614c74565b615bbe60a0830184614a73565b979650505050505050565b600081519050615bd8816149a4565b92915050565b600080600060608486031215615bf757615bf66147d9565b5b6000615c0586828701615bc9565b9350506020615c1686828701615bc9565b9250506040615c2786828701615bc9565b9150509250925092565b7f4c50206e6f742073657400000000000000000000000000000000000000000000600082015250565b6000615c67600a8361488c565b9150615c7282615c31565b602082019050919050565b60006020820190508181036000830152615c9681615c5a565b9050919050565b7f4164646974696f6e206f766572666c6f77000000000000000000000000000000600082015250565b6000615cd360118361488c565b9150615cde82615c9d565b602082019050919050565b60006020820190508181036000830152615d0281615cc6565b9050919050565b7f4d756c7469706c69636174696f6e206f766572666c6f77000000000000000000600082015250565b6000615d3f60178361488c565b9150615d4a82615d09565b602082019050919050565b60006020820190508181036000830152615d6e81615d32565b905091905056fea264697066735822122050eb3c03cc49793ebec43e2c86c8fa9794ee3f9b104c8e1172337621538067b164736f6c634300080b00330000000000000000000000000000000000000000000000000000000028f925b100000000000000000000000000000000000000000000000000000000112494f0

Deployed Bytecode

0x6080604052600436106101f15760003560e01c806370a082311161010d578063c9567bf9116100a0578063e79d41601161006f578063e79d4160146106a7578063f2fde38b146106d2578063f32383e9146106fb578063fd9d000014610712578063ffb54a991461074f576101f8565b8063c9567bf914610613578063d0e1f6e71461062a578063d9f0b37014610641578063dd62ed3e1461066a576101f8565b80639fda0581116100dc5780639fda058114610559578063a9059cbb14610582578063aa4bde28146105bf578063b1421803146105ea576101f8565b806370a082311461049b578063893d20e8146104d85780638c0b5e221461050357806395d89b411461052e576101f8565b8063268f72dd116101855780635524a738116101545780635524a738146103f757806360a1f3931461042057806362d79328146104495780636969c1a414610472576101f8565b8063268f72dd14610361578063313ce5671461038c57806331b14d71146103b75780634cdc8da4146103e0576101f8565b806310bf6029116101c157806310bf6029146102cb57806318160ddd146102e25780631cbbe3e41461030d57806323b872dd14610324576101f8565b8062fffc9d146101fd57806306fdde0314610226578063095ea7b3146102515780630f3a325f1461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f919061481a565b61077a565b005b34801561023257600080fd5b5061023b6108f2565b604051610248919061491a565b60405180910390f35b34801561025d57600080fd5b50610278600480360381019061027391906149d0565b610984565b6040516102859190614a2b565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b09190614a46565b610ae7565b6040516102c29190614a2b565b60405180910390f35b3480156102d757600080fd5b506102e0610b42565b005b3480156102ee57600080fd5b506102f7610c54565b6040516103049190614a82565b60405180910390f35b34801561031957600080fd5b50610322610c79565b005b34801561033057600080fd5b5061034b60048036038101906103469190614a9d565b610d13565b6040516103589190614a2b565b60405180910390f35b34801561036d57600080fd5b50610376610f5a565b6040516103839190614a2b565b60405180910390f35b34801561039857600080fd5b506103a1610f6d565b6040516103ae9190614b0c565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d99190614a46565b610f76565b005b3480156103ec57600080fd5b506103f56110b7565b005b34801561040357600080fd5b5061041e60048036038101906104199190614b53565b611301565b005b34801561042c57600080fd5b5061044760048036038101906104429190614be0565b6114d7565b005b34801561045557600080fd5b50610470600480360381019061046b9190614a46565b6116a0565b005b34801561047e57600080fd5b5061049960048036038101906104949190614c47565b6117e1565b005b3480156104a757600080fd5b506104c260048036038101906104bd9190614a46565b611eb4565b6040516104cf9190614a82565b60405180910390f35b3480156104e457600080fd5b506104ed611efd565b6040516104fa9190614c83565b60405180910390f35b34801561050f57600080fd5b50610518611f26565b6040516105259190614a82565b60405180910390f35b34801561053a57600080fd5b50610543611f2c565b604051610550919061491a565b60405180910390f35b34801561056557600080fd5b50610580600480360381019061057b9190614c9e565b611fbe565b005b34801561058e57600080fd5b506105a960048036038101906105a491906149d0565b612274565b6040516105b69190614a2b565b60405180910390f35b3480156105cb57600080fd5b506105d46122d0565b6040516105e19190614a82565b60405180910390f35b3480156105f657600080fd5b50610611600480360381019061060c9190614cf1565b6122d6565b005b34801561061f57600080fd5b506106286124d6565b005b34801561063657600080fd5b5061063f61256e565b005b34801561064d57600080fd5b5061066860048036038101906106639190614a46565b612767565b005b34801561067657600080fd5b50610691600480360381019061068c9190614d31565b612ae4565b60405161069e9190614a82565b60405180910390f35b3480156106b357600080fd5b506106bc612b6b565b6040516106c99190614d80565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f49190614dd9565b612b7f565b005b34801561070757600080fd5b50610710612c87565b005b34801561071e57600080fd5b5061073960048036038101906107349190614a46565b612d77565b6040516107469190614a82565b60405180910390f35b34801561075b57600080fd5b50610764612dc0565b6040516107719190614a2b565b60405180910390f35b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610821575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085790614e52565b60405180910390fd5b8263ffffffff168463ffffffff166009600a61087c9190614fd4565b64e8d4a5100061088c919061501f565b610896919061501f565b6108a091906150a8565b600a819055508063ffffffff168263ffffffff166009600a6108c29190614fd4565b64e8d4a510006108d2919061501f565b6108dc919061501f565b6108e691906150a8565b600b8190555050505050565b60606001805461090190615108565b80601f016020809104026020016040519081016040528092919081815260200182805461092d90615108565b801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050905090565b6000436010541180156109e7575060001515601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b156109f7576109f63343612dd3565b5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ad59190614a82565b60405180910390a36001905092915050565b600080601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b385760019050610b3d565b600090505b919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610be9575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f90614e52565b60405180910390fd5b600760019054906101000a900460ff1615600760016101000a81548160ff021916908315150217905550565b60006009600a610c649190614fd4565b64e8d4a51000610c74919061501f565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe906151ac565b60405180910390fd5b610d116000612efb565b565b6000610d1d612f2b565b610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5390615218565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f4657610ec5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fb89092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f5184848461301c565b90509392505050565b600760019054906101000a900460ff1681565b60006009905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061101d575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61105c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105390614e52565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111605750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806111b85750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806112105750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611266575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c90614e52565b60405180910390fd5b60006112b030611eb4565b9050600081116112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec90615284565b60405180910390fd5b6112fe816136db565b50565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113a8575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113de90614e52565b60405180910390fd5b600d60179054906101000a900460ff1660ff168360ff16111580156114215750600d60189054906101000a900460ff1660ff168260ff1611155b80156114425750600d60199054906101000a900460ff1660ff168160ff1611155b611481576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611478906152f0565b60405180910390fd5b82600d60176101000a81548160ff021916908360ff16021790555081600d60186101000a81548160ff021916908360ff16021790555080600d60196101000a81548160ff021916908360ff160217905550505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061157e575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6115bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b490614e52565b60405180910390fd5b6103e8818385876115ce9190615310565b6115d89190615310565b6115e29190615310565b61ffff1614611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161d90615394565b60405180910390fd5b83600d601a6101000a81548161ffff021916908361ffff16021790555082600d601c6101000a81548161ffff021916908361ffff16021790555081600d601e6101000a81548161ffff021916908361ffff16021790555080600e60006101000a81548161ffff021916908361ffff16021790555050505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611747575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177d90614e52565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461186f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611866906151ac565b60405180910390fd5b600760009054906101000a900460ff16156118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b690615400565b60405180910390fd5b60008111611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f99061546c565b60405180910390fd5b6001601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ba13060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460196009600a611b789190614fd4565b64e8d4a51000611b88919061501f565b611b92919061501f565b611b9c91906150a8565b61301c565b50600047905081811015611bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be1906154d8565b60405180910390fd5b6000611bf530611eb4565b905060008111611c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3190615544565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccb9190615579565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d789190615579565b6040518363ffffffff1660e01b8152600401611d959291906155a6565b6020604051808303816000875af1158015611db4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd89190615579565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160116000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611e9b816138fa565b611ea781846000613ae4565b611eaf613bc9565b505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b606060028054611f3b90615108565b80601f0160208091040260200160405190810160405280929190818152602001828054611f6790615108565b8015611fb45780601f10611f8957610100808354040283529160200191611fb4565b820191906000526020600020905b815481529060010190602001808311611f9757829003601f168201915b5050505050905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612065575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6120a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209b90614e52565b60405180910390fd5b82601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b600061227e612f2b565b6122bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b49061561b565b60405180910390fd5b6122c833848461301c565b905092915050565b60095481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061237d575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6123bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b390614e52565b60405180910390fd5b60006103e88361ffff166009600a6123d49190614fd4565b64e8d4a510006123e4919061501f565b6123ee919061501f565b6123f891906150a8565b905060085481101561243f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243690615687565b60405180910390fd5b8060088190555060006103e88361ffff166009600a61245e9190614fd4565b64e8d4a5100061246e919061501f565b612478919061501f565b61248291906150a8565b90506009548110156124c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c0906156f3565b60405180910390fd5b8060098190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255b906151ac565b60405180910390fd5b61256c613bc9565b565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806126175750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061266f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806126c75750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061271d575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61275c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275390614e52565b60405180910390fd5b61276547613d52565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146127f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ec906151ac565b60405180910390fd5b6001601660146101000a81548160ff0219169083151502179055506000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415612893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288a9061575f565b60405180910390fd5b600061289e82611eb4565b9050600081116128e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128da90615544565b60405180910390fd5b61293581600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fc090919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129ca81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a6a9190614a82565b60405180910390a360006001600283612a8391906150a8565b612a8d919061577f565b90506000479050612a9d826136db565b60008147612aab919061577f565b9050612ab6836138fa565b612ac283826001613ae4565b505050506000601660146101000a81548160ff02191690831515021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60149054906101000a900461ffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c04906151ac565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051612c7c9190615812565b60405180910390a150565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612d2e575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6490614e52565b60405180910390fd5b612d75614068565b565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900460ff1681565b60001515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015612e7257506000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15612ef75780601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d601481819054906101000a900461ffff1680929190612edb9061582d565b91906101000a81548161ffff021916908361ffff160217905550505b5050565b436010541180612f0d57506000601054145b15612f28578060ff1643612f219190615858565b6010819055505b50565b6000806000905060011515600760009054906101000a900460ff1615151415612f575760019050612fb1565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415612fb057600190505b5b8091505090565b6000838311158290613000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff7919061491a565b60405180910390fd5b506000838561300f919061577f565b9050809150509392505050565b600043601054111561313757600360049054906101000a900463ffffffff1663ffffffff16600360009054906101000a900463ffffffff1663ffffffff168461306591906158ae565b73ffffffffffffffffffffffffffffffffffffffff1614156130905761308b6001612efb565b613132565b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156130e7576130e28343612dd3565b613131565b61313083601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dd3565b5b5b6131c9565b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146131c8576131c783601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dd3565b5b5b60011515600760009054906101000a900460ff16151514801561322c57506000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b8015613276575043601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b156132b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ad9061592b565b60405180910390fd5b60001515601660149054906101000a900460ff1615151480156133265750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15613334576133336140e8565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561339c57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156133f4575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15613443576134038383614274565b613442576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161343990615997565b60405180910390fd5b5b6000613450858585614370565b905060006134678285613fc090919063ffffffff16565b90506134f2846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fb89092919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008211156135d45761359082600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61362681600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400a90919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516136c69190614a82565b60405180910390a36001925050509392505050565b6136e4816138fa565b6000600267ffffffffffffffff811115613701576137006159b7565b5b60405190808252806020026020018201604052801561372f5781602001602082028036833780820191505090505b5090503081600081518110613747576137466159e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138129190615579565b81600181518110613826576138256159e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016138c4959493929190615b0e565b600060405180830381600087803b1580156138de57600080fd5b505af11580156138f2573d6000803e3d6000fd5b505050505050565b80600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613ae1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051613ad89190614a82565b60405180910390a35b50565b60008015158215151415613b165760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b8152600401613b7d96959493929190615b68565b60606040518083038185885af1158015613b9b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613bc09190615bde565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c5290615c7d565b60405180910390fd5b426013819055506001601354600f54613c749190615858565b613c7e919061577f565b600f81905550600543613c91919061501f565b6010819055506103e86009600a613ca89190614fd4565b64e8d4a51000613cb8919061501f565b6005613cc4919061501f565b613cce91906150a8565b6008819055506103e86009600a613ce59190614fd4565b64e8d4a51000613cf5919061501f565b6005613d01919061501f565b613d0b91906150a8565b600981905550613d19614068565b6019600d60186101000a81548160ff021916908360ff1602179055506001600760006101000a81548160ff021916908315150217905550565b6000600e60009054906101000a900461ffff16600d601e9054906101000a900461ffff16600d601c9054906101000a900461ffff16613d919190615310565b613d9b9190615310565b90506000600d601c9054906101000a900461ffff1661ffff161115613e5257601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600d601c9054906101000a900461ffff1661ffff1685613e1b919061501f565b613e2591906150a8565b9081150290604051600060405180830381858888f19350505050158015613e50573d6000803e3d6000fd5b505b6000600d601e9054906101000a900461ffff1661ffff161115613f0757601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600d601e9054906101000a900461ffff1661ffff1685613ed0919061501f565b613eda91906150a8565b9081150290604051600060405180830381858888f19350505050158015613f05573d6000803e3d6000fd5b505b6000600e60009054906101000a900461ffff1661ffff161115613fbc57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600e60009054906101000a900461ffff1661ffff1685613f85919061501f565b613f8f91906150a8565b9081150290604051600060405180830381858888f19350505050158015613fba573d6000803e3d6000fd5b505b5050565b600061400283836040518060400160405280601481526020017f5375627472616374696f6e206f766572666c6f77000000000000000000000000815250612fb8565b905092915050565b60008082846140199190615858565b90508381101561405e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161405590615ce9565b60405180910390fd5b8091505092915050565b600d60169054906101000a900460ff16600d60176101000a81548160ff021916908360ff160217905550600d60169054906101000a900460ff16600d60186101000a81548160ff021916908360ff160217905550600d60169054906101000a900460ff16600d60196101000a81548160ff021916908360ff160217905550565b6001601660146101000a81548160ff021916908315150217905550600061410e30611eb4565b9050600a548110158015614135575060011515600760009054906101000a900460ff161515145b8015614154575060001515600760019054906101000a900460ff161515145b1561425657600b54811061416857600b5490505b600060026103e8600d601a9054906101000a900461ffff1661ffff168461418f919061501f565b61419991906150a8565b6141a391906150a8565b9050600081836141b3919061577f565b905060004790506141c3826136db565b600081476141d1919061577f565b90506000600d601a9054906101000a900461ffff1661ffff1611156142385760006103e8600d601a9054906101000a900461ffff1661ffff1683614215919061501f565b61421f91906150a8565b905061422a856138fa565b61423685826001613ae4565b505b600047905060008111156142505761424f81613d52565b5b50505050505b506000601660146101000a81548160ff021916908315150217905550565b6000806001905060011515600760009054906101000a900460ff1615151415614366576008548311156142aa5760009050614365565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561435a575060095461435884600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400a90919063ffffffff16565b115b1561436457600090505b5b5b8091505092915050565b60008060011515600760009054906101000a900460ff1615151480156143975750600f5442105b156143ca576143c360646143b56062866146b190919063ffffffff16565b61472c90919063ffffffff16565b90506146a6565b60011515600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480614479575060011515600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80614497575060001515600760009054906101000a900460ff161515145b806144b5575060011515600760019054906101000a900460ff161515145b156144c357600090506146a5565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015614521575042601354115b1561452f57600090506146a4565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561458e57504260135411155b156145d2576145cb60646145bd600d60179054906101000a900460ff1660ff16866146b190919063ffffffff16565b61472c90919063ffffffff16565b90506146a3565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614667576146606064614652600d60189054906101000a900460ff1660ff16866146b190919063ffffffff16565b61472c90919063ffffffff16565b90506146a2565b61469f6064614691600d60199054906101000a900460ff1660ff16866146b190919063ffffffff16565b61472c90919063ffffffff16565b90505b5b5b5b5b809150509392505050565b6000808314156146c45760009050614726565b600082846146d2919061501f565b90508284826146e191906150a8565b14614721576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161471890615d55565b60405180910390fd5b809150505b92915050565b600061476e83836040518060400160405280601081526020017f4469766973696f6e206279207a65726f00000000000000000000000000000000815250614776565b905092915050565b600080831182906147bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016147b4919061491a565b60405180910390fd5b50600083856147cc91906150a8565b9050809150509392505050565b600080fd5b600063ffffffff82169050919050565b6147f7816147de565b811461480257600080fd5b50565b600081359050614814816147ee565b92915050565b60008060008060808587031215614834576148336147d9565b5b600061484287828801614805565b945050602061485387828801614805565b935050604061486487828801614805565b925050606061487587828801614805565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b838110156148bb5780820151818401526020810190506148a0565b838111156148ca576000848401525b50505050565b6000601f19601f8301169050919050565b60006148ec82614881565b6148f6818561488c565b935061490681856020860161489d565b61490f816148d0565b840191505092915050565b6000602082019050818103600083015261493481846148e1565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006149678261493c565b9050919050565b6149778161495c565b811461498257600080fd5b50565b6000813590506149948161496e565b92915050565b6000819050919050565b6149ad8161499a565b81146149b857600080fd5b50565b6000813590506149ca816149a4565b92915050565b600080604083850312156149e7576149e66147d9565b5b60006149f585828601614985565b9250506020614a06858286016149bb565b9150509250929050565b60008115159050919050565b614a2581614a10565b82525050565b6000602082019050614a406000830184614a1c565b92915050565b600060208284031215614a5c57614a5b6147d9565b5b6000614a6a84828501614985565b91505092915050565b614a7c8161499a565b82525050565b6000602082019050614a976000830184614a73565b92915050565b600080600060608486031215614ab657614ab56147d9565b5b6000614ac486828701614985565b9350506020614ad586828701614985565b9250506040614ae6868287016149bb565b9150509250925092565b600060ff82169050919050565b614b0681614af0565b82525050565b6000602082019050614b216000830184614afd565b92915050565b614b3081614af0565b8114614b3b57600080fd5b50565b600081359050614b4d81614b27565b92915050565b600080600060608486031215614b6c57614b6b6147d9565b5b6000614b7a86828701614b3e565b9350506020614b8b86828701614b3e565b9250506040614b9c86828701614b3e565b9150509250925092565b600061ffff82169050919050565b614bbd81614ba6565b8114614bc857600080fd5b50565b600081359050614bda81614bb4565b92915050565b60008060008060808587031215614bfa57614bf96147d9565b5b6000614c0887828801614bcb565b9450506020614c1987828801614bcb565b9350506040614c2a87828801614bcb565b9250506060614c3b87828801614bcb565b91505092959194509250565b600060208284031215614c5d57614c5c6147d9565b5b6000614c6b848285016149bb565b91505092915050565b614c7d8161495c565b82525050565b6000602082019050614c986000830184614c74565b92915050565b600080600060608486031215614cb757614cb66147d9565b5b6000614cc586828701614985565b9350506020614cd686828701614985565b9250506040614ce786828701614985565b9150509250925092565b60008060408385031215614d0857614d076147d9565b5b6000614d1685828601614bcb565b9250506020614d2785828601614bcb565b9150509250929050565b60008060408385031215614d4857614d476147d9565b5b6000614d5685828601614985565b9250506020614d6785828601614985565b9150509250929050565b614d7a81614ba6565b82525050565b6000602082019050614d956000830184614d71565b92915050565b6000614da68261493c565b9050919050565b614db681614d9b565b8114614dc157600080fd5b50565b600081359050614dd381614dad565b92915050565b600060208284031215614def57614dee6147d9565b5b6000614dfd84828501614dc4565b91505092915050565b7f3430330000000000000000000000000000000000000000000000000000000000600082015250565b6000614e3c60038361488c565b9150614e4782614e06565b602082019050919050565b60006020820190508181036000830152614e6b81614e2f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115614ef857808604811115614ed457614ed3614e72565b5b6001851615614ee35780820291505b8081029050614ef185614ea1565b9450614eb8565b94509492505050565b600082614f115760019050614fcd565b81614f1f5760009050614fcd565b8160018114614f355760028114614f3f57614f6e565b6001915050614fcd565b60ff841115614f5157614f50614e72565b5b8360020a915084821115614f6857614f67614e72565b5b50614fcd565b5060208310610133831016604e8410600b8410161715614fa35782820a905083811115614f9e57614f9d614e72565b5b614fcd565b614fb08484846001614eae565b92509050818404811115614fc757614fc6614e72565b5b81810290505b9392505050565b6000614fdf8261499a565b9150614fea83614af0565b92506150177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614f01565b905092915050565b600061502a8261499a565b91506150358361499a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561506e5761506d614e72565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006150b38261499a565b91506150be8361499a565b9250826150ce576150cd615079565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061512057607f821691505b60208210811415615134576151336150d9565b5b50919050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000615196602a8361488c565b91506151a18261513a565b604082019050919050565b600060208201905081810360008301526151c581615189565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b600061520260108361488c565b915061520d826151cc565b602082019050919050565b60006020820190508181036000830152615231816151f5565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b600061526e60098361488c565b915061527982615238565b602082019050919050565b6000602082019050818103600083015261529d81615261565b9050919050565b7f4e657720746178206d757374206265206c6f7765720000000000000000000000600082015250565b60006152da60158361488c565b91506152e5826152a4565b602082019050919050565b60006020820190508181036000830152615309816152cd565b9050919050565b600061531b82614ba6565b915061532683614ba6565b92508261ffff0382111561533d5761533c614e72565b5b828201905092915050565b7f53756d206d757374206265203130303000000000000000000000000000000000600082015250565b600061537e60108361488c565b915061538982615348565b602082019050919050565b600060208201905081810360008301526153ad81615371565b9050919050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b60006153ea60148361488c565b91506153f5826153b4565b602082019050919050565b60006020820190508181036000830152615419816153dd565b9050919050565b7f6574682063616e6e6f7420626520300000000000000000000000000000000000600082015250565b6000615456600f8361488c565b915061546182615420565b602082019050919050565b6000602082019050818103600083015261548581615449565b9050919050565b7f6e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b60006154c2600e8361488c565b91506154cd8261548c565b602082019050919050565b600060208201905081810360008301526154f1816154b5565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b600061552e60098361488c565b9150615539826154f8565b602082019050919050565b6000602082019050818103600083015261555d81615521565b9050919050565b6000815190506155738161496e565b92915050565b60006020828403121561558f5761558e6147d9565b5b600061559d84828501615564565b91505092915050565b60006040820190506155bb6000830185614c74565b6155c86020830184614c74565b9392505050565b7f74726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b600061560560108361488c565b9150615610826155cf565b602082019050919050565b60006020820190508181036000830152615634816155f8565b9050919050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b600061567160108361488c565b915061567c8261563b565b602082019050919050565b600060208201905081810360008301526156a081615664565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b60006156dd60148361488c565b91506156e8826156a7565b602082019050919050565b6000602082019050818103600083015261570c816156d0565b9050919050565b7f6e6f74206120736e697065720000000000000000000000000000000000000000600082015250565b6000615749600c8361488c565b915061575482615713565b602082019050919050565b600060208201905081810360008301526157788161573c565b9050919050565b600061578a8261499a565b91506157958361499a565b9250828210156157a8576157a7614e72565b5b828203905092915050565b6000819050919050565b60006157d86157d36157ce8461493c565b6157b3565b61493c565b9050919050565b60006157ea826157bd565b9050919050565b60006157fc826157df565b9050919050565b61580c816157f1565b82525050565b60006020820190506158276000830184615803565b92915050565b600061583882614ba6565b915061ffff82141561584d5761584c614e72565b5b600182019050919050565b60006158638261499a565b915061586e8361499a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156158a3576158a2614e72565b5b828201905092915050565b60006158b98261493c565b91506158c48361493c565b9250826158d4576158d3615079565b5b828206905092915050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000615915600b8361488c565b9150615920826158df565b602082019050919050565b6000602082019050818103600083015261594481615908565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b600061598160118361488c565b915061598c8261594b565b602082019050919050565b600060208201905081810360008301526159b081615974565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000615a3a615a35615a3084615a15565b6157b3565b61499a565b9050919050565b615a4a81615a1f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615a858161495c565b82525050565b6000615a978383615a7c565b60208301905092915050565b6000602082019050919050565b6000615abb82615a50565b615ac58185615a5b565b9350615ad083615a6c565b8060005b83811015615b01578151615ae88882615a8b565b9750615af383615aa3565b925050600181019050615ad4565b5085935050505092915050565b600060a082019050615b236000830188614a73565b615b306020830187615a41565b8181036040830152615b428186615ab0565b9050615b516060830185614c74565b615b5e6080830184614a73565b9695505050505050565b600060c082019050615b7d6000830189614c74565b615b8a6020830188614a73565b615b976040830187615a41565b615ba46060830186615a41565b615bb16080830185614c74565b615bbe60a0830184614a73565b979650505050505050565b600081519050615bd8816149a4565b92915050565b600080600060608486031215615bf757615bf66147d9565b5b6000615c0586828701615bc9565b9350506020615c1686828701615bc9565b9250506040615c2786828701615bc9565b9150509250925092565b7f4c50206e6f742073657400000000000000000000000000000000000000000000600082015250565b6000615c67600a8361488c565b9150615c7282615c31565b602082019050919050565b60006020820190508181036000830152615c9681615c5a565b9050919050565b7f4164646974696f6e206f766572666c6f77000000000000000000000000000000600082015250565b6000615cd360118361488c565b9150615cde82615c9d565b602082019050919050565b60006020820190508181036000830152615d0281615cc6565b9050919050565b7f4d756c7469706c69636174696f6e206f766572666c6f77000000000000000000600082015250565b6000615d3f60178361488c565b9150615d4a82615d09565b602082019050919050565b60006020820190508181036000830152615d6e81615d32565b905091905056fea264697066735822122050eb3c03cc49793ebec43e2c86c8fa9794ee3f9b104c8e1172337621538067b164736f6c634300080b0033

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

3151:15496:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7503:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5842:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9924:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8048:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18513:129;;;;;;;;;;;;;:::i;:::-;;5581:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11772:66;;;;;;;;;;;;;:::i;:::-;;12018:397;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3598:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5672:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8307:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17934:337;;;;;;;;;;;;;:::i;:::-;;8636:369;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9015:464;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8469:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6252:914;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6006:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5925:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3626:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5755:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9491:428;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10246:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3654:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10461:514;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10983:71;;;;;;;;;;;;;:::i;:::-;;18276:232;;;;;;;;;;;;;:::i;:::-;;13653:735;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6114:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3816:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2328:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7796:117;;;;;;;;;;;;;:::i;:::-;;8197:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3568:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7503:288;7636:9;;;;;;;;;;;7622:23;;:10;:23;;;:46;;;;7663:5;;;;;;;;;;7649:19;;:10;:19;;;7622:46;7614:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;7721:10;7695:36;;7710:8;7695:23;;3365:1;3318:2;:15;;;;:::i;:::-;3302:12;:32;;;;:::i;:::-;7695:23;;;;:::i;:::-;:36;;;;:::i;:::-;7681:11;:50;;;;7776:10;7750:36;;7765:8;7750:23;;3365:1;3318:2;:15;;;;:::i;:::-;3302:12;:32;;;;:::i;:::-;7750:23;;;;:::i;:::-;:36;;;;:::i;:::-;7736:11;:50;;;;7503:288;;;;:::o;5842:80::-;5890:13;5914:5;5907:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5842:80;:::o;9924:317::-;9999:4;10028:12;10014:11;;:26;:61;;;;;10070:5;10044:31;;:10;:22;10055:10;10044:22;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;10014:61;10010:116;;;10083:37;10095:10;10107:12;10083:11;:37::i;:::-;10010:116;10167:6;10132:11;:23;10144:10;10132:23;;;;;;;;;;;;;;;:32;10156:7;10132:32;;;;;;;;;;;;;;;:41;;;;10204:7;10183:37;;10192:10;10183:37;;;10213:6;10183:37;;;;;;:::i;:::-;;;;;;;;10232:4;10225:11;;9924:317;;;;:::o;8048:144::-;8104:4;8143:1;8119:12;:20;8132:6;8119:20;;;;;;;;;;;;;;;;:25;8115:73;;8155:4;8148:11;;;;8115:73;8180:5;8173:12;;8048:144;;;;:::o;18513:129::-;18570:9;;;;;;;;;;;18556:23;;:10;:23;;;:46;;;;18597:5;;;;;;;;;;18583:19;;:10;:19;;;18556:46;18548:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;18628:9;;;;;;;;;;;18627:10;18615:9;;:22;;;;;;;;;;;;;;;;;;18513:129::o;5581:88::-;5636:7;3365:1;3318:2;:15;;;;:::i;:::-;3302:12;:32;;;;:::i;:::-;5647:19;;5581:88;:::o;11772:66::-;2267:5;;;;;;;;;;2253:19;;:10;:19;;;2245:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11821:12:::1;11831:1;11821:9;:12::i;:::-;11772:66::o:0;12018:397::-;12118:4;12143:19;:17;:19::i;:::-;12135:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12226:17;12191:11;:19;12203:6;12191:19;;;;;;;;;;;;;;;:31;12211:10;12191:31;;;;;;;;;;;;;;;;:52;12188:171;;12284:69;12320:6;12284:69;;;;;;;;;;;;;;;;;:11;:19;12296:6;12284:19;;;;;;;;;;;;;;;:31;12304:10;12284:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;12250:11;:19;12262:6;12250:19;;;;;;;;;;;;;;;:31;12270:10;12250:31;;;;;;;;;;;;;;;:103;;;;12188:171;12370:40;12384:6;12392:9;12403:6;12370:13;:40::i;:::-;12363:47;;12018:397;;;;;:::o;3598:21::-;;;;;;;;;;;;;:::o;5672:80::-;5724:5;3365:1;5733:16;;5672:80;:::o;8307:159::-;8383:9;;;;;;;;;;;8369:23;;:10;:23;;;:46;;;;8410:5;;;;;;;;;;8396:19;;:10;:19;;;8369:46;8361:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8457:4;8428:16;:26;8446:6;8428:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8307:159;:::o;17934:337::-;17989:11;;;;;;;;;;;17975:25;;:10;:25;;;:54;;;;18018:11;;;;;;;;;;;18004:25;;:10;:25;;;17975:54;:83;;;;18047:11;;;;;;;;;;;18033:25;;:10;:25;;;17975:83;:110;;;;18076:9;;;;;;;;;;;18062:23;;:10;:23;;;17975:110;:133;;;;18103:5;;;;;;;;;;18089:19;;:10;:19;;;17975:133;17967:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;18122:23;18148:24;18166:4;18148:9;:24::i;:::-;18122:50;;18209:1;18191:15;:19;18183:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;18229:37;18250:15;18229:20;:37::i;:::-;17962:309;17934:337::o;8636:369::-;8748:9;;;;;;;;;;;8734:23;;:10;:23;;;:46;;;;8775:5;;;;;;;;;;8761:19;;:10;:19;;;8734:46;8726:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8820:11;;;;;;;;;;;8807:24;;:9;:24;;;;:54;;;;;8849:12;;;;;;;;;;;8835:26;;:10;:26;;;;8807:54;:80;;;;;8877:10;;;;;;;;;;;8865:22;;:8;:22;;;;8807:80;8799:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;8932:9;8918:11;;:23;;;;;;;;;;;;;;;;;;8961:10;8946:12;;:25;;;;;;;;;;;;;;;;;;8989:8;8976:10;;:21;;;;;;;;;;;;;;;;;;8636:369;;;:::o;9015:464::-;9169:9;;;;;;;;;;;9155:23;;:10;:23;;;:46;;;;9196:5;;;;;;;;;;9182:19;;:10;:19;;;9155:46;9147:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9292:4;9275:13;9259;9243;9228:12;:28;;;;:::i;:::-;:44;;;;:::i;:::-;:60;;;;:::i;:::-;:68;;;9220:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;9345:12;9329:13;;:28;;;;;;;;;;;;;;;;;;9382:13;9368:11;;:27;;;;;;;;;;;;;;;;;;9420:13;9406:11;;:27;;;;;;;;;;;;;;;;;;9458:13;9444:11;;:27;;;;;;;;;;;;;;;;;;9015:464;;;;:::o;8469:159::-;8544:9;;;;;;;;;;;8530:23;;:10;:23;;;:46;;;;8571:5;;;;;;;;;;8557:19;;:10;:19;;;8530:46;8522:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8618:5;8589:16;:26;8607:6;8589:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;8469:159;:::o;6252:914::-;2267:5;;;;;;;;;;2253:19;;:10;:19;;;2245:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6323:11:::1;;;;;;;;;;;6322:12;6314:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;6387:1;6372:12;:16;6364:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;6443:4;6415:10;:25;6434:4;6415:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;6472:4;6452:10;:17;6463:5:::0;::::1;;;;;;;;;;6452:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;6507:4;6481:10;:23;6492:11;;;;;;;;;;;6481:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;6542:4;6516:10;:23;6527:11;;;;;;;;;;;6516:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;6577:4;6551:10;:23;6562:11;;;;;;;;;;;6551:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;6588:60;6610:4;6617:5;::::0;::::1;;;;;;;;6644:3;6639:2;3365:1;3318:2;:15;;;;:::i;:::-;3302:12;:32;;;;:::i;:::-;6624:17;;;;:::i;:::-;:23;;;;:::i;:::-;6588:13;:60::i;:::-;;6653:27;6683:21;6653:51;;6740:12;6717:19;:35;;6709:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6776:29;6808:24;6826:4;6808:9;:24::i;:::-;6776:56;;6869:1;6845:21;:25;6837:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;6920:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6902:56;;;6967:4;6974:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6902:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6889:10;;:109;;;;;;;;;;;;;;;;;;7030:4;7005:10;:22;7016:10;;;;;;;;;;;7005:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;7041:37;7056:21;7041:14;:37::i;:::-;7083:57;7097:21;7120:12;7134:5;7083:13;:57::i;:::-;7147:14;:12;:14::i;:::-;6309:857;;6252:914:::0;:::o;6006:105::-;6072:7;6090:9;:18;6100:7;6090:18;;;;;;;;;;;;;;;;6083:25;;6006:105;;;:::o;5925:78::-;5977:7;5995:5;;;;;;;;;;;5988:12;;5925:78;:::o;3626:26::-;;;;:::o;5755:84::-;5805:13;5829:7;5822:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5755:84;:::o;9491:428::-;9613:9;;;;;;;;;;;9599:23;;:10;:23;;;:46;;;;9640:5;;;;;;;;;;9626:19;;:10;:19;;;9599:46;9591:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9686:11;9664;;:34;;;;;;;;;;;;;;;;;;9731:11;9709;;:34;;;;;;;;;;;;;;;;;;9776:11;9754;;:34;;;;;;;;;;;;;;;;;;9825:4;9793:16;:29;9810:11;9793:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;9866:4;9834:16;:29;9851:11;9834:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;9907:4;9875:16;:29;9892:11;9875:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;9491:428;;;:::o;10246:203::-;10326:4;10348:19;:17;:19::i;:::-;10340:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10400:44;10414:10;10426:9;10437:6;10400:13;:44::i;:::-;10393:51;;10246:203;;;;:::o;3654:30::-;;;;:::o;10461:514::-;10573:9;;;;;;;;;;;10559:23;;:10;:23;;;:46;;;;10600:5;;;;;;;;;;10586:19;;:10;:19;;;10559:46;10551:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10624:16;10676:4;10658:15;10643:30;;3365:1;3318:2;:15;;;;:::i;:::-;3302:12;:32;;;;:::i;:::-;10643:30;;;;:::i;:::-;:37;;;;:::i;:::-;10624:56;;10711:11;;10699:8;:23;;10691:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;10768:8;10754:11;:22;;;;10787:20;10847:4;10825:19;10810:34;;3365:1;3318:2;:15;;;;:::i;:::-;3302:12;:32;;;;:::i;:::-;10810:34;;;;:::i;:::-;:41;;;;:::i;:::-;10787:64;;10886:15;;10870:12;:31;;10862:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10955:12;10937:15;:30;;;;10546:429;;10461:514;;:::o;10983:71::-;2267:5;;;;;;;;;;2253:19;;:10;:19;;;2245:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11035:14:::1;:12;:14::i;:::-;10983:71::o:0;18276:232::-;18332:11;;;;;;;;;;;18318:25;;:10;:25;;;:54;;;;18361:11;;;;;;;;;;;18347:25;;:10;:25;;;18318:54;:83;;;;18390:11;;;;;;;;;;;18376:25;;:10;:25;;;18318:83;:110;;;;18419:9;;;;;;;;;;;18405:23;;:10;:23;;;18318:110;:133;;;;18446:5;;;;;;;;;;18432:19;;:10;:19;;;18318:133;18310:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;18465:37;18480:21;18465:14;:37::i;:::-;18276:232::o;13653:735::-;2267:5;;;;;;;;;;2253:19;;:10;:19;;;2245:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;4844:4:::1;4831:10;;:17;;;;;;;;;;;;;;;;;;13763:1:::2;13739:12;:20;13752:6;13739:20;;;;;;;;;;;;;;;;:25;;13731:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;13789:21;13813:17;13823:6;13813:9;:17::i;:::-;13789:41;;13862:1;13846:13;:17;13838:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;13907:36;13929:13;13907:9;:17;13917:6;13907:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;13887:9;:17;13897:6;13887:17;;;;;;;;;;;;;;;:56;;;;13978:43;14007:13;13978:9;:24;13996:4;13978:24;;;;;;;;;;;;;;;;:28;;:43;;;;:::i;:::-;13951:9;:24;13969:4;13951:24;;;;;;;;;;;;;;;:70;;;;14056:4;14031:46;;14040:6;14031:46;;;14063:13;14031:46;;;;;;:::i;:::-;;;;;;;;14084:23;14128:1;14124;14110:13;:15;;;;:::i;:::-;:19;;;;:::i;:::-;14084:45;;14134:19;14156:21;14134:43;;14185:37;14206:15;14185:20;:37::i;:::-;14230:19;14276:11;14252:21;:35;;;;:::i;:::-;14230:57;;14295:31;14310:15;14295:14;:31::i;:::-;14331:49;14345:15;14362:11;14375:4;14331:13;:49::i;:::-;13723:665;;;;4866:5:::1;4853:10;;:18;;;;;;;;;;;;;;;;;;13653:735:::0;:::o;6114:133::-;6198:7;6216:11;:19;6228:6;6216:19;;;;;;;;;;;;;;;:28;6236:7;6216:28;;;;;;;;;;;;;;;;6209:35;;6114:133;;;;:::o;3816:31::-;;;;;;;;;;;;;:::o;2328:130::-;2267:5;;;;;;;;;;2253:19;;:10;:19;;;2245:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;2410:8:::1;2402:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;2425:30;2446:8;2425:30;;;;;;:::i;:::-;;;;;;;;2328:130:::0;:::o;7796:117::-;7852:9;;;;;;;;;;;7838:23;;:10;:23;;;:46;;;;7879:5;;;;;;;;;;7865:19;;:10;:19;;;7838:46;7830:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;7897:11;:9;:11::i;:::-;7796:117::o;8197:105::-;8256:7;8277:12;:20;8290:6;8277:20;;;;;;;;;;;;;;;;8270:27;;8197:105;;;:::o;3568:23::-;;;;;;;;;;;;;:::o;15337:212::-;15437:5;15415:27;;:10;:18;15426:6;15415:18;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;:56;;;;;15470:1;15446:12;:20;15459:6;15446:20;;;;;;;;;;;;;;;;:25;15415:56;15411:134;;;15503:13;15480:12;:20;15493:6;15480:20;;;;;;;;;;;;;;;:36;;;;15523:13;;:16;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;15411:134;15337:212;;:::o;11846:163::-;11916:12;11902:11;;:26;:46;;;;11947:1;11932:11;;:16;11902:46;11898:107;;;11988:8;11973:23;;:12;:23;;;;:::i;:::-;11959:11;:37;;;;11898:107;11846:163;:::o;11512:252::-;11563:4;11579:16;11598:5;11579:24;;11633:4;11618:19;;:11;;;;;;;;;;;:19;;;11614:111;;;11655:4;11641:18;;11614:111;;;11695:5;;;;;;;;;;11682:18;;:9;:18;;;11678:47;;;11718:4;11704:18;;11678:47;11614:111;11745:11;11738:18;;;11512:252;:::o;374:158::-;460:7;484:1;479;:6;;487:12;471:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;502:9;518:1;514;:5;;;;:::i;:::-;502:17;;528:1;521:8;;;374:158;;;;;:::o;15554:1285::-;15646:4;15675:12;15661:11;;:26;15657:352;;;15738:4;;;;;;;;;;;15700:42;;15730:4;;;;;;;;;;;15700:34;;15716:9;15700:34;;;;:::i;:::-;:42;;;15695:210;;;15747:12;15757:1;15747:9;:12::i;:::-;15695:210;;;15801:1;15777:12;:20;15790:6;15777:20;;;;;;;;;;;;;;;;:25;15772:133;;;15807:36;15819:9;15830:12;15807:11;:36::i;:::-;15772:133;;;15858:44;15870:9;15881:12;:20;15894:6;15881:20;;;;;;;;;;;;;;;;15858:11;:44::i;:::-;15772:133;15695:210;15657:352;;;15951:1;15927:12;:20;15940:6;15927:20;;;;;;;;;;;;;;;;:25;15922:82;;15957:44;15969:9;15980:12;:20;15993:6;15980:20;;;;;;;;;;;;;;;;15957:11;:44::i;:::-;15922:82;15657:352;16035:4;16020:19;;:11;;;;;;;;;;;:19;;;:48;;;;;16067:1;16043:12;:20;16056:6;16043:20;;;;;;;;;;;;;;;;:25;;16020:48;:87;;;;;16095:12;16072;:20;16085:6;16072:20;;;;;;;;;;;;;;;;:35;16020:87;16015:128;;;16116:21;;;;;;;;;;:::i;:::-;;;;;;;;16015:128;16173:5;16159:19;;:10;;;;;;;;;;;:19;;;:46;;;;;16195:10;;;;;;;;;;;16182:23;;:9;:23;;;16159:46;16155:90;;;16219:20;:18;:20::i;:::-;16155:90;16278:4;16260:23;;:6;:23;;;;:53;;;;;16308:4;16287:26;;:9;:26;;;;16260:53;:72;;;;;16327:5;;;;;;;;;;16317:15;;:6;:15;;;;16260:72;16255:145;;;16344:31;16357:9;16368:6;16344:12;:31::i;:::-;16336:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;16255:145;16407:18;16428:40;16442:6;16450:9;16461:6;16428:13;:40::i;:::-;16407:61;;16476:23;16502:22;16513:10;16502:6;:10;;:22;;;;:::i;:::-;16476:48;;16552:53;16574:6;16552:53;;;;;;;;;;;;;;;;;:9;:17;16562:6;16552:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16532:9;:17;16542:6;16532:17;;;;;;;;;;;;;;;:73;;;;16630:1;16617:10;:14;16613:92;;;16662:40;16691:10;16662:9;:24;16680:4;16662:24;;;;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;16635:9;:24;16653:4;16635:24;;;;;;;;;;;;;;;:67;;;;16613:92;16732:41;16757:15;16732:9;:20;16742:9;16732:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;16709:9;:20;16719:9;16709:20;;;;;;;;;;;;;;;:64;;;;16800:9;16783:35;;16792:6;16783:35;;;16811:6;16783:35;;;;;;:::i;:::-;;;;;;;;16830:4;16823:11;;;;15554:1285;;;;;:::o;17146:359::-;17211:28;17226:12;17211:14;:28::i;:::-;17250:21;17288:1;17274:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17250:40;;17319:4;17301;17306:1;17301:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17345:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17335:4;17340:1;17335:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;17379:16;;;;;;;;;;;:67;;;17447:12;17460:1;17462:4;17475;17481:15;17379:118;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17206:299;17146:359;:::o;16844:297::-;16962:12;16908:11;:26;16928:4;16908:26;;;;;;;;;;;;;;;:51;4698:42;16908:51;;;;;;;;;;;;;;;;:66;16904:233;;;17036:17;16982:11;:26;17002:4;16982:26;;;;;;;;;;;;;;;:51;4698:42;16982:51;;;;;;;;;;;;;;;:71;;;;4698:42;17064:67;;17081:4;17064:67;;;17113:17;17064:67;;;;;;:::i;:::-;;;;;;;;16904:233;16844:297;:::o;7171:327::-;7268:24;7326:5;7314:17;;:8;:17;;;7310:52;;;7354:5;;;;;;;;;;7335:24;;7310:52;7366:16;;;;;;;;;;;:32;;;7406:13;7431:4;7438:12;7452:1;7455;7458:16;7476:15;7366:127;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7263:235;7171:327;;;:::o;11063:437::-;11137:1;11115:24;;:10;;;;;;;;;;;:24;;;;11107:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11180:15;11165:12;:30;;;;11235:1;11220:12;;11213:4;;:19;;;;:::i;:::-;:23;;;;:::i;:::-;11206:4;:30;;;;11276:1;11261:12;:16;;;;:::i;:::-;11247:11;:30;;;;11319:4;3365:1;3318:2;:15;;;;:::i;:::-;3302:12;:32;;;;:::i;:::-;11300:1;:16;;;;:::i;:::-;:23;;;;:::i;:::-;11282:11;:41;;;;11366:4;3365:1;3318:2;:15;;;;:::i;:::-;3302:12;:32;;;;:::i;:::-;11347:1;:16;;;;:::i;:::-;:23;;;;:::i;:::-;11329:15;:41;;;;11375:11;:9;:11::i;:::-;11406:2;11391:12;;:17;;;;;;;;;;;;;;;;;;11486:4;11472:11;;:18;;;;;;;;;;;;;;;;;;11063:437::o;17513:416::-;17570:21;17622:11;;;;;;;;;;;17608;;;;;;;;;;;17594;;;;;;;;;;;:25;;;;:::i;:::-;:39;;;;:::i;:::-;17570:63;;17662:1;17648:11;;;;;;;;;;;:15;;;17644:86;;;17667:11;;;;;;;;;;;:20;;:60;17712:14;17688:38;;17698:11;;;;;;;;;;;17688:21;;:7;:21;;;;:::i;:::-;:38;;;;:::i;:::-;17667:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17644:86;17758:1;17744:11;;;;;;;;;;;:15;;;17740:86;;;17763:11;;;;;;;;;;;:20;;:60;17808:14;17784:38;;17794:11;;;;;;;;;;;17784:21;;:7;:21;;;;:::i;:::-;:38;;;;:::i;:::-;17763:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17740:86;17854:1;17840:11;;;;;;;;;;;:15;;;17836:86;;;17859:11;;;;;;;;;;;:20;;:60;17904:14;17880:38;;17890:11;;;;;;;;;;;17880:21;;:7;:21;;;;:::i;:::-;:38;;;;:::i;:::-;17859:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17836:86;17562:367;17513:416;:::o;259:112::-;317:7;335:33;339:1;342;335:33;;;;;;;;;;;;;;;;;:3;:33::i;:::-;328:40;;259:112;;;;:::o;119:137::-;177:7;188:9;204:1;200;:5;;;;:::i;:::-;188:17;;220:1;215;:6;;207:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;252:1;245:8;;;119:137;;;;:::o;7918:125::-;7967:11;;;;;;;;;;;7953;;:25;;;;;;;;;;;;;;;;;;7998:11;;;;;;;;;;;7983:12;;:26;;;;;;;;;;;;;;;;;;8027:11;;;;;;;;;;;8014:10;;:24;;;;;;;;;;;;;;;;;;7918:125::o;14393:939::-;4844:4;4831:10;;:17;;;;;;;;;;;;;;;;;;14448:27:::1;14478:24;14496:4;14478:9;:24::i;:::-;14448:54;;14534:11;;14511:19;:34;;:57;;;;;14564:4;14549:19;;:11;;;;;;;;;;;:19;;;14511:57;:79;;;;;14585:5;14572:18;;:9;;;;;;;;;;;:18;;;14511:79;14507:821;;;14626:11;;14603:19;:34;14599:78;;14663:11;;14641:33;;14599:78;14682:20;14750:1;14743:4;14727:13;;;;;;;;;;;14705:35;;:19;:35;;;;:::i;:::-;:42;;;;:::i;:::-;:46;;;;:::i;:::-;14682:69;;14760:21;14806:12;14784:19;:34;;;;:::i;:::-;14760:58;;14827:19;14849:21;14827:43;;14879:35;14900:13;14879:20;:35::i;:::-;14923:19;14969:11;14945:21;:35;;;;:::i;:::-;14923:57;;15009:1;14993:13;;;;;;;;;;;:17;;;14989:198;;;15022:21;15076:4;15060:13;;;;;;;;;;;15046:27;;:11;:27;;;;:::i;:::-;:34;;;;:::i;:::-;15022:58;;15091:28;15106:12;15091:14;:28::i;:::-;15129:48;15143:12;15157:13;15172:4;15129:13;:48::i;:::-;15012:175;14989:198;15195:27;15225:21;15195:51;;15280:1;15258:19;:23;15255:68;;;15285:35;15300:19;15285:14;:35::i;:::-;15255:68;14593:735;;;;;14507:821;14443:889;4866:5:::0;4853:10;;:18;;;;;;;;;;;;;;;;;;14393:939::o;12421:446::-;12509:4;12526:21;12550:4;12526:28;;12585:4;12570:19;;:11;;;;;;;;;;;:19;;;12565:261;;;12629:11;;12612:14;:28;12607:208;;;12664:5;12645:24;;12607:208;;;12709:10;;;;;;;;;;;12696:23;;:9;:23;;;;:87;;;;;12767:15;;12724:40;12749:14;12724:9;:20;12734:9;12724:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;:58;12696:87;12691:124;;;12807:5;12788:24;;12691:124;12607:208;12565:261;12843:16;12836:23;;;12421:446;;;;:::o;12875:770::-;12972:7;12992:17;13040:4;13025:19;;:11;;;;;;;;;;;:19;;;:45;;;;;13066:4;;13048:15;:22;13025:45;13020:597;;;13087:23;13106:3;13087:14;13098:2;13087:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;13075:35;;13020:597;;;13154:4;13126:32;;:16;:24;13143:6;13126:24;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;:71;;;;13193:4;13162:35;;:16;:27;13179:9;13162:27;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;13126:71;:95;;;;13216:5;13201:20;;:11;;;;;;;;;;;:20;;;13126:95;:116;;;;13238:4;13225:17;;:9;;;;;;;;;;;:17;;;13126:116;13121:496;;;13258:1;13246:13;;13121:496;;;13286:10;;;;;;;;;;;13276:20;;:6;:20;;;:54;;;;;13315:15;13300:12;;:30;13276:54;13271:346;;;13346:1;13334:13;;13271:346;;;13374:10;;;;;;;;;;;13364:20;;:6;:20;;;:55;;;;;13404:15;13388:12;;:31;;13364:55;13359:258;;;13435:32;13463:3;13435:23;13446:11;;;;;;;;;;;13435:23;;:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;13423:44;;13359:258;;;13497:10;;;;;;;;;;;13484:23;;:9;:23;;;13479:138;;;13524:33;13553:3;13524:24;13535:12;;;;;;;;;;;13524:24;;:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;13512:45;;13479:138;;;13583:31;13610:3;13583:22;13594:10;;;;;;;;;;;13583:22;;:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;13571:43;;13479:138;13359:258;13271:346;13121:496;13020:597;13628:9;13621:16;;;12875:770;;;;;:::o;535:173::-;593:7;613:1;608;:6;604:25;;;625:1;618:8;;;;604:25;630:9;646:1;642;:5;;;;:::i;:::-;630:17;;666:1;661;657;:5;;;;:::i;:::-;:10;649:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;704:1;697:8;;;535:173;;;;;:::o;711:108::-;769:7;787:29;791:1;794;787:29;;;;;;;;;;;;;;;;;:3;:29::i;:::-;780:36;;711:108;;;;:::o;822:157::-;908:7;931:1;927;:5;934:12;919:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;949:9;965:1;961;:5;;;;:::i;:::-;949:17;;975:1;968:8;;;822: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://50eb3c03cc49793ebec43e2c86c8fa9794ee3f9b104c8e1172337621538067b1
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.