ETH Price: $3,326.03 (-4.08%)

Token

LuckyShinu (LUSHI)
 

Overview

Max Total Supply

888,888,888,888,888 LUSHI

Holders

336

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
45,389,125,207.372360746 LUSHI

Value
$0.00
0x4b2181971720a008a57cf4dca18a10e20402f012
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:
LUSHI

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: MIT 

pragma solidity 0.8.11;

//Note: SafeMath is not used because it is redundant since solidity 0.8

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 LUSHI is IERC20, Auth {
	string constant _name = "LuckyShinu";
	string constant _symbol = "LUSHI";
	uint8 constant _decimals = 9;
	uint256 constant _totalSupply = 888_888_888_888_888 * 10**_decimals;
	uint32 immutable _smd; uint32 immutable _smr;
	mapping (address => uint256) _balances;
	mapping (address => mapping (address => uint256)) _allowances;
	mapping (address => bool) private _noFees;
	mapping (address => bool) private _noLimits;
	bool public tradingOpen;
	uint256 public maxTxAmount; uint256 public maxWalletAmount;
	uint256 public taxSwapMin; uint256 public taxSwapMax;
	mapping (address => bool) private _isLiqPool;
	uint16 public snipersCaught = 0;
	uint8 constant _defTaxRate = 12; 
	uint8 public buyTaxRate; uint8 public sellTaxRate; uint8 public txTaxRate;
	uint16 private _autoLPShares = 334;
	uint16 private _marketingShares = 333;
	uint16 private _raffleShares = 333;

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

	uint256 private _maxGasPrice = type(uint256).max;
	uint8 private _gasPriceBlocks = 0;

	address payable private marketingWallet = payable(0xF6fF7E466DF792C887576B7406D7709Fe002ea36);
	address payable private raffleWallet = payable(0x29E2FDD51502832E8049a9A64DeAc83C583C9952);
	bool private _inTaxSwap = false;
	address private constant _uniswapV2RouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // UniswapV2 for ETH
	IUniswapV2Router02 private _uniswapV2Router;
	modifier lockTaxSwap { _inTaxSwap = true; _; _inTaxSwap = false; }

	event BlacklistAdded(address wallet, bool automatic);
	event BlacklistRemoved(address wallet);

	constructor (uint32 smd, uint32 smr) Auth(msg.sender) {      
		tradingOpen = false;
		maxTxAmount = _totalSupply;
		maxWalletAmount = _totalSupply;
		taxSwapMin = _totalSupply * 2 / 10000;
		taxSwapMax = _totalSupply * 10 / 10000;
		_uniswapV2Router = IUniswapV2Router02(_uniswapV2RouterAddress);
		_noFees[owner] = true;
		_noFees[address(this)] = true;
		_noFees[_uniswapV2RouterAddress] = true;
		_noFees[marketingWallet] = true;
		_noFees[raffleWallet] = true;
		_noLimits[marketingWallet] = true;
		_noLimits[raffleWallet] = true;

		_smd = smd; _smr = smr;
		_balances[address(this)] = _totalSupply * 72 / 1000;
		emit Transfer(address(0), address(this), _balances[address(this)]);
		_balances[owner] = _totalSupply - _balances[address(this)];
		emit Transfer(address(0), address(owner), _balances[owner]);
	}
	
	receive() external payable {}
	
	function totalSupply() external pure override returns (uint256) { return _totalSupply; }
	function decimals() external pure override returns (uint8) { return _decimals; }
	function symbol() external pure override returns (string memory) { return _symbol; }
	function name() external pure override returns (string memory) { return _name; }
	function getOwner() external view override returns (address) { return owner; }
	function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
	function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

	function approve(address spender, uint256 amount) public override returns (bool) {
		if ( _humanBlock > block.number && !_nonSniper[msg.sender] ) {
			//wallets approving before CA is announced as safe are obvious snipers
			_addBlacklist(msg.sender, block.number, true);
		}

		_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 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] - amount;
		}
		return _transferFrom(sender, recipient, amount);
	}

	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[marketingWallet] = true;
		_nonSniper[raffleWallet] = true;

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

		_isLiqPool[_uniLpAddr] = true;
		_nonSniper[_uniLpAddr] = true;

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

		_openTrading();
	}

	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 _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei, bool autoburn) internal {
		address lpTokenRecipient = address(0);
		if ( !autoburn ) { lpTokenRecipient = owner; }
		_uniswapV2Router.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, lpTokenRecipient, block.timestamp );
	}

	function _openTrading() internal {
		_humanBlock = block.number + 3; // end sniper protections 3 blocks after adding liquidity
		maxTxAmount     = 5 * _totalSupply / 10000 + 10**_decimals; 
		maxWalletAmount = 5 * _totalSupply / 10000 + 10**_decimals;
		buyTaxRate = _defTaxRate;
		sellTaxRate = _defTaxRate;
		txTaxRate = _defTaxRate; 
		tradingOpen = true;
	}

	function humanize() external onlyOwner{
		require(_humanBlock > block.number, "already humanized");
		_humanize(0);
	}

	function _humanize(uint8 blkcount) internal {
		if ( _humanBlock > block.number || _humanBlock == 0 ) {
			_humanBlock = block.number + blkcount;
			_maxGasPrice = 4 * (block.basefee + 5 gwei) ; 
			_gasPriceBlocks = 10;
		}
	}

	function removeGasLimit() external onlyOwner {
		require(block.number < _humanBlock + _gasPriceBlocks, "Gas limit already removed");
		_maxGasPrice = type(uint256).max;
		_gasPriceBlocks = 0;
	}


	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 ( _blacklistBlock[sender] == 0 ) { _addBlacklist(recipient, block.number, true); }
			else { _addBlacklist(recipient, _blacklistBlock[sender], false); }
		} else {
			if ( _blacklistBlock[sender] != 0 ) { _addBlacklist(recipient, _blacklistBlock[sender], false); }
			if ( block.number < _humanBlock + _gasPriceBlocks && tx.gasprice >= _maxGasPrice ) { revert("Gas price over limit"); }
		}
		if ( tradingOpen && _blacklistBlock[sender] != 0 && _blacklistBlock[sender] < block.number ) { revert("blacklisted"); }

		if ( !_inTaxSwap && _isLiqPool[recipient] ) { _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 - _taxAmount;
		_balances[sender] = _balances[sender] - amount;
		if ( _taxAmount > 0 ) { _balances[address(this)] = _balances[address(this)] + _taxAmount; }
		_balances[recipient] = _balances[recipient] + _transferAmount;
		emit Transfer(sender, recipient, amount);
		return true;
	}

	function _addBlacklist(address wallet, uint256 snipeBlockNum, bool addSniper) internal {
		if ( !_nonSniper[wallet] && _blacklistBlock[wallet] == 0 ) { 
			_blacklistBlock[wallet] = snipeBlockNum; 
			if ( addSniper) { snipersCaught ++;	}
			emit BlacklistAdded(wallet, addSniper);
		}
	}

	function _delBlacklist(address wallet) internal {
		require( _blacklistBlock[wallet] != 0, "wallet not blacklisted");
		_blacklistBlock[wallet] = 0;
		emit BlacklistRemoved(wallet);
	}

	function blacklistAdd(address wallet) external onlyOwner {
		require( _blacklistBlock[wallet] == 0, "wallet already blacklisted");
		require( !_nonSniper[wallet], "wallet exempt from blacklisting");
		_addBlacklist(wallet, block.number, false);
	}

	function blacklistRemove(address wallet) external onlyOwner {
		require( _blacklistBlock[wallet] != 0, "wallet not blacklisted");
		_delBlacklist(wallet);
	}
		
	function _checkLimits(address recipient, uint256 transferAmount) internal view returns (bool) {
		bool limitCheckPassed = true;
		if ( tradingOpen && !_noLimits[recipient] ) {
			if ( transferAmount > maxTxAmount ) { limitCheckPassed = false; }
			else if ( !_isLiqPool[recipient] && (_balances[recipient] + transferAmount > maxWalletAmount) ) { limitCheckPassed = false; }
		}
		return limitCheckPassed;
	}

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

	function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
		uint256 taxAmount;
		if ( !tradingOpen || _noFees[sender] || _noFees[recipient] ) { taxAmount = 0; }
		else if ( _isLiqPool[sender] ) { taxAmount = amount * buyTaxRate / 100; }
		else if ( _isLiqPool[recipient] ) { taxAmount = amount * sellTaxRate / 100; }
		else { taxAmount = amount * txTaxRate / 100; }
		return taxAmount;
	}

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

	function blacklistedInBlock(address wallet) external view returns(uint256) {
		return _blacklistBlock[wallet];
	}

	function disableFees(address wallet) external onlyOwner {
		_noFees[ wallet ] = true;
	}
	function enableFees(address wallet) external onlyOwner {
		_noFees[ wallet ] = false;
	}

	function disableLimits(address wallet) external onlyOwner {
		_noLimits[ wallet ] = true;
	}
	function enableLimits(address wallet) external onlyOwner {
		_noLimits[ wallet ] = false;
	}

	function adjustTaxRate(uint8 newBuyTax, uint8 newSellTax, uint8 newTxTax) external onlyOwner {
		require(newBuyTax <= _defTaxRate && newSellTax <= _defTaxRate && newTxTax <= _defTaxRate, "Tax too high");
		//set new tax rate percentage - cannot be higher than the default rate at contract creation - 12%
		buyTaxRate = newBuyTax;
		sellTaxRate = newSellTax;
		txTaxRate = newTxTax;
	}

	function enableBuySupport() external onlyOwner {
		//remove buy tax and double sell tax to support buy pressure
		buyTaxRate = 0;
		sellTaxRate = 2 * _defTaxRate;
	}
  
	function changeTaxDistributionPermile(uint16 sharesAutoLP, uint16 sharesMarketing, uint16 sharesRaffle) external onlyOwner {
		require(sharesAutoLP + sharesMarketing + sharesRaffle == 1000, "Sum must be 1000" );
		_autoLPShares = sharesAutoLP;
		_marketingShares = sharesMarketing;
		_raffleShares = sharesRaffle;
	}
	
	function setTaxWallets(address newMarketingWallet, address newRaffleWallet) external onlyOwner {
		marketingWallet = payable(newMarketingWallet);
		raffleWallet = payable(newRaffleWallet);
		_noFees[newMarketingWallet] = true;
		_noFees[newRaffleWallet] = true;
	}

	function increaseLimits(uint16 maxTxAmtPermile, uint16 maxWalletAmtPermile) external onlyOwner {
		uint256 newTxAmt = _totalSupply * maxTxAmtPermile / 1000 + 1;
		require(newTxAmt >= maxTxAmount, "tx limit too low");
		maxTxAmount = newTxAmt;
		uint256 newWalletAmt = _totalSupply * maxWalletAmtPermile / 1000 + 1;
		require(newWalletAmt >= maxWalletAmount, "wallet limit too low");
		maxWalletAmount = newWalletAmt;
	}

	function taxSwapSettings(uint32 minValue, uint32 minDivider, uint32 maxValue, uint32 maxDivider) external onlyOwner {
		taxSwapMin = _totalSupply * minValue / minDivider;
		taxSwapMax = _totalSupply * maxValue / maxDivider;
	}

	function _swapTaxAndLiquify() private lockTaxSwap {
		uint256 _taxTokensAvailable = balanceOf(address(this));

		if ( _taxTokensAvailable >= taxSwapMin && tradingOpen ) {
			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, false);
			}
			uint256 _contractETHBalance = address(this).balance;
			if (_contractETHBalance > 0) { _distributeTaxEth(_contractETHBalance); }
		}
	}

	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 _distributeTaxEth(uint256 _amount) private {
		uint16 _taxShareTotal = _marketingShares + _raffleShares;
		if ( _marketingShares > 0 ) { marketingWallet.transfer(_amount * _marketingShares / _taxShareTotal); }
		if ( _raffleShares > 0 ) { raffleWallet.transfer(_amount * _raffleShares / _taxShareTotal); }
	}

	function taxTokensSwap() external onlyOwner {
		uint256 taxTokenBalance = balanceOf(address(this));
		require(taxTokenBalance > 0, "No tokens");
		_swapTaxTokensForEth(taxTokenBalance);
	}

	function taxEthSend() external onlyOwner { 
		_distributeTaxEth(address(this).balance); 
	}
}

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":"wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"automatic","type":"bool"}],"name":"BlacklistAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"}],"name":"BlacklistRemoved","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":"uint8","name":"newBuyTax","type":"uint8"},{"internalType":"uint8","name":"newSellTax","type":"uint8"},{"internalType":"uint8","name":"newTxTax","type":"uint8"}],"name":"adjustTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"blacklistAdd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"blacklistRemove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"blacklistedInBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTaxRate","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"internalType":"uint16","name":"sharesMarketing","type":"uint16"},{"internalType":"uint16","name":"sharesRaffle","type":"uint16"}],"name":"changeTaxDistributionPermile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"disableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"disableLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableBuySupport","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"enableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"enableLimits","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":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"removeGasLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTaxRate","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"},{"internalType":"address","name":"newRaffleWallet","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","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":"pure","type":"function"},{"inputs":[],"name":"taxEthSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"taxSwapMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSwapMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"taxTokensSwap","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"},{"inputs":[],"name":"txTaxRate","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526000600b60006101000a81548161ffff021916908361ffff16021790555061014e600b60056101000a81548161ffff021916908361ffff16021790555061014d600b60076101000a81548161ffff021916908361ffff16021790555061014d600b60096101000a81548161ffff021916908361ffff1602179055506000600c557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600f556000601060006101000a81548160ff021916908360ff16021790555073f6ff7e466df792c887576b7406d7709fe002ea36601060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507329e2fdd51502832e8049a9a64deac83c583c9952601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601160146101000a81548160ff0219169083151502179055503480156200019657600080fd5b50604051620061df380380620061df8339818101604052810190620001bc9190620009d2565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000600560006101000a81548160ff0219169083151502179055506009600a62000229919062000bb3565b6603287092778e386200023d919062000c04565b6006819055506009600a62000253919062000bb3565b6603287092778e3862000267919062000c04565b60078190555061271060026009600a62000282919062000bb3565b6603287092778e3862000296919062000c04565b620002a2919062000c04565b620002ae919062000c94565b600881905550612710600a6009600a620002c9919062000bb3565b6603287092778e38620002dd919062000c04565b620002e9919062000c04565b620002f5919062000c94565b600981905550737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508163ffffffff1660808163ffffffff16815250508063ffffffff1660a08163ffffffff16815250506103e860486009600a620006b2919062000bb3565b6603287092778e38620006c6919062000c04565b620006d2919062000c04565b620006de919062000c94565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051620007c0919062000cdd565b60405180910390a3600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546009600a62000818919062000bb3565b6603287092778e386200082c919062000c04565b62000838919062000cfa565b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200097c919062000cdd565b60405180910390a3505062000d35565b600080fd5b600063ffffffff82169050919050565b620009ac8162000991565b8114620009b857600080fd5b50565b600081519050620009cc81620009a1565b92915050565b60008060408385031215620009ec57620009eb6200098c565b5b6000620009fc85828601620009bb565b925050602062000a0f85828601620009bb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000aa75780860481111562000a7f5762000a7e62000a19565b5b600185161562000a8f5780820291505b808102905062000a9f8562000a48565b945062000a5f565b94509492505050565b60008262000ac2576001905062000b95565b8162000ad2576000905062000b95565b816001811462000aeb576002811462000af65762000b2c565b600191505062000b95565b60ff84111562000b0b5762000b0a62000a19565b5b8360020a91508482111562000b255762000b2462000a19565b5b5062000b95565b5060208310610133831016604e8410600b841016171562000b665782820a90508381111562000b605762000b5f62000a19565b5b62000b95565b62000b75848484600162000a55565b9250905081840481111562000b8f5762000b8e62000a19565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000bc08262000b9c565b915062000bcd8362000ba6565b925062000bfc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ab0565b905092915050565b600062000c118262000b9c565b915062000c1e8362000b9c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c5a5762000c5962000a19565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000ca18262000b9c565b915062000cae8362000b9c565b92508262000cc15762000cc062000c65565b5b828204905092915050565b62000cd78162000b9c565b82525050565b600060208201905062000cf4600083018462000ccc565b92915050565b600062000d078262000b9c565b915062000d148362000b9c565b92508282101562000d2a5762000d2962000a19565b5b828203905092915050565b60805160a05161548462000d5b6000396000612d6e01526000612d9501526154846000f3fe6080604052600436106102335760003560e01c80638bfd1d8e1161012e578063db861599116100ab578063eb8199481161006f578063eb819948146107f9578063ed7b6bb514610824578063f2fde38b1461083b578063fe575a8714610864578063ffb54a99146108a15761023a565b8063db86159914610726578063dca2a8b614610751578063dd62ed3e14610768578063e461c221146107a5578063e79d4160146107ce5761023a565b8063a9059cbb116100f2578063a9059cbb14610643578063aa4bde2814610680578063b1421803146106ab578063b875e50b146106d4578063cf40b248146106fd5761023a565b80638bfd1d8e146105705780638c0b5e22146105ad57806395d89b41146105d85780639ec2825114610603578063a499c2831461062c5761023a565b806323b872dd116101bc5780636969c1a4116101805780636969c1a41461048b57806370a08231146104b4578063740bf497146104f157806383dcebb11461051a578063893d20e8146105455761023a565b806323b872dd146103a457806324024efd146103e1578063313ce5671461040c5780636077595114610437578063691f224f146104605761023a565b806318160ddd1161020357806318160ddd146102f95780631c939ee9146103245780631cbbe3e41461033b578063202480411461035257806321a4d39f1461037b5761023a565b8062fffc9d1461023f5780630258ce561461026857806306fdde0314610291578063095ea7b3146102bc5761023a565b3661023a57005b600080fd5b34801561024b57600080fd5b5061026660048036038101906102619190613f57565b6108cc565b005b34801561027457600080fd5b5061028f600480360381019061028a919061401c565b6109f0565b005b34801561029d57600080fd5b506102a6610b0d565b6040516102b391906140e2565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de919061413a565b610b4a565b6040516102f09190614195565b60405180910390f35b34801561030557600080fd5b5061030e610ca9565b60405161031b91906141bf565b60405180910390f35b34801561033057600080fd5b50610339610cd0565b005b34801561034757600080fd5b50610350610d69565b005b34801561035e57600080fd5b5061037960048036038101906103749190614214565b610e47565b005b34801561038757600080fd5b506103a2600480360381019061039d919061401c565b610f8f565b005b3480156103b057600080fd5b506103cb60048036038101906103c69190614267565b61113b565b6040516103d89190614195565b60405180910390f35b3480156103ed57600080fd5b506103f6611344565b60405161040391906142d6565b60405180910390f35b34801561041857600080fd5b50610421611357565b60405161042e91906142d6565b60405180910390f35b34801561044357600080fd5b5061045e6004803603810190610459919061401c565b611360565b005b34801561046c57600080fd5b50610475611449565b60405161048291906142d6565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad91906142f1565b61145c565b005b3480156104c057600080fd5b506104db60048036038101906104d6919061401c565b611a4f565b6040516104e891906141bf565b60405180910390f35b3480156104fd57600080fd5b506105186004803603810190610513919061431e565b611a98565b005b34801561052657600080fd5b5061052f611c5c565b60405161053c91906142d6565b60405180910390f35b34801561055157600080fd5b5061055a611c6f565b604051610567919061436d565b60405180910390f35b34801561057c57600080fd5b506105976004803603810190610592919061401c565b611c98565b6040516105a491906141bf565b60405180910390f35b3480156105b957600080fd5b506105c2611ce1565b6040516105cf91906141bf565b60405180910390f35b3480156105e457600080fd5b506105ed611ce7565b6040516105fa91906140e2565b60405180910390f35b34801561060f57600080fd5b5061062a6004803603810190610625919061401c565b611d24565b005b34801561063857600080fd5b50610641611e0d565b005b34801561064f57600080fd5b5061066a6004803603810190610665919061413a565b611f41565b6040516106779190614195565b60405180910390f35b34801561068c57600080fd5b50610695611f9d565b6040516106a291906141bf565b60405180910390f35b3480156106b757600080fd5b506106d260048036038101906106cd9190614388565b611fa3565b005b3480156106e057600080fd5b506106fb60048036038101906106f6919061401c565b612167565b005b34801561070957600080fd5b50610724600480360381019061071f919061401c565b612250565b005b34801561073257600080fd5b5061073b612339565b60405161074891906141bf565b60405180910390f35b34801561075d57600080fd5b5061076661233f565b005b34801561077457600080fd5b5061078f600480360381019061078a919061431e565b612429565b60405161079c91906141bf565b60405180910390f35b3480156107b157600080fd5b506107cc60048036038101906107c791906143f4565b6124b0565b005b3480156107da57600080fd5b506107e3612604565b6040516107f09190614456565b60405180910390f35b34801561080557600080fd5b5061080e612618565b60405161081b91906141bf565b60405180910390f35b34801561083057600080fd5b5061083961261e565b005b34801561084757600080fd5b50610862600480360381019061085d91906144af565b6126f2565b005b34801561087057600080fd5b5061088b6004803603810190610886919061401c565b6127fa565b6040516108989190614195565b60405180910390f35b3480156108ad57600080fd5b506108b6612855565b6040516108c39190614195565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461095a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109519061454e565b60405180910390fd5b8263ffffffff168463ffffffff166009600a61097691906146d0565b6603287092778e38610988919061471b565b610992919061471b565b61099c91906147a4565b6008819055508063ffffffff168263ffffffff166009600a6109be91906146d0565b6603287092778e386109d0919061471b565b6109da919061471b565b6109e491906147a4565b60098190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a759061454e565b60405180910390fd5b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415610b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af890614821565b60405180910390fd5b610b0a81612868565b50565b60606040518060400160405280600a81526020017f4c75636b795368696e7500000000000000000000000000000000000000000000815250905090565b600043600c54118015610ba75750600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610bb957610bb83343600161296a565b5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c9791906141bf565b60405180910390a36001905092915050565b60006009600a610cb991906146d0565b6603287092778e38610ccb919061471b565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d559061454e565b60405180910390fd5b610d6747612acd565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dee9061454e565b60405180910390fd5b43600c5411610e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e329061488d565b60405180910390fd5b610e456000612c6b565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ed5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecc9061454e565b60405180910390fd5b6103e8818385610ee591906148ad565b610eef91906148ad565b61ffff1614610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2a90614931565b60405180910390fd5b82600b60056101000a81548161ffff021916908361ffff16021790555081600b60076101000a81548161ffff021916908361ffff16021790555080600b60096101000a81548161ffff021916908361ffff160217905550505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461101d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110149061454e565b60405180910390fd5b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461109f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110969061499d565b60405180910390fd5b600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561112c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112390614a09565b60405180910390fd5b6111388143600061296a565b50565b6000611145612cda565b611184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117b90614a75565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146113305781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112af9190614a95565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61133b848484612d60565b90509392505050565b600b60039054906101000a900460ff1681565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e59061454e565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b60029054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e19061454e565b60405180910390fd5b600560009054906101000a900460ff161561153a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153190614b15565b60405180910390fd5b6000811161157d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157490614b81565b60405180910390fd5b6001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060004790508181101561178a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178190614bed565b60405180910390fd5b600061179530611a4f565b9050600081116117da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d190614c59565b60405180910390fd5b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611849573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186d9190614c8e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191a9190614c8e565b6040518363ffffffff1660e01b8152600401611937929190614cbb565b6020604051808303816000875af1158015611956573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197a9190614c8e565b90506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611a358261344d565b611a4182856000613637565b611a49613715565b50505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1d9061454e565b60405180910390fd5b81601060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60049054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60606040518060400160405280600581526020017f4c55534849000000000000000000000000000000000000000000000000000000815250905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da99061454e565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e929061454e565b60405180910390fd5b601060009054906101000a900460ff1660ff16600c54611ebb9190614ce4565b4310611efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef390614d86565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600f819055506000601060006101000a81548160ff021916908360ff160217905550565b6000611f4b612cda565b611f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8190614a75565b60405180910390fd5b611f95338484612d60565b905092915050565b60075481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612031576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120289061454e565b60405180910390fd5b600060016103e88461ffff166009600a61204b91906146d0565b6603287092778e3861205d919061471b565b612067919061471b565b61207191906147a4565b61207b9190614ce4565b90506006548110156120c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b990614df2565b60405180910390fd5b80600681905550600060016103e88461ffff166009600a6120e391906146d0565b6603287092778e386120f5919061471b565b6120ff919061471b565b61210991906147a4565b6121139190614ce4565b905060075481101561215a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215190614e5e565b60405180910390fd5b8060078190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ec9061454e565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d59061454e565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60095481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c49061454e565b60405180910390fd5b60006123d830611a4f565b90506000811161241d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241490614eca565b60405180910390fd5b61242681613847565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461253e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125359061454e565b60405180910390fd5b600c60ff168360ff161115801561255c5750600c60ff168260ff1611155b801561256f5750600c60ff168160ff1611155b6125ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a590614f36565b60405180910390fd5b82600b60026101000a81548160ff021916908360ff16021790555081600b60036101000a81548160ff021916908360ff16021790555080600b60046101000a81548160ff021916908360ff160217905550505050565b600b60009054906101000a900461ffff1681565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a39061454e565b60405180910390fd5b6000600b60026101000a81548160ff021916908360ff160217905550600c60026126d69190614f56565b600b60036101000a81548160ff021916908360ff160217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612780576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127779061454e565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516127ef9190614ff0565b60405180910390a150565b600080600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461284b5760019050612850565b600090505b919050565b600560009054906101000a900460ff1681565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156128eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e290614821565b60405180910390fd5b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f1747ca720b1a174a464b6513ace29b1d3190b5f632b9f34147017c81425bfde88160405161295f919061436d565b60405180910390a150565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a0357506000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15612ac85781600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015612a8e57600b600081819054906101000a900461ffff1680929190612a729061500b565b91906101000a81548161ffff021916908361ffff160217905550505b7f60edb949d7e8d750ae7d017ae10de72d8259367883f26a35009d57321779b75c8382604051612abf929190615036565b60405180910390a15b505050565b6000600b60099054906101000a900461ffff16600b60079054906101000a900461ffff16612afb91906148ad565b90506000600b60079054906101000a900461ffff1661ffff161115612bb257601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600b60079054906101000a900461ffff1661ffff1685612b7b919061471b565b612b8591906147a4565b9081150290604051600060405180830381858888f19350505050158015612bb0573d6000803e3d6000fd5b505b6000600b60099054906101000a900461ffff1661ffff161115612c6757601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600b60099054906101000a900461ffff1661ffff1685612c30919061471b565b612c3a91906147a4565b9081150290604051600060405180830381858888f19350505050158015612c65573d6000803e3d6000fd5b505b5050565b43600c541180612c7d57506000600c54145b15612cd7578060ff1643612c919190614ce4565b600c8190555064012a05f20048612ca89190614ce4565b6004612cb4919061471b565b600f81905550600a601060006101000a81548160ff021916908360ff1602179055505b50565b60008060009050600560009054906101000a900460ff1615612cff5760019050612d59565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415612d5857600190505b5b8091505090565b600043600c541115612e9b577f000000000000000000000000000000000000000000000000000000000000000063ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1684612dc5919061505f565b73ffffffffffffffffffffffffffffffffffffffff161415612df057612deb6001612c6b565b612e96565b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415612e4957612e448343600161296a565b612e95565b612e9483600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600061296a565b5b5b612f9f565b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612f2e57612f2d83600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600061296a565b5b601060009054906101000a900460ff1660ff16600c54612f4e9190614ce4565b43108015612f5e5750600f543a10155b15612f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f95906150dc565b60405180910390fd5b5b600560009054906101000a900460ff168015612ffb57506000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b8015613045575043600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b15613085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161307c90615148565b60405180910390fd5b601160149054906101000a900460ff161580156130eb5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156130f9576130f8613a66565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561316157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156131b9575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15613208576131c88383613bcc565b613207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131fe906151b4565b60405180910390fd5b5b6000613215858585613d0c565b9050600081846132259190614a95565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132729190614a95565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082111561334d5781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133099190614ce4565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133989190614ce4565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161343891906141bf565b60405180910390a36001925050509392505050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613634577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60405161362b91906141bf565b60405180910390a35b50565b6000816136625760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b81526004016136c99695949392919061520f565b60606040518083038185885af11580156136e7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061370c9190615285565b50505050505050565b6003436137229190614ce4565b600c819055506009600a61373691906146d0565b6127106009600a61374791906146d0565b6603287092778e38613759919061471b565b6005613765919061471b565b61376f91906147a4565b6137799190614ce4565b6006819055506009600a61378d91906146d0565b6127106009600a61379e91906146d0565b6603287092778e386137b0919061471b565b60056137bc919061471b565b6137c691906147a4565b6137d09190614ce4565b600781905550600c600b60026101000a81548160ff021916908360ff160217905550600c600b60036101000a81548160ff021916908360ff160217905550600c600b60046101000a81548160ff021916908360ff1602179055506001600560006101000a81548160ff021916908315150217905550565b6138508161344d565b6000600267ffffffffffffffff81111561386d5761386c6152d8565b5b60405190808252806020026020018201604052801561389b5781602001602082028036833780820191505090505b50905030816000815181106138b3576138b2615307565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561395a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061397e9190614c8e565b8160018151811061399257613991615307565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a309594939291906153f4565b600060405180830381600087803b158015613a4a57600080fd5b505af1158015613a5e573d6000803e3d6000fd5b505050505050565b6001601160146101000a81548160ff0219169083151502179055506000613a8c30611a4f565b90506008548110158015613aac5750600560009054906101000a900460ff165b15613bae576009548110613ac05760095490505b600060026103e8600b60059054906101000a900461ffff1661ffff1684613ae7919061471b565b613af191906147a4565b613afb91906147a4565b905060008183613b0b9190614a95565b90506000479050613b1b82613847565b60008147613b299190614a95565b90506000600b60059054906101000a900461ffff1661ffff161115613b905760006103e8600b60059054906101000a900461ffff1661ffff1683613b6d919061471b565b613b7791906147a4565b9050613b828561344d565b613b8e85826000613637565b505b60004790506000811115613ba857613ba781612acd565b5b50505050505b506000601160146101000a81548160ff021916908315150217905550565b60008060019050600560009054906101000a900460ff168015613c395750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613d0257600654831115613c515760009050613d01565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613cf6575060075483600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613cf49190614ce4565b115b15613d0057600090505b5b5b8091505092915050565b600080600560009054906101000a900460ff161580613d745750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80613dc85750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613dd65760009050613f0b565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613e59576064600b60029054906101000a900460ff1660ff1684613e48919061471b565b613e5291906147a4565b9050613f0a565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613edc576064600b60039054906101000a900460ff1660ff1684613ecb919061471b565b613ed591906147a4565b9050613f09565b6064600b60049054906101000a900460ff1660ff1684613efc919061471b565b613f0691906147a4565b90505b5b5b809150509392505050565b600080fd5b600063ffffffff82169050919050565b613f3481613f1b565b8114613f3f57600080fd5b50565b600081359050613f5181613f2b565b92915050565b60008060008060808587031215613f7157613f70613f16565b5b6000613f7f87828801613f42565b9450506020613f9087828801613f42565b9350506040613fa187828801613f42565b9250506060613fb287828801613f42565b91505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613fe982613fbe565b9050919050565b613ff981613fde565b811461400457600080fd5b50565b60008135905061401681613ff0565b92915050565b60006020828403121561403257614031613f16565b5b600061404084828501614007565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614083578082015181840152602081019050614068565b83811115614092576000848401525b50505050565b6000601f19601f8301169050919050565b60006140b482614049565b6140be8185614054565b93506140ce818560208601614065565b6140d781614098565b840191505092915050565b600060208201905081810360008301526140fc81846140a9565b905092915050565b6000819050919050565b61411781614104565b811461412257600080fd5b50565b6000813590506141348161410e565b92915050565b6000806040838503121561415157614150613f16565b5b600061415f85828601614007565b925050602061417085828601614125565b9150509250929050565b60008115159050919050565b61418f8161417a565b82525050565b60006020820190506141aa6000830184614186565b92915050565b6141b981614104565b82525050565b60006020820190506141d460008301846141b0565b92915050565b600061ffff82169050919050565b6141f1816141da565b81146141fc57600080fd5b50565b60008135905061420e816141e8565b92915050565b60008060006060848603121561422d5761422c613f16565b5b600061423b868287016141ff565b935050602061424c868287016141ff565b925050604061425d868287016141ff565b9150509250925092565b6000806000606084860312156142805761427f613f16565b5b600061428e86828701614007565b935050602061429f86828701614007565b92505060406142b086828701614125565b9150509250925092565b600060ff82169050919050565b6142d0816142ba565b82525050565b60006020820190506142eb60008301846142c7565b92915050565b60006020828403121561430757614306613f16565b5b600061431584828501614125565b91505092915050565b6000806040838503121561433557614334613f16565b5b600061434385828601614007565b925050602061435485828601614007565b9150509250929050565b61436781613fde565b82525050565b6000602082019050614382600083018461435e565b92915050565b6000806040838503121561439f5761439e613f16565b5b60006143ad858286016141ff565b92505060206143be858286016141ff565b9150509250929050565b6143d1816142ba565b81146143dc57600080fd5b50565b6000813590506143ee816143c8565b92915050565b60008060006060848603121561440d5761440c613f16565b5b600061441b868287016143df565b935050602061442c868287016143df565b925050604061443d868287016143df565b9150509250925092565b614450816141da565b82525050565b600060208201905061446b6000830184614447565b92915050565b600061447c82613fbe565b9050919050565b61448c81614471565b811461449757600080fd5b50565b6000813590506144a981614483565b92915050565b6000602082840312156144c5576144c4613f16565b5b60006144d38482850161449a565b91505092915050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000614538602a83614054565b9150614543826144dc565b604082019050919050565b600060208201905081810360008301526145678161452b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156145f4578086048111156145d0576145cf61456e565b5b60018516156145df5780820291505b80810290506145ed8561459d565b94506145b4565b94509492505050565b60008261460d57600190506146c9565b8161461b57600090506146c9565b8160018114614631576002811461463b5761466a565b60019150506146c9565b60ff84111561464d5761464c61456e565b5b8360020a9150848211156146645761466361456e565b5b506146c9565b5060208310610133831016604e8410600b841016171561469f5782820a90508381111561469a5761469961456e565b5b6146c9565b6146ac84848460016145aa565b925090508184048111156146c3576146c261456e565b5b81810290505b9392505050565b60006146db82614104565b91506146e6836142ba565b92506147137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846145fd565b905092915050565b600061472682614104565b915061473183614104565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561476a5761476961456e565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006147af82614104565b91506147ba83614104565b9250826147ca576147c9614775565b5b828204905092915050565b7f77616c6c6574206e6f7420626c61636b6c697374656400000000000000000000600082015250565b600061480b601683614054565b9150614816826147d5565b602082019050919050565b6000602082019050818103600083015261483a816147fe565b9050919050565b7f616c72656164792068756d616e697a6564000000000000000000000000000000600082015250565b6000614877601183614054565b915061488282614841565b602082019050919050565b600060208201905081810360008301526148a68161486a565b9050919050565b60006148b8826141da565b91506148c3836141da565b92508261ffff038211156148da576148d961456e565b5b828201905092915050565b7f53756d206d757374206265203130303000000000000000000000000000000000600082015250565b600061491b601083614054565b9150614926826148e5565b602082019050919050565b6000602082019050818103600083015261494a8161490e565b9050919050565b7f77616c6c657420616c726561647920626c61636b6c6973746564000000000000600082015250565b6000614987601a83614054565b915061499282614951565b602082019050919050565b600060208201905081810360008301526149b68161497a565b9050919050565b7f77616c6c6574206578656d70742066726f6d20626c61636b6c697374696e6700600082015250565b60006149f3601f83614054565b91506149fe826149bd565b602082019050919050565b60006020820190508181036000830152614a22816149e6565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000614a5f601083614054565b9150614a6a82614a29565b602082019050919050565b60006020820190508181036000830152614a8e81614a52565b9050919050565b6000614aa082614104565b9150614aab83614104565b925082821015614abe57614abd61456e565b5b828203905092915050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000614aff601483614054565b9150614b0a82614ac9565b602082019050919050565b60006020820190508181036000830152614b2e81614af2565b9050919050565b7f6574682063616e6e6f7420626520300000000000000000000000000000000000600082015250565b6000614b6b600f83614054565b9150614b7682614b35565b602082019050919050565b60006020820190508181036000830152614b9a81614b5e565b9050919050565b7f6e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b6000614bd7600e83614054565b9150614be282614ba1565b602082019050919050565b60006020820190508181036000830152614c0681614bca565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b6000614c43600983614054565b9150614c4e82614c0d565b602082019050919050565b60006020820190508181036000830152614c7281614c36565b9050919050565b600081519050614c8881613ff0565b92915050565b600060208284031215614ca457614ca3613f16565b5b6000614cb284828501614c79565b91505092915050565b6000604082019050614cd0600083018561435e565b614cdd602083018461435e565b9392505050565b6000614cef82614104565b9150614cfa83614104565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614d2f57614d2e61456e565b5b828201905092915050565b7f476173206c696d697420616c72656164792072656d6f76656400000000000000600082015250565b6000614d70601983614054565b9150614d7b82614d3a565b602082019050919050565b60006020820190508181036000830152614d9f81614d63565b9050919050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b6000614ddc601083614054565b9150614de782614da6565b602082019050919050565b60006020820190508181036000830152614e0b81614dcf565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b6000614e48601483614054565b9150614e5382614e12565b602082019050919050565b60006020820190508181036000830152614e7781614e3b565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b6000614eb4600983614054565b9150614ebf82614e7e565b602082019050919050565b60006020820190508181036000830152614ee381614ea7565b9050919050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000614f20600c83614054565b9150614f2b82614eea565b602082019050919050565b60006020820190508181036000830152614f4f81614f13565b9050919050565b6000614f61826142ba565b9150614f6c836142ba565b92508160ff0483118215151615614f8657614f8561456e565b5b828202905092915050565b6000819050919050565b6000614fb6614fb1614fac84613fbe565b614f91565b613fbe565b9050919050565b6000614fc882614f9b565b9050919050565b6000614fda82614fbd565b9050919050565b614fea81614fcf565b82525050565b60006020820190506150056000830184614fe1565b92915050565b6000615016826141da565b915061ffff82141561502b5761502a61456e565b5b600182019050919050565b600060408201905061504b600083018561435e565b6150586020830184614186565b9392505050565b600061506a82613fbe565b915061507583613fbe565b92508261508557615084614775565b5b828206905092915050565b7f476173207072696365206f766572206c696d6974000000000000000000000000600082015250565b60006150c6601483614054565b91506150d182615090565b602082019050919050565b600060208201905081810360008301526150f5816150b9565b9050919050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000615132600b83614054565b915061513d826150fc565b602082019050919050565b6000602082019050818103600083015261516181615125565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b600061519e601183614054565b91506151a982615168565b602082019050919050565b600060208201905081810360008301526151cd81615191565b9050919050565b6000819050919050565b60006151f96151f46151ef846151d4565b614f91565b614104565b9050919050565b615209816151de565b82525050565b600060c082019050615224600083018961435e565b61523160208301886141b0565b61523e6040830187615200565b61524b6060830186615200565b615258608083018561435e565b61526560a08301846141b0565b979650505050505050565b60008151905061527f8161410e565b92915050565b60008060006060848603121561529e5761529d613f16565b5b60006152ac86828701615270565b93505060206152bd86828701615270565b92505060406152ce86828701615270565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61536b81613fde565b82525050565b600061537d8383615362565b60208301905092915050565b6000602082019050919050565b60006153a182615336565b6153ab8185615341565b93506153b683615352565b8060005b838110156153e75781516153ce8882615371565b97506153d983615389565b9250506001810190506153ba565b5085935050505092915050565b600060a08201905061540960008301886141b0565b6154166020830187615200565b81810360408301526154288186615396565b9050615437606083018561435e565b61544460808301846141b0565b969550505050505056fea264697066735822122092c5b17ee6565d987e09b28885b1c739f6a9bf7edbb46ac143394da2414d107e64736f6c634300080b0033000000000000000000000000000000000000000000000000000000002f05ef4c000000000000000000000000000000000000000000000000000000001e090a9d

Deployed Bytecode

0x6080604052600436106102335760003560e01c80638bfd1d8e1161012e578063db861599116100ab578063eb8199481161006f578063eb819948146107f9578063ed7b6bb514610824578063f2fde38b1461083b578063fe575a8714610864578063ffb54a99146108a15761023a565b8063db86159914610726578063dca2a8b614610751578063dd62ed3e14610768578063e461c221146107a5578063e79d4160146107ce5761023a565b8063a9059cbb116100f2578063a9059cbb14610643578063aa4bde2814610680578063b1421803146106ab578063b875e50b146106d4578063cf40b248146106fd5761023a565b80638bfd1d8e146105705780638c0b5e22146105ad57806395d89b41146105d85780639ec2825114610603578063a499c2831461062c5761023a565b806323b872dd116101bc5780636969c1a4116101805780636969c1a41461048b57806370a08231146104b4578063740bf497146104f157806383dcebb11461051a578063893d20e8146105455761023a565b806323b872dd146103a457806324024efd146103e1578063313ce5671461040c5780636077595114610437578063691f224f146104605761023a565b806318160ddd1161020357806318160ddd146102f95780631c939ee9146103245780631cbbe3e41461033b578063202480411461035257806321a4d39f1461037b5761023a565b8062fffc9d1461023f5780630258ce561461026857806306fdde0314610291578063095ea7b3146102bc5761023a565b3661023a57005b600080fd5b34801561024b57600080fd5b5061026660048036038101906102619190613f57565b6108cc565b005b34801561027457600080fd5b5061028f600480360381019061028a919061401c565b6109f0565b005b34801561029d57600080fd5b506102a6610b0d565b6040516102b391906140e2565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de919061413a565b610b4a565b6040516102f09190614195565b60405180910390f35b34801561030557600080fd5b5061030e610ca9565b60405161031b91906141bf565b60405180910390f35b34801561033057600080fd5b50610339610cd0565b005b34801561034757600080fd5b50610350610d69565b005b34801561035e57600080fd5b5061037960048036038101906103749190614214565b610e47565b005b34801561038757600080fd5b506103a2600480360381019061039d919061401c565b610f8f565b005b3480156103b057600080fd5b506103cb60048036038101906103c69190614267565b61113b565b6040516103d89190614195565b60405180910390f35b3480156103ed57600080fd5b506103f6611344565b60405161040391906142d6565b60405180910390f35b34801561041857600080fd5b50610421611357565b60405161042e91906142d6565b60405180910390f35b34801561044357600080fd5b5061045e6004803603810190610459919061401c565b611360565b005b34801561046c57600080fd5b50610475611449565b60405161048291906142d6565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad91906142f1565b61145c565b005b3480156104c057600080fd5b506104db60048036038101906104d6919061401c565b611a4f565b6040516104e891906141bf565b60405180910390f35b3480156104fd57600080fd5b506105186004803603810190610513919061431e565b611a98565b005b34801561052657600080fd5b5061052f611c5c565b60405161053c91906142d6565b60405180910390f35b34801561055157600080fd5b5061055a611c6f565b604051610567919061436d565b60405180910390f35b34801561057c57600080fd5b506105976004803603810190610592919061401c565b611c98565b6040516105a491906141bf565b60405180910390f35b3480156105b957600080fd5b506105c2611ce1565b6040516105cf91906141bf565b60405180910390f35b3480156105e457600080fd5b506105ed611ce7565b6040516105fa91906140e2565b60405180910390f35b34801561060f57600080fd5b5061062a6004803603810190610625919061401c565b611d24565b005b34801561063857600080fd5b50610641611e0d565b005b34801561064f57600080fd5b5061066a6004803603810190610665919061413a565b611f41565b6040516106779190614195565b60405180910390f35b34801561068c57600080fd5b50610695611f9d565b6040516106a291906141bf565b60405180910390f35b3480156106b757600080fd5b506106d260048036038101906106cd9190614388565b611fa3565b005b3480156106e057600080fd5b506106fb60048036038101906106f6919061401c565b612167565b005b34801561070957600080fd5b50610724600480360381019061071f919061401c565b612250565b005b34801561073257600080fd5b5061073b612339565b60405161074891906141bf565b60405180910390f35b34801561075d57600080fd5b5061076661233f565b005b34801561077457600080fd5b5061078f600480360381019061078a919061431e565b612429565b60405161079c91906141bf565b60405180910390f35b3480156107b157600080fd5b506107cc60048036038101906107c791906143f4565b6124b0565b005b3480156107da57600080fd5b506107e3612604565b6040516107f09190614456565b60405180910390f35b34801561080557600080fd5b5061080e612618565b60405161081b91906141bf565b60405180910390f35b34801561083057600080fd5b5061083961261e565b005b34801561084757600080fd5b50610862600480360381019061085d91906144af565b6126f2565b005b34801561087057600080fd5b5061088b6004803603810190610886919061401c565b6127fa565b6040516108989190614195565b60405180910390f35b3480156108ad57600080fd5b506108b6612855565b6040516108c39190614195565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461095a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109519061454e565b60405180910390fd5b8263ffffffff168463ffffffff166009600a61097691906146d0565b6603287092778e38610988919061471b565b610992919061471b565b61099c91906147a4565b6008819055508063ffffffff168263ffffffff166009600a6109be91906146d0565b6603287092778e386109d0919061471b565b6109da919061471b565b6109e491906147a4565b60098190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a759061454e565b60405180910390fd5b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415610b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af890614821565b60405180910390fd5b610b0a81612868565b50565b60606040518060400160405280600a81526020017f4c75636b795368696e7500000000000000000000000000000000000000000000815250905090565b600043600c54118015610ba75750600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610bb957610bb83343600161296a565b5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c9791906141bf565b60405180910390a36001905092915050565b60006009600a610cb991906146d0565b6603287092778e38610ccb919061471b565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d559061454e565b60405180910390fd5b610d6747612acd565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dee9061454e565b60405180910390fd5b43600c5411610e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e329061488d565b60405180910390fd5b610e456000612c6b565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ed5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecc9061454e565b60405180910390fd5b6103e8818385610ee591906148ad565b610eef91906148ad565b61ffff1614610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2a90614931565b60405180910390fd5b82600b60056101000a81548161ffff021916908361ffff16021790555081600b60076101000a81548161ffff021916908361ffff16021790555080600b60096101000a81548161ffff021916908361ffff160217905550505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461101d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110149061454e565b60405180910390fd5b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461109f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110969061499d565b60405180910390fd5b600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561112c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112390614a09565b60405180910390fd5b6111388143600061296a565b50565b6000611145612cda565b611184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117b90614a75565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146113305781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112af9190614a95565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61133b848484612d60565b90509392505050565b600b60039054906101000a900460ff1681565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e59061454e565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b60029054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e19061454e565b60405180910390fd5b600560009054906101000a900460ff161561153a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153190614b15565b60405180910390fd5b6000811161157d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157490614b81565b60405180910390fd5b6001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060004790508181101561178a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178190614bed565b60405180910390fd5b600061179530611a4f565b9050600081116117da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d190614c59565b60405180910390fd5b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611849573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186d9190614c8e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191a9190614c8e565b6040518363ffffffff1660e01b8152600401611937929190614cbb565b6020604051808303816000875af1158015611956573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197a9190614c8e565b90506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611a358261344d565b611a4182856000613637565b611a49613715565b50505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1d9061454e565b60405180910390fd5b81601060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60049054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60606040518060400160405280600581526020017f4c55534849000000000000000000000000000000000000000000000000000000815250905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da99061454e565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e929061454e565b60405180910390fd5b601060009054906101000a900460ff1660ff16600c54611ebb9190614ce4565b4310611efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef390614d86565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600f819055506000601060006101000a81548160ff021916908360ff160217905550565b6000611f4b612cda565b611f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8190614a75565b60405180910390fd5b611f95338484612d60565b905092915050565b60075481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612031576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120289061454e565b60405180910390fd5b600060016103e88461ffff166009600a61204b91906146d0565b6603287092778e3861205d919061471b565b612067919061471b565b61207191906147a4565b61207b9190614ce4565b90506006548110156120c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b990614df2565b60405180910390fd5b80600681905550600060016103e88461ffff166009600a6120e391906146d0565b6603287092778e386120f5919061471b565b6120ff919061471b565b61210991906147a4565b6121139190614ce4565b905060075481101561215a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215190614e5e565b60405180910390fd5b8060078190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ec9061454e565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d59061454e565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60095481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c49061454e565b60405180910390fd5b60006123d830611a4f565b90506000811161241d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241490614eca565b60405180910390fd5b61242681613847565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461253e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125359061454e565b60405180910390fd5b600c60ff168360ff161115801561255c5750600c60ff168260ff1611155b801561256f5750600c60ff168160ff1611155b6125ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a590614f36565b60405180910390fd5b82600b60026101000a81548160ff021916908360ff16021790555081600b60036101000a81548160ff021916908360ff16021790555080600b60046101000a81548160ff021916908360ff160217905550505050565b600b60009054906101000a900461ffff1681565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a39061454e565b60405180910390fd5b6000600b60026101000a81548160ff021916908360ff160217905550600c60026126d69190614f56565b600b60036101000a81548160ff021916908360ff160217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612780576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127779061454e565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516127ef9190614ff0565b60405180910390a150565b600080600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461284b5760019050612850565b600090505b919050565b600560009054906101000a900460ff1681565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156128eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e290614821565b60405180910390fd5b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f1747ca720b1a174a464b6513ace29b1d3190b5f632b9f34147017c81425bfde88160405161295f919061436d565b60405180910390a150565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a0357506000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15612ac85781600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015612a8e57600b600081819054906101000a900461ffff1680929190612a729061500b565b91906101000a81548161ffff021916908361ffff160217905550505b7f60edb949d7e8d750ae7d017ae10de72d8259367883f26a35009d57321779b75c8382604051612abf929190615036565b60405180910390a15b505050565b6000600b60099054906101000a900461ffff16600b60079054906101000a900461ffff16612afb91906148ad565b90506000600b60079054906101000a900461ffff1661ffff161115612bb257601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600b60079054906101000a900461ffff1661ffff1685612b7b919061471b565b612b8591906147a4565b9081150290604051600060405180830381858888f19350505050158015612bb0573d6000803e3d6000fd5b505b6000600b60099054906101000a900461ffff1661ffff161115612c6757601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600b60099054906101000a900461ffff1661ffff1685612c30919061471b565b612c3a91906147a4565b9081150290604051600060405180830381858888f19350505050158015612c65573d6000803e3d6000fd5b505b5050565b43600c541180612c7d57506000600c54145b15612cd7578060ff1643612c919190614ce4565b600c8190555064012a05f20048612ca89190614ce4565b6004612cb4919061471b565b600f81905550600a601060006101000a81548160ff021916908360ff1602179055505b50565b60008060009050600560009054906101000a900460ff1615612cff5760019050612d59565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415612d5857600190505b5b8091505090565b600043600c541115612e9b577f000000000000000000000000000000000000000000000000000000001e090a9d63ffffffff167f000000000000000000000000000000000000000000000000000000002f05ef4c63ffffffff1684612dc5919061505f565b73ffffffffffffffffffffffffffffffffffffffff161415612df057612deb6001612c6b565b612e96565b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415612e4957612e448343600161296a565b612e95565b612e9483600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600061296a565b5b5b612f9f565b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612f2e57612f2d83600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600061296a565b5b601060009054906101000a900460ff1660ff16600c54612f4e9190614ce4565b43108015612f5e5750600f543a10155b15612f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f95906150dc565b60405180910390fd5b5b600560009054906101000a900460ff168015612ffb57506000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b8015613045575043600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b15613085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161307c90615148565b60405180910390fd5b601160149054906101000a900460ff161580156130eb5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156130f9576130f8613a66565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561316157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156131b9575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15613208576131c88383613bcc565b613207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131fe906151b4565b60405180910390fd5b5b6000613215858585613d0c565b9050600081846132259190614a95565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132729190614a95565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082111561334d5781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133099190614ce4565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133989190614ce4565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161343891906141bf565b60405180910390a36001925050509392505050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613634577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60405161362b91906141bf565b60405180910390a35b50565b6000816136625760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b81526004016136c99695949392919061520f565b60606040518083038185885af11580156136e7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061370c9190615285565b50505050505050565b6003436137229190614ce4565b600c819055506009600a61373691906146d0565b6127106009600a61374791906146d0565b6603287092778e38613759919061471b565b6005613765919061471b565b61376f91906147a4565b6137799190614ce4565b6006819055506009600a61378d91906146d0565b6127106009600a61379e91906146d0565b6603287092778e386137b0919061471b565b60056137bc919061471b565b6137c691906147a4565b6137d09190614ce4565b600781905550600c600b60026101000a81548160ff021916908360ff160217905550600c600b60036101000a81548160ff021916908360ff160217905550600c600b60046101000a81548160ff021916908360ff1602179055506001600560006101000a81548160ff021916908315150217905550565b6138508161344d565b6000600267ffffffffffffffff81111561386d5761386c6152d8565b5b60405190808252806020026020018201604052801561389b5781602001602082028036833780820191505090505b50905030816000815181106138b3576138b2615307565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561395a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061397e9190614c8e565b8160018151811061399257613991615307565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a309594939291906153f4565b600060405180830381600087803b158015613a4a57600080fd5b505af1158015613a5e573d6000803e3d6000fd5b505050505050565b6001601160146101000a81548160ff0219169083151502179055506000613a8c30611a4f565b90506008548110158015613aac5750600560009054906101000a900460ff165b15613bae576009548110613ac05760095490505b600060026103e8600b60059054906101000a900461ffff1661ffff1684613ae7919061471b565b613af191906147a4565b613afb91906147a4565b905060008183613b0b9190614a95565b90506000479050613b1b82613847565b60008147613b299190614a95565b90506000600b60059054906101000a900461ffff1661ffff161115613b905760006103e8600b60059054906101000a900461ffff1661ffff1683613b6d919061471b565b613b7791906147a4565b9050613b828561344d565b613b8e85826000613637565b505b60004790506000811115613ba857613ba781612acd565b5b50505050505b506000601160146101000a81548160ff021916908315150217905550565b60008060019050600560009054906101000a900460ff168015613c395750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613d0257600654831115613c515760009050613d01565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613cf6575060075483600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613cf49190614ce4565b115b15613d0057600090505b5b5b8091505092915050565b600080600560009054906101000a900460ff161580613d745750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80613dc85750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613dd65760009050613f0b565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613e59576064600b60029054906101000a900460ff1660ff1684613e48919061471b565b613e5291906147a4565b9050613f0a565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613edc576064600b60039054906101000a900460ff1660ff1684613ecb919061471b565b613ed591906147a4565b9050613f09565b6064600b60049054906101000a900460ff1660ff1684613efc919061471b565b613f0691906147a4565b90505b5b5b809150509392505050565b600080fd5b600063ffffffff82169050919050565b613f3481613f1b565b8114613f3f57600080fd5b50565b600081359050613f5181613f2b565b92915050565b60008060008060808587031215613f7157613f70613f16565b5b6000613f7f87828801613f42565b9450506020613f9087828801613f42565b9350506040613fa187828801613f42565b9250506060613fb287828801613f42565b91505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613fe982613fbe565b9050919050565b613ff981613fde565b811461400457600080fd5b50565b60008135905061401681613ff0565b92915050565b60006020828403121561403257614031613f16565b5b600061404084828501614007565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614083578082015181840152602081019050614068565b83811115614092576000848401525b50505050565b6000601f19601f8301169050919050565b60006140b482614049565b6140be8185614054565b93506140ce818560208601614065565b6140d781614098565b840191505092915050565b600060208201905081810360008301526140fc81846140a9565b905092915050565b6000819050919050565b61411781614104565b811461412257600080fd5b50565b6000813590506141348161410e565b92915050565b6000806040838503121561415157614150613f16565b5b600061415f85828601614007565b925050602061417085828601614125565b9150509250929050565b60008115159050919050565b61418f8161417a565b82525050565b60006020820190506141aa6000830184614186565b92915050565b6141b981614104565b82525050565b60006020820190506141d460008301846141b0565b92915050565b600061ffff82169050919050565b6141f1816141da565b81146141fc57600080fd5b50565b60008135905061420e816141e8565b92915050565b60008060006060848603121561422d5761422c613f16565b5b600061423b868287016141ff565b935050602061424c868287016141ff565b925050604061425d868287016141ff565b9150509250925092565b6000806000606084860312156142805761427f613f16565b5b600061428e86828701614007565b935050602061429f86828701614007565b92505060406142b086828701614125565b9150509250925092565b600060ff82169050919050565b6142d0816142ba565b82525050565b60006020820190506142eb60008301846142c7565b92915050565b60006020828403121561430757614306613f16565b5b600061431584828501614125565b91505092915050565b6000806040838503121561433557614334613f16565b5b600061434385828601614007565b925050602061435485828601614007565b9150509250929050565b61436781613fde565b82525050565b6000602082019050614382600083018461435e565b92915050565b6000806040838503121561439f5761439e613f16565b5b60006143ad858286016141ff565b92505060206143be858286016141ff565b9150509250929050565b6143d1816142ba565b81146143dc57600080fd5b50565b6000813590506143ee816143c8565b92915050565b60008060006060848603121561440d5761440c613f16565b5b600061441b868287016143df565b935050602061442c868287016143df565b925050604061443d868287016143df565b9150509250925092565b614450816141da565b82525050565b600060208201905061446b6000830184614447565b92915050565b600061447c82613fbe565b9050919050565b61448c81614471565b811461449757600080fd5b50565b6000813590506144a981614483565b92915050565b6000602082840312156144c5576144c4613f16565b5b60006144d38482850161449a565b91505092915050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000614538602a83614054565b9150614543826144dc565b604082019050919050565b600060208201905081810360008301526145678161452b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156145f4578086048111156145d0576145cf61456e565b5b60018516156145df5780820291505b80810290506145ed8561459d565b94506145b4565b94509492505050565b60008261460d57600190506146c9565b8161461b57600090506146c9565b8160018114614631576002811461463b5761466a565b60019150506146c9565b60ff84111561464d5761464c61456e565b5b8360020a9150848211156146645761466361456e565b5b506146c9565b5060208310610133831016604e8410600b841016171561469f5782820a90508381111561469a5761469961456e565b5b6146c9565b6146ac84848460016145aa565b925090508184048111156146c3576146c261456e565b5b81810290505b9392505050565b60006146db82614104565b91506146e6836142ba565b92506147137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846145fd565b905092915050565b600061472682614104565b915061473183614104565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561476a5761476961456e565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006147af82614104565b91506147ba83614104565b9250826147ca576147c9614775565b5b828204905092915050565b7f77616c6c6574206e6f7420626c61636b6c697374656400000000000000000000600082015250565b600061480b601683614054565b9150614816826147d5565b602082019050919050565b6000602082019050818103600083015261483a816147fe565b9050919050565b7f616c72656164792068756d616e697a6564000000000000000000000000000000600082015250565b6000614877601183614054565b915061488282614841565b602082019050919050565b600060208201905081810360008301526148a68161486a565b9050919050565b60006148b8826141da565b91506148c3836141da565b92508261ffff038211156148da576148d961456e565b5b828201905092915050565b7f53756d206d757374206265203130303000000000000000000000000000000000600082015250565b600061491b601083614054565b9150614926826148e5565b602082019050919050565b6000602082019050818103600083015261494a8161490e565b9050919050565b7f77616c6c657420616c726561647920626c61636b6c6973746564000000000000600082015250565b6000614987601a83614054565b915061499282614951565b602082019050919050565b600060208201905081810360008301526149b68161497a565b9050919050565b7f77616c6c6574206578656d70742066726f6d20626c61636b6c697374696e6700600082015250565b60006149f3601f83614054565b91506149fe826149bd565b602082019050919050565b60006020820190508181036000830152614a22816149e6565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000614a5f601083614054565b9150614a6a82614a29565b602082019050919050565b60006020820190508181036000830152614a8e81614a52565b9050919050565b6000614aa082614104565b9150614aab83614104565b925082821015614abe57614abd61456e565b5b828203905092915050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000614aff601483614054565b9150614b0a82614ac9565b602082019050919050565b60006020820190508181036000830152614b2e81614af2565b9050919050565b7f6574682063616e6e6f7420626520300000000000000000000000000000000000600082015250565b6000614b6b600f83614054565b9150614b7682614b35565b602082019050919050565b60006020820190508181036000830152614b9a81614b5e565b9050919050565b7f6e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b6000614bd7600e83614054565b9150614be282614ba1565b602082019050919050565b60006020820190508181036000830152614c0681614bca565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b6000614c43600983614054565b9150614c4e82614c0d565b602082019050919050565b60006020820190508181036000830152614c7281614c36565b9050919050565b600081519050614c8881613ff0565b92915050565b600060208284031215614ca457614ca3613f16565b5b6000614cb284828501614c79565b91505092915050565b6000604082019050614cd0600083018561435e565b614cdd602083018461435e565b9392505050565b6000614cef82614104565b9150614cfa83614104565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614d2f57614d2e61456e565b5b828201905092915050565b7f476173206c696d697420616c72656164792072656d6f76656400000000000000600082015250565b6000614d70601983614054565b9150614d7b82614d3a565b602082019050919050565b60006020820190508181036000830152614d9f81614d63565b9050919050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b6000614ddc601083614054565b9150614de782614da6565b602082019050919050565b60006020820190508181036000830152614e0b81614dcf565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b6000614e48601483614054565b9150614e5382614e12565b602082019050919050565b60006020820190508181036000830152614e7781614e3b565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b6000614eb4600983614054565b9150614ebf82614e7e565b602082019050919050565b60006020820190508181036000830152614ee381614ea7565b9050919050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000614f20600c83614054565b9150614f2b82614eea565b602082019050919050565b60006020820190508181036000830152614f4f81614f13565b9050919050565b6000614f61826142ba565b9150614f6c836142ba565b92508160ff0483118215151615614f8657614f8561456e565b5b828202905092915050565b6000819050919050565b6000614fb6614fb1614fac84613fbe565b614f91565b613fbe565b9050919050565b6000614fc882614f9b565b9050919050565b6000614fda82614fbd565b9050919050565b614fea81614fcf565b82525050565b60006020820190506150056000830184614fe1565b92915050565b6000615016826141da565b915061ffff82141561502b5761502a61456e565b5b600182019050919050565b600060408201905061504b600083018561435e565b6150586020830184614186565b9392505050565b600061506a82613fbe565b915061507583613fbe565b92508261508557615084614775565b5b828206905092915050565b7f476173207072696365206f766572206c696d6974000000000000000000000000600082015250565b60006150c6601483614054565b91506150d182615090565b602082019050919050565b600060208201905081810360008301526150f5816150b9565b9050919050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000615132600b83614054565b915061513d826150fc565b602082019050919050565b6000602082019050818103600083015261516181615125565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b600061519e601183614054565b91506151a982615168565b602082019050919050565b600060208201905081810360008301526151cd81615191565b9050919050565b6000819050919050565b60006151f96151f46151ef846151d4565b614f91565b614104565b9050919050565b615209816151de565b82525050565b600060c082019050615224600083018961435e565b61523160208301886141b0565b61523e6040830187615200565b61524b6060830186615200565b615258608083018561435e565b61526560a08301846141b0565b979650505050505050565b60008151905061527f8161410e565b92915050565b60008060006060848603121561529e5761529d613f16565b5b60006152ac86828701615270565b93505060206152bd86828701615270565b92505060406152ce86828701615270565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61536b81613fde565b82525050565b600061537d8383615362565b60208301905092915050565b6000602082019050919050565b60006153a182615336565b6153ab8185615341565b93506153b683615352565b8060005b838110156153e75781516153ce8882615371565b97506153d983615389565b9250506001810190506153ba565b5085935050505092915050565b600060a08201905061540960008301886141b0565b6154166020830187615200565b81810360408301526154288186615396565b9050615437606083018561435e565b61544460808301846141b0565b969550505050505056fea264697066735822122092c5b17ee6565d987e09b28885b1c739f6a9bf7edbb46ac143394da2414d107e64736f6c634300080b0033

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

000000000000000000000000000000000000000000000000000000002f05ef4c000000000000000000000000000000000000000000000000000000001e090a9d

-----Decoded View---------------
Arg [0] : smd (uint32): 788918092
Arg [1] : smr (uint32): 503909021

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000002f05ef4c
Arg [1] : 000000000000000000000000000000000000000000000000000000001e090a9d


Deployed Bytecode Sourcemap

2035:14404:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14359:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10833:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4898:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5308:394;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4637:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16343:93;;;;;;;;;;;;;:::i;:::-;;8150:121;;;;;;;;;;;;;:::i;:::-;;13327:321;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10577:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5912:363;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2786:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4728:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12372:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2761:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6280:861;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5062:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13654:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2812:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4981:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12252:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2524:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4811:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12560:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8514:198;;;;;;;;;;;;;:::i;:::-;;5707:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2552:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13928:426;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12465:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12657:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2613:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16146:192;;;;;;;;;;;;;:::i;:::-;;5170:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12756:390;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2690:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2586:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13151:169;;;;;;;;;;;;;:::i;:::-;;1224:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12093:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2497:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14359:229;1163:5;;;;;;;;;;1149:19;;:10;:19;;;1141:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14519:10:::1;14493:36;;14508:8;14493:23;;2174:1;2233:2;:13;;;;:::i;:::-;2211:19;:35;;;;:::i;:::-;14493:23;;;;:::i;:::-;:36;;;;:::i;:::-;14480:10;:49;;;;14573:10;14547:36;;14562:8;14547:23;;2174:1;2233:2;:13;;;;:::i;:::-;2211:19;:35;;;;:::i;:::-;14547:23;;;;:::i;:::-;:36;;;;:::i;:::-;14534:10;:49;;;;14359:229:::0;;;;:::o;10833:160::-;1163:5;;;;;;;;;;1149:19;;:10;:19;;;1141:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10934:1:::1;10907:15;:23;10923:6;10907:23;;;;;;;;;;;;;;;;:28;;10898:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10967:21;10981:6;10967:13;:21::i;:::-;10833:160:::0;:::o;4898:80::-;4946:13;4970:5;;;;;;;;;;;;;;;;;4963:12;;4898:80;:::o;5308:394::-;5383:4;5413:12;5399:11;;:26;:53;;;;;5430:10;:22;5441:10;5430:22;;;;;;;;;;;;;;;;;;;;;;;;;5429:23;5399:53;5394:193;;;5536:45;5550:10;5562:12;5576:4;5536:13;:45::i;:::-;5394:193;5628:6;5593:11;:23;5605:10;5593:23;;;;;;;;;;;;;;;:32;5617:7;5593:32;;;;;;;;;;;;;;;:41;;;;5665:7;5644:37;;5653:10;5644:37;;;5674:6;5644:37;;;;;;:::i;:::-;;;;;;;;5693:4;5686:11;;5308:394;;;;:::o;4637:88::-;4692:7;2174:1;2233:2;:13;;;;:::i;:::-;2211:19;:35;;;;:::i;:::-;4703:19;;4637:88;:::o;16343:93::-;1163:5;;;;;;;;;;1149:19;;:10;:19;;;1141:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;16390:40:::1;16408:21;16390:17;:40::i;:::-;16343:93::o:0;8150:121::-;1163:5;;;;;;;;;;1149:19;;:10;:19;;;1141:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8215:12:::1;8201:11;;:26;8193:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8254:12;8264:1;8254:9;:12::i;:::-;8150:121::o:0;13327:321::-;1163:5;;;;;;;;;;1149:19;;:10;:19;;;1141:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13512:4:::1;13496:12;13478:15;13463:12;:30;;;;:::i;:::-;:45;;;;:::i;:::-;:53;;;13455:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;13559:12;13543:13;;:28;;;;;;;;;;;;;;;;;;13595:15;13576:16;;:34;;;;;;;;;;;;;;;;;;13631:12;13615:13;;:28;;;;;;;;;;;;;;;;;;13327:321:::0;;;:::o;10577:251::-;1163:5;;;;;;;;;;1149:19;;:10;:19;;;1141:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10675:1:::1;10648:15;:23;10664:6;10648:23;;;;;;;;;;;;;;;;:28;10639:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10722:10;:18;10733:6;10722:18;;;;;;;;;;;;;;;;;;;;;;;;;10721:19;10712:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10781:42;10795:6;10803:12;10817:5;10781:13;:42::i;:::-;10577:251:::0;:::o;5912:363::-;6012:4;6031:19;:17;:19::i;:::-;6023:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;6115:17;6080:11;:19;6092:6;6080:19;;;;;;;;;;;;;;;:31;6100:10;6080:31;;;;;;;;;;;;;;;;:52;6076:143;;6207:6;6173:11;:19;6185:6;6173:19;;;;;;;;;;;;;;;:31;6193:10;6173:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;6139:11;:19;6151:6;6139:19;;;;;;;;;;;;;;;:31;6159:10;6139:31;;;;;;;;;;;;;;;:74;;;;6076:143;6230:40;6244:6;6252:9;6263:6;6230:13;:40::i;:::-;6223:47;;5912:363;;;;;:::o;2786:24::-;;;;;;;;;;;;;:::o;4728:80::-;4780:5;2174:1;4789:16;;4728:80;:::o;12372:90::-;1163:5;;;;;;;;;;1149:19;;:10;:19;;;1141:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12453:4:::1;12433:7;:17;12442:6;12433:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;12372:90:::0;:::o;2761:23::-;;;;;;;;;;;;;:::o;6280:861::-;1163:5;;;;;;;;;;1149:19;;:10;:19;;;1141:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6351:11:::1;;;;;;;;;;;6350:12;6342:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;6415:1;6400:12;:16;6392:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;6471:4;6443:10;:25;6462:4;6443:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;6500:4;6480:10;:17;6491:5:::0;::::1;;;;;;;;;;6480:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;6539:4;6509:10;:27;6520:15;;;;;;;;;;;6509:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;6575:4;6548:10;:24;6559:12;;;;;;;;;;;6548:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;6586:27;6616:21;6586:51;;6673:12;6650:19;:35;;6642:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6709:29;6741:24;6759:4;6741:9;:24::i;:::-;6709:56;;6802:1;6778:21;:25;6770:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;6822:18;6861:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6843:56;;;6908:4;6915:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6843:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6822:117;;6971:4;6946:10;:22;6957:10;6946:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;7005:4;6980:10;:22;6991:10;6980:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;7016:37;7031:21;7016:14;:37::i;:::-;7058:57;7072:21;7095:12;7109:5;7058:13;:57::i;:::-;7122:14;:12;:14::i;:::-;6337:804;;;6280:861:::0;:::o;5062:105::-;5128:7;5146:9;:18;5156:7;5146:18;;;;;;;;;;;;;;;;5139:25;;5062:105;;;:::o;13654:269::-;1163:5;;;;;;;;;;1149:19;;:10;:19;;;1141:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13780:18:::1;13754:15;;:45;;;;;;;;;;;;;;;;;;13827:15;13804:12;;:39;;;;;;;;;;;;;;;;;;13878:4;13848:7;:27;13856:18;13848:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;13914:4;13887:7;:24;13895:15;13887:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;13654:269:::0;;:::o;2812:22::-;;;;;;;;;;;;;:::o;4981:78::-;5033:7;5051:5;;;;;;;;;;;5044:12;;4981:78;:::o;12252:115::-;12318:7;12339:15;:23;12355:6;12339:23;;;;;;;;;;;;;;;;12332:30;;12252:115;;;:::o;2524:26::-;;;;:::o;4811:84::-;4861:13;4885:7;;;;;;;;;;;;;;;;;4878:14;;4811:84;:::o;12560:94::-;1163:5;;;;;;;;;;1149:19;;:10;:19;;;1141:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12645:4:::1;12623:9;:19;12634:6;12623:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;12560:94:::0;:::o;8514:198::-;1163:5;;;;;;;;;;1149:19;;:10;:19;;;1141:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8601:15:::1;;;;;;;;;;;8587:29;;:11;;:29;;;;:::i;:::-;8572:12;:44;8564:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;8666:17;8651:12;:32;;;;8706:1;8688:15;;:19;;;;;;;;;;;;;;;;;;8514:198::o:0;5707:200::-;5787:4;5806:19;:17;:19::i;:::-;5798:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;5858:44;5872:10;5884:9;5895:6;5858:13;:44::i;:::-;5851:51;;5707:200;;;;:::o;2552:30::-;;;;:::o;13928:426::-;1163:5;;;;;;;;;;1149:19;;:10;:19;;;1141:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14028:16:::1;14087:1;14080:4;14062:15;14047:30;;2174:1;2233:2;:13;;;;:::i;:::-;2211:19;:35;;;;:::i;:::-;14047:30;;;;:::i;:::-;:37;;;;:::i;:::-;:41;;;;:::i;:::-;14028:60;;14113:11;;14101:8;:23;;14093:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;14164:8;14150:11;:22;;;;14177:20;14244:1;14237:4;14215:19;14200:34;;2174:1;2233:2;:13;;;;:::i;:::-;2211:19;:35;;;;:::i;:::-;14200:34;;;;:::i;:::-;:41;;;;:::i;:::-;:45;;;;:::i;:::-;14177:68;;14274:15;;14258:12;:31;;14250:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14337:12;14319:15;:30;;;;14023:331;;13928:426:::0;;:::o;12465:90::-;1163:5;;;;;;;;;;1149:19;;:10;:19;;;1141:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12545:5:::1;12525:7;:17;12534:6;12525:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;12465:90:::0;:::o;12657:94::-;1163:5;;;;;;;;;;1149:19;;:10;:19;;;1141:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12741:5:::1;12719:9;:19;12730:6;12719:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;12657:94:::0;:::o;2613:25::-;;;;:::o;16146:192::-;1163:5;;;;;;;;;;1149:19;;:10;:19;;;1141:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;16195:23:::1;16221:24;16239:4;16221:9;:24::i;:::-;16195:50;;16276:1;16258:15;:19;16250:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;16296:37;16317:15;16296:20;:37::i;:::-;16190:148;16146:192::o:0;5170:133::-;5254:7;5272:11;:19;5284:6;5272:19;;;;;;;;;;;;;;;:28;5292:7;5272:28;;;;;;;;;;;;;;;;5265:35;;5170:133;;;;:::o;12756:390::-;1163:5;;;;;;;;;;1149:19;;:10;:19;;;1141:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;2754:2:::1;12862:24;;:9;:24;;;;:53;;;;;2754:2;12890:25;;:10;:25;;;;12862:53;:80;;;;;2754:2;12919:23;;:8;:23;;;;12862:80;12854:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;13078:9;13065:10;;:22;;;;;;;;;;;;;;;;;;13106:10;13092:11;;:24;;;;;;;;;;;;;;;;;;13133:8;13121:9;;:20;;;;;;;;;;;;;;;;;;12756:390:::0;;;:::o;2690:31::-;;;;;;;;;;;;;:::o;2586:25::-;;;;:::o;13151:169::-;1163:5;;;;;;;;;;1149:19;;:10;:19;;;1141:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13280:1:::1;13267:10;;:14;;;;;;;;;;;;;;;;;;2754:2;13300:1;:15;;;;:::i;:::-;13286:11;;:29;;;;;;;;;;;;;;;;;;13151:169::o:0;1224:130::-;1163:5;;;;;;;;;;1149:19;;:10;:19;;;1141:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;1306:8:::1;1298:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;1321:30;1342:8;1321:30;;;;;;:::i;:::-;;;;;;;;1224:130:::0;:::o;12093:154::-;12154:4;12197:1;12170:15;:23;12186:6;12170:23;;;;;;;;;;;;;;;;:28;12165:78;;12210:4;12203:11;;;;12165:78;12235:5;12228:12;;12093:154;;;;:::o;2497:23::-;;;;;;;;;;;;;:::o;10384:188::-;10473:1;10446:15;:23;10462:6;10446:23;;;;;;;;;;;;;;;;:28;;10437:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10532:1;10506:15;:23;10522:6;10506:23;;;;;;;;;;;;;;;:27;;;;10543:24;10560:6;10543:24;;;;;;:::i;:::-;;;;;;;;10384:188;:::o;10085:294::-;10183:10;:18;10194:6;10183:18;;;;;;;;;;;;;;;;;;;;;;;;;10182:19;:51;;;;;10232:1;10205:15;:23;10221:6;10205:23;;;;;;;;;;;;;;;;:28;10182:51;10177:198;;;10269:13;10243:15;:23;10259:6;10243:23;;;;;;;;;;;;;;;:39;;;;10294:9;10289:37;;;10307:13;;:16;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;10289:37;10336:33;10351:6;10359:9;10336:33;;;;;;;:::i;:::-;;;;;;;;10177:198;10085:294;;;:::o;15820:321::-;15877:21;15920:13;;;;;;;;;;;15901:16;;;;;;;;;;;:32;;;;:::i;:::-;15877:56;;15962:1;15943:16;;;;;;;;;;;:20;;;15938:102;;;15968:15;;;;;;;;;;;:24;;:69;16022:14;15993:43;;16003:16;;;;;;;;;;;15993:26;;:7;:26;;;;:::i;:::-;:43;;;;:::i;:::-;15968:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15938:102;16065:1;16049:13;;;;;;;;;;;:17;;;16044:93;;;16071:12;;;;;;;;;;;:21;;:63;16119:14;16093:40;;16103:13;;;;;;;;;;;16093:23;;:7;:23;;;;:::i;:::-;:40;;;;:::i;:::-;16071:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16044:93;15872:269;15820:321;:::o;8276:233::-;8344:12;8330:11;;:26;:46;;;;8375:1;8360:11;;:16;8330:46;8325:180;;;8414:8;8399:23;;:12;:23;;;;:::i;:::-;8385:11;:37;;;;8464:6;8448:13;:22;;;;:::i;:::-;8443:1;:28;;;;:::i;:::-;8428:12;:43;;;;8497:2;8479:15;;:20;;;;;;;;;;;;;;;;;;8325:180;8276:233;:::o;11419:219::-;11470:4;11480:16;11499:5;11480:24;;11514:11;;;;;;;;;;;11509:101;;;11544:4;11530:18;;11509:101;;;11579:5;;;;;;;;;;11566:18;;:9;:18;;;11561:49;;;11603:4;11589:18;;11561:49;11509:101;11622:11;11615:18;;;11419:219;:::o;8719:1361::-;8811:4;8841:12;8827:11;;:26;8822:515;;;8905:4;8867:42;;8897:4;8867:34;;8883:9;8867:34;;;;:::i;:::-;:42;;;8862:233;;;8914:12;8924:1;8914:9;:12::i;:::-;8862:233;;;8971:1;8944:15;:23;8960:6;8944:23;;;;;;;;;;;;;;;;:28;8939:156;;;8977:44;8991:9;9002:12;9016:4;8977:13;:44::i;:::-;8939:156;;;9036:56;9050:9;9061:15;:23;9077:6;9061:23;;;;;;;;;;;;;;;;9086:5;9036:13;:56::i;:::-;8939:156;8862:233;8822:515;;;9144:1;9117:15;:23;9133:6;9117:23;;;;;;;;;;;;;;;;:28;9112:97;;9150:56;9164:9;9175:15;:23;9191:6;9175:23;;;;;;;;;;;;;;;;9200:5;9150:13;:56::i;:::-;9112:97;9248:15;;;;;;;;;;;9234:29;;:11;;:29;;;;:::i;:::-;9219:12;:44;:75;;;;;9282:12;;9267:11;:27;;9219:75;9214:118;;;9299:30;;;;;;;;;;:::i;:::-;;;;;;;;9214:118;8822:515;9346:11;;;;;;;;;;;:43;;;;;9388:1;9361:15;:23;9377:6;9361:23;;;;;;;;;;;;;;;;:28;;9346:43;:85;;;;;9419:12;9393:15;:23;9409:6;9393:23;;;;;;;;;;;;;;;;:38;9346:85;9341:119;;;9436:21;;;;;;;;;;:::i;:::-;;;;;;;;9341:119;9472:10;;;;;;;;;;;9471:11;:36;;;;;9486:10;:21;9497:9;9486:21;;;;;;;;;;;;;;;;;;;;;;;;;9471:36;9466:69;;;9512:20;:18;:20::i;:::-;9466:69;9564:4;9546:23;;:6;:23;;;;:53;;;;;9594:4;9573:26;;:9;:26;;;;9546:53;:72;;;;;9613:5;;;;;;;;;;9603:15;;:6;:15;;;;9546:72;9541:146;;;9631:31;9644:9;9655:6;9631:12;:31::i;:::-;9623:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9541:146;9691:18;9712:40;9726:6;9734:9;9745:6;9712:13;:40::i;:::-;9691:61;;9757:23;9792:10;9783:6;:19;;;;:::i;:::-;9757:45;;9847:6;9827:9;:17;9837:6;9827:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9807:9;:17;9817:6;9807:17;;;;;;;;;;;;;;;:46;;;;9876:1;9863:10;:14;9858:91;;;9936:10;9909:9;:24;9927:4;9909:24;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;9882:9;:24;9900:4;9882:24;;;;;;;;;;;;;;;:64;;;;9858:91;9999:15;9976:9;:20;9986:9;9976:20;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;9953:9;:20;9963:9;9953:20;;;;;;;;;;;;;;;:61;;;;10041:9;10024:35;;10033:6;10024:35;;;10052:6;10024:35;;;;;;:::i;:::-;;;;;;;;10071:4;10064:11;;;;8719:1361;;;;;:::o;7146:299::-;7265:12;7211:11;:26;7231:4;7211:26;;;;;;;;;;;;;;;:51;3474:42;7211:51;;;;;;;;;;;;;;;;:66;7206:235;;;7340:17;7286:11;:26;7306:4;7286:26;;;;;;;;;;;;;;;:51;3474:42;7286:51;;;;;;;;;;;;;;;:71;;;;3474:42;7368:67;;7385:4;7368:67;;;7417:17;7368:67;;;;;;:::i;:::-;;;;;;;;7206:235;7146:299;:::o;7450:321::-;7547:24;7595:8;7589:46;;7627:5;;;;;;;;;;7608:24;;7589:46;7639:16;;;;;;;;;;;:32;;;7679:13;7704:4;7711:12;7725:1;7728;7731:16;7749:15;7639:127;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7542:229;7450:321;;;:::o;7776:369::-;7843:1;7828:12;:16;;;;:::i;:::-;7814:11;:30;;;;2174:1;7952:2;:13;;;;:::i;:::-;7944:5;2174:1;2233:2;:13;;;;:::i;:::-;2211:19;:35;;;;:::i;:::-;7925:1;:16;;;;:::i;:::-;:24;;;;:::i;:::-;:40;;;;:::i;:::-;7907:11;:58;;;;2174:1;8016:2;:13;;;;:::i;:::-;8008:5;2174:1;2233:2;:13;;;;:::i;:::-;2211:19;:35;;;;:::i;:::-;7989:1;:16;;;;:::i;:::-;:24;;;;:::i;:::-;:40;;;;:::i;:::-;7971:15;:58;;;;2754:2;8034:10;;:24;;;;;;;;;;;;;;;;;;2754:2;8063:11;;:25;;;;;;;;;;;;;;;;;;2754:2;8093:9;;:23;;;;;;;;;;;;;;;;;;8136:4;8122:11;;:18;;;;;;;;;;;;;;;;;;7776:369::o;15483:332::-;15548:28;15563:12;15548:14;:28::i;:::-;15581:21;15619:1;15605:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15581:40;;15644:4;15626;15631:1;15626:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15664:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15654:4;15659:1;15654:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;15692:16;;;;;;;;;;;:67;;;15760:12;15773:1;15775:4;15788;15794:15;15692:118;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15543:272;15483:332;:::o;14593:885::-;3625:4;3612:10;;:17;;;;;;;;;;;;;;;;;;14648:27:::1;14678:24;14696:4;14678:9;:24::i;:::-;14648:54;;14737:10;;14714:19;:33;;:48;;;;;14751:11;;;;;;;;;;;14714:48;14709:765;;;14799:10;;14776:19;:33;14771:78;;14836:10;;14814:32;;14771:78;14854:20;14922:1;14915:4;14899:13;;;;;;;;;;;14877:35;;:19;:35;;;;:::i;:::-;:42;;;;:::i;:::-;:46;;;;:::i;:::-;14854:69;;14929:21;14975:12;14953:19;:34;;;;:::i;:::-;14929:58;;14993:19;15015:21;14993:43;;15042:35;15063:13;15042:20;:35::i;:::-;15083:19;15129:11;15105:21;:35;;;;:::i;:::-;15083:57;;15167:1;15151:13;;;;;;;;;;;:17;;;15146:189;;;15178:21;15232:4;15216:13;;;;;;;;;;;15202:27;;:11;:27;;;;:::i;:::-;:34;;;;:::i;:::-;15178:58;;15244:28;15259:12;15244:14;:28::i;:::-;15279:49;15293:12;15307:13;15322:5;15279:13;:49::i;:::-;15171:164;15146:189;15340:27;15370:21;15340:51;;15423:1;15401:19;:23;15397:72;;;15428:38;15446:19;15428:17;:38::i;:::-;15397:72;14765:709;;;;;14709:765;14643:835;3647:5:::0;3634:10;;:18;;;;;;;;;;;;;;;;;;14593:885::o;11000:414::-;11088:4;11099:21;11123:4;11099:28;;11137:11;;;;;;;;;;;:36;;;;;11153:9;:20;11163:9;11153:20;;;;;;;;;;;;;;;;;;;;;;;;;11152:21;11137:36;11132:250;;;11204:11;;11187:14;:28;11182:195;;;11239:5;11220:24;;11182:195;;;11263:10;:21;11274:9;11263:21;;;;;;;;;;;;;;;;;;;;;;;;;11262:22;:83;;;;;11329:15;;11312:14;11289:9;:20;11299:9;11289:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;:55;11262:83;11257:120;;;11369:5;11350:24;;11257:120;11182:195;11132:250;11393:16;11386:23;;;11000:414;;;;:::o;11643:445::-;11740:7;11754:17;11782:11;;;;;;;;;;;11781:12;:31;;;;11797:7;:15;11805:6;11797:15;;;;;;;;;;;;;;;;;;;;;;;;;11781:31;:53;;;;11816:7;:18;11824:9;11816:18;;;;;;;;;;;;;;;;;;;;;;;;;11781:53;11776:287;;;11851:1;11839:13;;11776:287;;;11869:10;:18;11880:6;11869:18;;;;;;;;;;;;;;;;;;;;;;;;;11864:199;;;11926:3;11913:10;;;;;;;;;;;11904:19;;:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;11892:37;;11864:199;;;11946:10;:21;11957:9;11946:21;;;;;;;;;;;;;;;;;;;;;;;;;11941:122;;;12007:3;11993:11;;;;;;;;;;;11984:20;;:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;11972:38;;11941:122;;;12057:3;12045:9;;;;;;;;;;;12036:18;;:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;12024:36;;11941:122;11864:199;11776:287;12074:9;12067:16;;;11643:445;;;;;:::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:126::-;1502:7;1542:42;1535:5;1531:54;1520:65;;1465:126;;;:::o;1597:96::-;1634:7;1663:24;1681:5;1663:24;:::i;:::-;1652:35;;1597:96;;;:::o;1699:122::-;1772:24;1790:5;1772:24;:::i;:::-;1765:5;1762:35;1752:63;;1811:1;1808;1801:12;1752:63;1699:122;:::o;1827:139::-;1873:5;1911:6;1898:20;1889:29;;1927:33;1954:5;1927:33;:::i;:::-;1827:139;;;;:::o;1972:329::-;2031:6;2080:2;2068:9;2059:7;2055:23;2051:32;2048:119;;;2086:79;;:::i;:::-;2048:119;2206:1;2231:53;2276:7;2267:6;2256:9;2252:22;2231:53;:::i;:::-;2221:63;;2177:117;1972:329;;;;:::o;2307:99::-;2359:6;2393:5;2387:12;2377:22;;2307:99;;;:::o;2412:169::-;2496:11;2530:6;2525:3;2518:19;2570:4;2565:3;2561:14;2546:29;;2412:169;;;;:::o;2587:307::-;2655:1;2665:113;2679:6;2676:1;2673:13;2665:113;;;2764:1;2759:3;2755:11;2749:18;2745:1;2740:3;2736:11;2729:39;2701:2;2698:1;2694:10;2689:15;;2665:113;;;2796:6;2793:1;2790:13;2787:101;;;2876:1;2867:6;2862:3;2858:16;2851:27;2787:101;2636:258;2587:307;;;:::o;2900:102::-;2941:6;2992:2;2988:7;2983:2;2976:5;2972:14;2968:28;2958:38;;2900:102;;;:::o;3008:364::-;3096:3;3124:39;3157:5;3124:39;:::i;:::-;3179:71;3243:6;3238:3;3179:71;:::i;:::-;3172:78;;3259:52;3304:6;3299:3;3292:4;3285:5;3281:16;3259:52;:::i;:::-;3336:29;3358:6;3336:29;:::i;:::-;3331:3;3327:39;3320:46;;3100:272;3008:364;;;;:::o;3378:313::-;3491:4;3529:2;3518:9;3514:18;3506:26;;3578:9;3572:4;3568:20;3564:1;3553:9;3549:17;3542:47;3606:78;3679:4;3670:6;3606:78;:::i;:::-;3598:86;;3378:313;;;;:::o;3697:77::-;3734:7;3763:5;3752:16;;3697:77;;;:::o;3780:122::-;3853:24;3871:5;3853:24;:::i;:::-;3846:5;3843:35;3833:63;;3892:1;3889;3882:12;3833:63;3780:122;:::o;3908:139::-;3954:5;3992:6;3979:20;3970:29;;4008:33;4035:5;4008:33;:::i;:::-;3908:139;;;;:::o;4053:474::-;4121:6;4129;4178:2;4166:9;4157:7;4153:23;4149:32;4146:119;;;4184:79;;:::i;:::-;4146:119;4304:1;4329:53;4374:7;4365:6;4354:9;4350:22;4329:53;:::i;:::-;4319:63;;4275:117;4431:2;4457:53;4502:7;4493:6;4482:9;4478:22;4457:53;:::i;:::-;4447:63;;4402:118;4053:474;;;;;:::o;4533:90::-;4567:7;4610:5;4603:13;4596:21;4585:32;;4533:90;;;:::o;4629:109::-;4710:21;4725:5;4710:21;:::i;:::-;4705:3;4698:34;4629:109;;:::o;4744:210::-;4831:4;4869:2;4858:9;4854:18;4846:26;;4882:65;4944:1;4933:9;4929:17;4920:6;4882:65;:::i;:::-;4744:210;;;;:::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:89::-;5348:7;5388:6;5381:5;5377:18;5366:29;;5312:89;;;:::o;5407:120::-;5479:23;5496:5;5479:23;:::i;:::-;5472:5;5469:34;5459:62;;5517:1;5514;5507:12;5459:62;5407:120;:::o;5533:137::-;5578:5;5616:6;5603:20;5594:29;;5632:32;5658:5;5632:32;:::i;:::-;5533:137;;;;:::o;5676:613::-;5750:6;5758;5766;5815:2;5803:9;5794:7;5790:23;5786:32;5783:119;;;5821:79;;:::i;:::-;5783:119;5941:1;5966:52;6010:7;6001:6;5990:9;5986:22;5966:52;:::i;:::-;5956:62;;5912:116;6067:2;6093:52;6137:7;6128:6;6117:9;6113:22;6093:52;:::i;:::-;6083:62;;6038:117;6194:2;6220:52;6264:7;6255:6;6244:9;6240:22;6220:52;:::i;:::-;6210:62;;6165:117;5676:613;;;;;:::o;6295:619::-;6372:6;6380;6388;6437:2;6425:9;6416:7;6412:23;6408:32;6405:119;;;6443:79;;:::i;:::-;6405:119;6563:1;6588:53;6633:7;6624:6;6613:9;6609:22;6588:53;:::i;:::-;6578:63;;6534:117;6690:2;6716:53;6761:7;6752:6;6741:9;6737:22;6716:53;:::i;:::-;6706:63;;6661:118;6818:2;6844:53;6889:7;6880:6;6869:9;6865:22;6844:53;:::i;:::-;6834:63;;6789:118;6295:619;;;;;:::o;6920:86::-;6955:7;6995:4;6988:5;6984:16;6973:27;;6920:86;;;:::o;7012:112::-;7095:22;7111:5;7095:22;:::i;:::-;7090:3;7083:35;7012:112;;:::o;7130:214::-;7219:4;7257:2;7246:9;7242:18;7234:26;;7270:67;7334:1;7323:9;7319:17;7310:6;7270:67;:::i;:::-;7130:214;;;;:::o;7350:329::-;7409:6;7458:2;7446:9;7437:7;7433:23;7429:32;7426:119;;;7464:79;;:::i;:::-;7426:119;7584:1;7609:53;7654:7;7645:6;7634:9;7630:22;7609:53;:::i;:::-;7599:63;;7555:117;7350:329;;;;:::o;7685:474::-;7753:6;7761;7810:2;7798:9;7789:7;7785:23;7781:32;7778:119;;;7816:79;;:::i;:::-;7778:119;7936:1;7961:53;8006:7;7997:6;7986:9;7982:22;7961:53;:::i;:::-;7951:63;;7907:117;8063:2;8089:53;8134:7;8125:6;8114:9;8110:22;8089:53;:::i;:::-;8079:63;;8034:118;7685:474;;;;;:::o;8165:118::-;8252:24;8270:5;8252:24;:::i;:::-;8247:3;8240:37;8165:118;;:::o;8289:222::-;8382:4;8420:2;8409:9;8405:18;8397:26;;8433:71;8501:1;8490:9;8486:17;8477:6;8433:71;:::i;:::-;8289:222;;;;:::o;8517:470::-;8583:6;8591;8640:2;8628:9;8619:7;8615:23;8611:32;8608:119;;;8646:79;;:::i;:::-;8608:119;8766:1;8791:52;8835:7;8826:6;8815:9;8811:22;8791:52;:::i;:::-;8781:62;;8737:116;8892:2;8918:52;8962:7;8953:6;8942:9;8938:22;8918:52;:::i;:::-;8908:62;;8863:117;8517:470;;;;;:::o;8993:118::-;9064:22;9080:5;9064:22;:::i;:::-;9057:5;9054:33;9044:61;;9101:1;9098;9091:12;9044:61;8993:118;:::o;9117:135::-;9161:5;9199:6;9186:20;9177:29;;9215:31;9240:5;9215:31;:::i;:::-;9117:135;;;;:::o;9258:607::-;9329:6;9337;9345;9394:2;9382:9;9373:7;9369:23;9365:32;9362:119;;;9400:79;;:::i;:::-;9362:119;9520:1;9545:51;9588:7;9579:6;9568:9;9564:22;9545:51;:::i;:::-;9535:61;;9491:115;9645:2;9671:51;9714:7;9705:6;9694:9;9690:22;9671:51;:::i;:::-;9661:61;;9616:116;9771:2;9797:51;9840:7;9831:6;9820:9;9816:22;9797:51;:::i;:::-;9787:61;;9742:116;9258:607;;;;;:::o;9871:115::-;9956:23;9973:5;9956:23;:::i;:::-;9951:3;9944:36;9871:115;;:::o;9992:218::-;10083:4;10121:2;10110:9;10106:18;10098:26;;10134:69;10200:1;10189:9;10185:17;10176:6;10134:69;:::i;:::-;9992:218;;;;:::o;10216:104::-;10261:7;10290:24;10308:5;10290:24;:::i;:::-;10279:35;;10216:104;;;:::o;10326:138::-;10407:32;10433:5;10407:32;:::i;:::-;10400:5;10397:43;10387:71;;10454:1;10451;10444:12;10387:71;10326:138;:::o;10470:155::-;10524:5;10562:6;10549:20;10540:29;;10578:41;10613:5;10578:41;:::i;:::-;10470:155;;;;:::o;10631:345::-;10698:6;10747:2;10735:9;10726:7;10722:23;10718:32;10715:119;;;10753:79;;:::i;:::-;10715:119;10873:1;10898:61;10951:7;10942:6;10931:9;10927:22;10898:61;:::i;:::-;10888:71;;10844:125;10631:345;;;;:::o;10982:229::-;11122:34;11118:1;11110:6;11106:14;11099:58;11191:12;11186:2;11178:6;11174:15;11167:37;10982:229;:::o;11217:366::-;11359:3;11380:67;11444:2;11439:3;11380:67;:::i;:::-;11373:74;;11456:93;11545:3;11456:93;:::i;:::-;11574:2;11569:3;11565:12;11558:19;;11217:366;;;:::o;11589:419::-;11755:4;11793:2;11782:9;11778:18;11770:26;;11842:9;11836:4;11832:20;11828:1;11817:9;11813:17;11806:47;11870:131;11996:4;11870:131;:::i;:::-;11862:139;;11589:419;;;:::o;12014:180::-;12062:77;12059:1;12052:88;12159:4;12156:1;12149:15;12183:4;12180:1;12173:15;12200:102;12242:8;12289:5;12286:1;12282:13;12261:34;;12200:102;;;:::o;12308:848::-;12369:5;12376:4;12400:6;12391:15;;12424:5;12415:14;;12438:712;12459:1;12449:8;12446:15;12438:712;;;12554:4;12549:3;12545:14;12539:4;12536:24;12533:50;;;12563:18;;:::i;:::-;12533:50;12613:1;12603:8;12599:16;12596:451;;;13028:4;13021:5;13017:16;13008:25;;12596:451;13078:4;13072;13068:15;13060:23;;13108:32;13131:8;13108:32;:::i;:::-;13096:44;;12438:712;;;12308:848;;;;;;;:::o;13162:1073::-;13216:5;13407:8;13397:40;;13428:1;13419:10;;13430:5;;13397:40;13456:4;13446:36;;13473:1;13464:10;;13475:5;;13446:36;13542:4;13590:1;13585:27;;;;13626:1;13621:191;;;;13535:277;;13585:27;13603:1;13594:10;;13605:5;;;13621:191;13666:3;13656:8;13653:17;13650:43;;;13673:18;;:::i;:::-;13650:43;13722:8;13719:1;13715:16;13706:25;;13757:3;13750:5;13747:14;13744:40;;;13764:18;;:::i;:::-;13744:40;13797:5;;;13535:277;;13921:2;13911:8;13908:16;13902:3;13896:4;13893:13;13889:36;13871:2;13861:8;13858:16;13853:2;13847:4;13844:12;13840:35;13824:111;13821:246;;;13977:8;13971:4;13967:19;13958:28;;14012:3;14005:5;14002:14;13999:40;;;14019:18;;:::i;:::-;13999:40;14052:5;;13821:246;14092:42;14130:3;14120:8;14114:4;14111:1;14092:42;:::i;:::-;14077:57;;;;14166:4;14161:3;14157:14;14150:5;14147:25;14144:51;;;14175:18;;:::i;:::-;14144:51;14224:4;14217:5;14213:16;14204:25;;13162:1073;;;;;;:::o;14241:281::-;14299:5;14323:23;14341:4;14323:23;:::i;:::-;14315:31;;14367:25;14383:8;14367:25;:::i;:::-;14355:37;;14411:104;14448:66;14438:8;14432:4;14411:104;:::i;:::-;14402:113;;14241:281;;;;:::o;14528:348::-;14568:7;14591:20;14609:1;14591:20;:::i;:::-;14586:25;;14625:20;14643:1;14625:20;:::i;:::-;14620:25;;14813:1;14745:66;14741:74;14738:1;14735:81;14730:1;14723:9;14716:17;14712:105;14709:131;;;14820:18;;:::i;:::-;14709:131;14868:1;14865;14861:9;14850:20;;14528:348;;;;:::o;14882:180::-;14930:77;14927:1;14920:88;15027:4;15024:1;15017:15;15051:4;15048:1;15041:15;15068:185;15108:1;15125:20;15143:1;15125:20;:::i;:::-;15120:25;;15159:20;15177:1;15159:20;:::i;:::-;15154:25;;15198:1;15188:35;;15203:18;;:::i;:::-;15188:35;15245:1;15242;15238:9;15233:14;;15068:185;;;;:::o;15259:172::-;15399:24;15395:1;15387:6;15383:14;15376:48;15259:172;:::o;15437:366::-;15579:3;15600:67;15664:2;15659:3;15600:67;:::i;:::-;15593:74;;15676:93;15765:3;15676:93;:::i;:::-;15794:2;15789:3;15785:12;15778:19;;15437:366;;;:::o;15809:419::-;15975:4;16013:2;16002:9;15998:18;15990:26;;16062:9;16056:4;16052:20;16048:1;16037:9;16033:17;16026:47;16090:131;16216:4;16090:131;:::i;:::-;16082:139;;15809:419;;;:::o;16234:167::-;16374:19;16370:1;16362:6;16358:14;16351:43;16234:167;:::o;16407:366::-;16549:3;16570:67;16634:2;16629:3;16570:67;:::i;:::-;16563:74;;16646:93;16735:3;16646:93;:::i;:::-;16764:2;16759:3;16755:12;16748:19;;16407:366;;;:::o;16779:419::-;16945:4;16983:2;16972:9;16968:18;16960:26;;17032:9;17026:4;17022:20;17018:1;17007:9;17003:17;16996:47;17060:131;17186:4;17060:131;:::i;:::-;17052:139;;16779:419;;;:::o;17204:242::-;17243:3;17262:19;17279:1;17262:19;:::i;:::-;17257:24;;17295:19;17312:1;17295:19;:::i;:::-;17290:24;;17388:1;17380:6;17376:14;17373:1;17370:21;17367:47;;;17394:18;;:::i;:::-;17367:47;17438:1;17435;17431:9;17424:16;;17204:242;;;;:::o;17452:166::-;17592:18;17588:1;17580:6;17576:14;17569:42;17452:166;:::o;17624:366::-;17766:3;17787:67;17851:2;17846:3;17787:67;:::i;:::-;17780:74;;17863:93;17952:3;17863:93;:::i;:::-;17981:2;17976:3;17972:12;17965:19;;17624:366;;;:::o;17996:419::-;18162:4;18200:2;18189:9;18185:18;18177:26;;18249:9;18243:4;18239:20;18235:1;18224:9;18220:17;18213:47;18277:131;18403:4;18277:131;:::i;:::-;18269:139;;17996:419;;;:::o;18421:176::-;18561:28;18557:1;18549:6;18545:14;18538:52;18421:176;:::o;18603:366::-;18745:3;18766:67;18830:2;18825:3;18766:67;:::i;:::-;18759:74;;18842:93;18931:3;18842:93;:::i;:::-;18960:2;18955:3;18951:12;18944:19;;18603:366;;;:::o;18975:419::-;19141:4;19179:2;19168:9;19164:18;19156:26;;19228:9;19222:4;19218:20;19214:1;19203:9;19199:17;19192:47;19256:131;19382:4;19256:131;:::i;:::-;19248:139;;18975:419;;;:::o;19400:181::-;19540:33;19536:1;19528:6;19524:14;19517:57;19400:181;:::o;19587:366::-;19729:3;19750:67;19814:2;19809:3;19750:67;:::i;:::-;19743:74;;19826:93;19915:3;19826:93;:::i;:::-;19944:2;19939:3;19935:12;19928:19;;19587:366;;;:::o;19959:419::-;20125:4;20163:2;20152:9;20148:18;20140:26;;20212:9;20206:4;20202:20;20198:1;20187:9;20183:17;20176:47;20240:131;20366:4;20240:131;:::i;:::-;20232:139;;19959:419;;;:::o;20384:166::-;20524:18;20520:1;20512:6;20508:14;20501:42;20384:166;:::o;20556:366::-;20698:3;20719:67;20783:2;20778:3;20719:67;:::i;:::-;20712:74;;20795:93;20884:3;20795:93;:::i;:::-;20913:2;20908:3;20904:12;20897:19;;20556:366;;;:::o;20928:419::-;21094:4;21132:2;21121:9;21117:18;21109:26;;21181:9;21175:4;21171:20;21167:1;21156:9;21152:17;21145:47;21209:131;21335:4;21209:131;:::i;:::-;21201:139;;20928:419;;;:::o;21353:191::-;21393:4;21413:20;21431:1;21413:20;:::i;:::-;21408:25;;21447:20;21465:1;21447:20;:::i;:::-;21442:25;;21486:1;21483;21480:8;21477:34;;;21491:18;;:::i;:::-;21477:34;21536:1;21533;21529:9;21521:17;;21353:191;;;;:::o;21550:170::-;21690:22;21686:1;21678:6;21674:14;21667:46;21550:170;:::o;21726:366::-;21868:3;21889:67;21953:2;21948:3;21889:67;:::i;:::-;21882:74;;21965:93;22054:3;21965:93;:::i;:::-;22083:2;22078:3;22074:12;22067:19;;21726:366;;;:::o;22098:419::-;22264:4;22302:2;22291:9;22287:18;22279:26;;22351:9;22345:4;22341:20;22337:1;22326:9;22322:17;22315:47;22379:131;22505:4;22379:131;:::i;:::-;22371:139;;22098:419;;;:::o;22523:165::-;22663:17;22659:1;22651:6;22647:14;22640:41;22523:165;:::o;22694:366::-;22836:3;22857:67;22921:2;22916:3;22857:67;:::i;:::-;22850:74;;22933:93;23022:3;22933:93;:::i;:::-;23051:2;23046:3;23042:12;23035:19;;22694:366;;;:::o;23066:419::-;23232:4;23270:2;23259:9;23255:18;23247:26;;23319:9;23313:4;23309:20;23305:1;23294:9;23290:17;23283:47;23347:131;23473:4;23347:131;:::i;:::-;23339:139;;23066:419;;;:::o;23491:164::-;23631:16;23627:1;23619:6;23615:14;23608:40;23491:164;:::o;23661:366::-;23803:3;23824:67;23888:2;23883:3;23824:67;:::i;:::-;23817:74;;23900:93;23989:3;23900:93;:::i;:::-;24018:2;24013:3;24009:12;24002:19;;23661:366;;;:::o;24033:419::-;24199:4;24237:2;24226:9;24222:18;24214:26;;24286:9;24280:4;24276:20;24272:1;24261:9;24257:17;24250:47;24314:131;24440:4;24314:131;:::i;:::-;24306:139;;24033:419;;;:::o;24458:159::-;24598:11;24594:1;24586:6;24582:14;24575:35;24458:159;:::o;24623:365::-;24765:3;24786:66;24850:1;24845:3;24786:66;:::i;:::-;24779:73;;24861:93;24950:3;24861:93;:::i;:::-;24979:2;24974:3;24970:12;24963:19;;24623:365;;;:::o;24994:419::-;25160:4;25198:2;25187:9;25183:18;25175:26;;25247:9;25241:4;25237:20;25233:1;25222:9;25218:17;25211:47;25275:131;25401:4;25275:131;:::i;:::-;25267:139;;24994:419;;;:::o;25419:143::-;25476:5;25507:6;25501:13;25492:22;;25523:33;25550:5;25523:33;:::i;:::-;25419:143;;;;:::o;25568:351::-;25638:6;25687:2;25675:9;25666:7;25662:23;25658:32;25655:119;;;25693:79;;:::i;:::-;25655:119;25813:1;25838:64;25894:7;25885:6;25874:9;25870:22;25838:64;:::i;:::-;25828:74;;25784:128;25568:351;;;;:::o;25925:332::-;26046:4;26084:2;26073:9;26069:18;26061:26;;26097:71;26165:1;26154:9;26150:17;26141:6;26097:71;:::i;:::-;26178:72;26246:2;26235:9;26231:18;26222:6;26178:72;:::i;:::-;25925:332;;;;;:::o;26263:305::-;26303:3;26322:20;26340:1;26322:20;:::i;:::-;26317:25;;26356:20;26374:1;26356:20;:::i;:::-;26351:25;;26510:1;26442:66;26438:74;26435:1;26432:81;26429:107;;;26516:18;;:::i;:::-;26429:107;26560:1;26557;26553:9;26546:16;;26263:305;;;;:::o;26574:175::-;26714:27;26710:1;26702:6;26698:14;26691:51;26574:175;:::o;26755:366::-;26897:3;26918:67;26982:2;26977:3;26918:67;:::i;:::-;26911:74;;26994:93;27083:3;26994:93;:::i;:::-;27112:2;27107:3;27103:12;27096:19;;26755:366;;;:::o;27127:419::-;27293:4;27331:2;27320:9;27316:18;27308:26;;27380:9;27374:4;27370:20;27366:1;27355:9;27351:17;27344:47;27408:131;27534:4;27408:131;:::i;:::-;27400:139;;27127:419;;;:::o;27552:166::-;27692:18;27688:1;27680:6;27676:14;27669:42;27552:166;:::o;27724:366::-;27866:3;27887:67;27951:2;27946:3;27887:67;:::i;:::-;27880:74;;27963:93;28052:3;27963:93;:::i;:::-;28081:2;28076:3;28072:12;28065:19;;27724:366;;;:::o;28096:419::-;28262:4;28300:2;28289:9;28285:18;28277:26;;28349:9;28343:4;28339:20;28335:1;28324:9;28320:17;28313:47;28377:131;28503:4;28377:131;:::i;:::-;28369:139;;28096:419;;;:::o;28521:170::-;28661:22;28657:1;28649:6;28645:14;28638:46;28521:170;:::o;28697:366::-;28839:3;28860:67;28924:2;28919:3;28860:67;:::i;:::-;28853:74;;28936:93;29025:3;28936:93;:::i;:::-;29054:2;29049:3;29045:12;29038:19;;28697:366;;;:::o;29069:419::-;29235:4;29273:2;29262:9;29258:18;29250:26;;29322:9;29316:4;29312:20;29308:1;29297:9;29293:17;29286:47;29350:131;29476:4;29350:131;:::i;:::-;29342:139;;29069:419;;;:::o;29494:159::-;29634:11;29630:1;29622:6;29618:14;29611:35;29494:159;:::o;29659:365::-;29801:3;29822:66;29886:1;29881:3;29822:66;:::i;:::-;29815:73;;29897:93;29986:3;29897:93;:::i;:::-;30015:2;30010:3;30006:12;29999:19;;29659:365;;;:::o;30030:419::-;30196:4;30234:2;30223:9;30219:18;30211:26;;30283:9;30277:4;30273:20;30269:1;30258:9;30254:17;30247:47;30311:131;30437:4;30311:131;:::i;:::-;30303:139;;30030:419;;;:::o;30455:162::-;30595:14;30591:1;30583:6;30579:14;30572:38;30455:162;:::o;30623:366::-;30765:3;30786:67;30850:2;30845:3;30786:67;:::i;:::-;30779:74;;30862:93;30951:3;30862:93;:::i;:::-;30980:2;30975:3;30971:12;30964:19;;30623:366;;;:::o;30995:419::-;31161:4;31199:2;31188:9;31184:18;31176:26;;31248:9;31242:4;31238:20;31234:1;31223:9;31219:17;31212:47;31276:131;31402:4;31276:131;:::i;:::-;31268:139;;30995:419;;;:::o;31420:280::-;31458:7;31481:18;31497:1;31481:18;:::i;:::-;31476:23;;31513:18;31529:1;31513:18;:::i;:::-;31508:23;;31637:1;31631:4;31627:12;31624:1;31621:19;31616:1;31609:9;31602:17;31598:43;31595:69;;;31644:18;;:::i;:::-;31595:69;31692:1;31689;31685:9;31674:20;;31420:280;;;;:::o;31706:60::-;31734:3;31755:5;31748:12;;31706:60;;;:::o;31772:142::-;31822:9;31855:53;31873:34;31882:24;31900:5;31882:24;:::i;:::-;31873:34;:::i;:::-;31855:53;:::i;:::-;31842:66;;31772:142;;;:::o;31920:126::-;31970:9;32003:37;32034:5;32003:37;:::i;:::-;31990:50;;31920:126;;;:::o;32052:134::-;32110:9;32143:37;32174:5;32143:37;:::i;:::-;32130:50;;32052:134;;;:::o;32192:147::-;32287:45;32326:5;32287:45;:::i;:::-;32282:3;32275:58;32192:147;;:::o;32345:238::-;32446:4;32484:2;32473:9;32469:18;32461:26;;32497:79;32573:1;32562:9;32558:17;32549:6;32497:79;:::i;:::-;32345:238;;;;:::o;32589:171::-;32627:3;32650:23;32667:5;32650:23;:::i;:::-;32641:32;;32695:6;32688:5;32685:17;32682:43;;;32705:18;;:::i;:::-;32682:43;32752:1;32745:5;32741:13;32734:20;;32589:171;;;:::o;32766:320::-;32881:4;32919:2;32908:9;32904:18;32896:26;;32932:71;33000:1;32989:9;32985:17;32976:6;32932:71;:::i;:::-;33013:66;33075:2;33064:9;33060:18;33051:6;33013:66;:::i;:::-;32766:320;;;;;:::o;33092:176::-;33124:1;33141:20;33159:1;33141:20;:::i;:::-;33136:25;;33175:20;33193:1;33175:20;:::i;:::-;33170:25;;33214:1;33204:35;;33219:18;;:::i;:::-;33204:35;33260:1;33257;33253:9;33248:14;;33092:176;;;;:::o;33274:170::-;33414:22;33410:1;33402:6;33398:14;33391:46;33274:170;:::o;33450:366::-;33592:3;33613:67;33677:2;33672:3;33613:67;:::i;:::-;33606:74;;33689:93;33778:3;33689:93;:::i;:::-;33807:2;33802:3;33798:12;33791:19;;33450:366;;;:::o;33822:419::-;33988:4;34026:2;34015:9;34011:18;34003:26;;34075:9;34069:4;34065:20;34061:1;34050:9;34046:17;34039:47;34103:131;34229:4;34103:131;:::i;:::-;34095:139;;33822:419;;;:::o;34247:161::-;34387:13;34383:1;34375:6;34371:14;34364:37;34247:161;:::o;34414:366::-;34556:3;34577:67;34641:2;34636:3;34577:67;:::i;:::-;34570:74;;34653:93;34742:3;34653:93;:::i;:::-;34771:2;34766:3;34762:12;34755:19;;34414:366;;;:::o;34786:419::-;34952:4;34990:2;34979:9;34975:18;34967:26;;35039:9;35033:4;35029:20;35025:1;35014:9;35010:17;35003:47;35067:131;35193:4;35067:131;:::i;:::-;35059:139;;34786:419;;;:::o;35211:167::-;35351:19;35347:1;35339:6;35335:14;35328:43;35211:167;:::o;35384:366::-;35526:3;35547:67;35611:2;35606:3;35547:67;:::i;:::-;35540:74;;35623:93;35712:3;35623:93;:::i;:::-;35741:2;35736:3;35732:12;35725:19;;35384:366;;;:::o;35756:419::-;35922:4;35960:2;35949:9;35945:18;35937:26;;36009:9;36003:4;35999:20;35995:1;35984:9;35980:17;35973:47;36037:131;36163:4;36037:131;:::i;:::-;36029:139;;35756:419;;;:::o;36181:85::-;36226:7;36255:5;36244:16;;36181:85;;;:::o;36272:158::-;36330:9;36363:61;36381:42;36390:32;36416:5;36390:32;:::i;:::-;36381:42;:::i;:::-;36363:61;:::i;:::-;36350:74;;36272:158;;;:::o;36436:147::-;36531:45;36570:5;36531:45;:::i;:::-;36526:3;36519:58;36436:147;;:::o;36589:807::-;36838:4;36876:3;36865:9;36861:19;36853:27;;36890:71;36958:1;36947:9;36943:17;36934:6;36890:71;:::i;:::-;36971:72;37039:2;37028:9;37024:18;37015:6;36971:72;:::i;:::-;37053:80;37129:2;37118:9;37114:18;37105:6;37053:80;:::i;:::-;37143;37219:2;37208:9;37204:18;37195:6;37143:80;:::i;:::-;37233:73;37301:3;37290:9;37286:19;37277:6;37233:73;:::i;:::-;37316;37384:3;37373:9;37369:19;37360:6;37316:73;:::i;:::-;36589:807;;;;;;;;;:::o;37402:143::-;37459:5;37490:6;37484:13;37475:22;;37506:33;37533:5;37506:33;:::i;:::-;37402:143;;;;:::o;37551:663::-;37639:6;37647;37655;37704:2;37692:9;37683:7;37679:23;37675:32;37672:119;;;37710:79;;:::i;:::-;37672:119;37830:1;37855:64;37911:7;37902:6;37891:9;37887:22;37855:64;:::i;:::-;37845:74;;37801:128;37968:2;37994:64;38050:7;38041:6;38030:9;38026:22;37994:64;:::i;:::-;37984:74;;37939:129;38107:2;38133:64;38189:7;38180:6;38169:9;38165:22;38133:64;:::i;:::-;38123:74;;38078:129;37551:663;;;;;:::o;38220:180::-;38268:77;38265:1;38258:88;38365:4;38362:1;38355:15;38389:4;38386:1;38379:15;38406:180;38454:77;38451:1;38444:88;38551:4;38548:1;38541:15;38575:4;38572:1;38565:15;38592:114;38659:6;38693:5;38687:12;38677:22;;38592:114;;;:::o;38712:184::-;38811:11;38845:6;38840:3;38833:19;38885:4;38880:3;38876:14;38861:29;;38712:184;;;;:::o;38902:132::-;38969:4;38992:3;38984:11;;39022:4;39017:3;39013:14;39005:22;;38902:132;;;:::o;39040:108::-;39117:24;39135:5;39117:24;:::i;:::-;39112:3;39105:37;39040:108;;:::o;39154:179::-;39223:10;39244:46;39286:3;39278:6;39244:46;:::i;:::-;39322:4;39317:3;39313:14;39299:28;;39154:179;;;;:::o;39339:113::-;39409:4;39441;39436:3;39432:14;39424:22;;39339:113;;;:::o;39488:732::-;39607:3;39636:54;39684:5;39636:54;:::i;:::-;39706:86;39785:6;39780:3;39706:86;:::i;:::-;39699:93;;39816:56;39866:5;39816:56;:::i;:::-;39895:7;39926:1;39911:284;39936:6;39933:1;39930:13;39911:284;;;40012:6;40006:13;40039:63;40098:3;40083:13;40039:63;:::i;:::-;40032:70;;40125:60;40178:6;40125:60;:::i;:::-;40115:70;;39971:224;39958:1;39955;39951:9;39946:14;;39911:284;;;39915:14;40211:3;40204:10;;39612:608;;;39488:732;;;;:::o;40226:831::-;40489:4;40527:3;40516:9;40512:19;40504:27;;40541:71;40609:1;40598:9;40594:17;40585:6;40541:71;:::i;:::-;40622:80;40698:2;40687:9;40683:18;40674:6;40622:80;:::i;:::-;40749:9;40743:4;40739:20;40734:2;40723:9;40719:18;40712:48;40777:108;40880:4;40871:6;40777:108;:::i;:::-;40769:116;;40895:72;40963:2;40952:9;40948:18;40939:6;40895:72;:::i;:::-;40977:73;41045:3;41034:9;41030:19;41021:6;40977:73;:::i;:::-;40226:831;;;;;;;;:::o

Swarm Source

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