ETH Price: $3,143.24 (+1.47%)

Token

Storm Troop (STORM)
 

Overview

Max Total Supply

100,000,000 STORM

Holders

18

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

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:
StormTroop

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: MIT
// Telegram: t.me/StormTroopToken

pragma solidity ^0.8.7;

uint256 constant INITIAL_TAX=9;
uint256 constant TOTAL_SUPPLY=100000000;
string constant TOKEN_SYMBOL="STORM";
string constant TOKEN_NAME="Storm Troop";
uint8 constant DECIMALS=6;
uint256 constant TAX_THRESHOLD=1000000000000000000;

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);
}

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;
	address private _previousOwner;
	event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

	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);
	}

}


contract StormTroop 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;

	uint256 private constant MAX = ~uint256(0);
	uint256 private constant _tTotal = TOTAL_SUPPLY * 10**DECIMALS;
	uint256 private _rTotal = (MAX - (MAX % _tTotal));
	uint256 private _tFeeTotal;

	uint256 private _burnFee;
	uint256 private _taxFee;
	address payable private _taxWallet;
	uint256 private _maxTxAmount;


	string private constant _name = TOKEN_NAME;
	string private constant _symbol = TOKEN_SYMBOL;
	uint8 private constant _decimals = DECIMALS;

	IUniswapV2Router02 private _uniswap;
	address private _pair;
	bool private _canTrade;
	bool private _inSwap = false;
	bool private _swapEnabled = false;

	modifier lockTheSwap {
		_inSwap = true;
		_;
		_inSwap = false;
	}
	constructor () {
		_taxWallet = payable(_msgSender());
		_burnFee = 1;
		_taxFee = INITIAL_TAX;
		_uniswap = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

		_rOwned[address(this)] = _rTotal;
		_isExcludedFromFee[address(this)] = true;
		_isExcludedFromFee[_taxWallet] = true;
		_maxTxAmount=_tTotal.div(32);
		emit Transfer(address(0x0), _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 pure 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 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 _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()) {
			if (from == _pair && to != address(_uniswap) && ! _isExcludedFromFee[to] ) {
				require(amount<_maxTxAmount,"Transaction amount limited");
			}

			uint256 contractTokenBalance = balanceOf(address(this));
			if (!_inSwap && from != _pair && _swapEnabled) {
				swapTokensForEth(contractTokenBalance);
				uint256 contractETHBalance = address(this).balance;
				if(contractETHBalance >= TAX_THRESHOLD) {
					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] = _uniswap.WETH();
		_approve(address(this), address(_uniswap), tokenAmount);
		_uniswap.swapExactTokensForETHSupportingFeeOnTransferTokens(
			tokenAmount,
			0,
			path,
			address(this),
			block.timestamp
		);
	}
	modifier onlyTaxCollector() {
		require(_taxWallet == _msgSender() );
		_;
	}

	function lowerTax(uint256 newTaxRate) public onlyTaxCollector{
		require(newTaxRate<INITIAL_TAX);
		_taxFee=newTaxRate;
	}

	function removeBuyLimit() public onlyTaxCollector{
		_maxTxAmount=_tTotal;
	}

	function sendETHToFee(uint256 amount) private {
		_taxWallet.transfer(amount);
	}

	function startTrading() external onlyTaxCollector {
		require(!_canTrade,"Trading is already open");
		_approve(address(this), address(_uniswap), _tTotal);

		_pair = IUniswapV2Factory(_uniswap.factory()).createPair(address(this), _uniswap.WETH());
		_uniswap.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
		_swapEnabled = true;
		_canTrade = true;
		IERC20(_pair).approve(address(_uniswap), type(uint).max);
	}


	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 onlyTaxCollector{
		uint256 contractBalance = balanceOf(address(this));
		swapTokensForEth(contractBalance);
	}

	function manualSend() external onlyTaxCollector{
		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, _burnFee, _taxFee);
		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 _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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","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":"uint256","name":"newTaxRate","type":"uint256"}],"name":"lowerTax","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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":"pure","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"}]

60806040526006600a620000149190620005e9565b6305f5e10062000025919062000726565b6000196200003491906200080f565b60001962000043919062000787565b6005556000600c60156101000a81548160ff0219169083151502179055506000600c60166101000a81548160ff0219169083151502179055503480156200008957600080fd5b5060006200009c620003e560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200014a620003e560201b60201c565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016007819055506009600881905550737a250d5630b4cf539739df2c5dacb4c659f2488d600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200034260206006600a6200031d9190620005e9565b6305f5e1006200032e919062000726565b620003ed60201b62000e9b1790919060201c565b600a8190555062000358620003e560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006600a620003b79190620005e9565b6305f5e100620003c8919062000726565b604051620003d791906200051d565b60405180910390a3620008c3565b600033905090565b60006200043783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200043f60201b60201c565b905092915050565b6000808311829062000489576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004809190620004f9565b60405180910390fd5b50600083856200049a919062000556565b9050809150509392505050565b6000620004b4826200053a565b620004c0818562000545565b9350620004d2818560208601620007d9565b620004dd81620008a5565b840191505092915050565b620004f381620007c2565b82525050565b60006020820190508181036000830152620005158184620004a7565b905092915050565b6000602082019050620005346000830184620004e8565b92915050565b600081519050919050565b600082825260208201905092915050565b60006200056382620007c2565b91506200057083620007c2565b92508262000583576200058262000876565b5b828204905092915050565b6000808291508390505b6001851115620005e057808604811115620005b857620005b762000847565b5b6001851615620005c85780820291505b8081029050620005d885620008b6565b945062000598565b94509492505050565b6000620005f682620007c2565b91506200060383620007cc565b9250620006327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200063a565b905092915050565b6000826200064c57600190506200071f565b816200065c57600090506200071f565b81600181146200067557600281146200068057620006b6565b60019150506200071f565b60ff84111562000695576200069462000847565b5b8360020a915084821115620006af57620006ae62000847565b5b506200071f565b5060208310610133831016604e8410600b8410161715620006f05782820a905083811115620006ea57620006e962000847565b5b6200071f565b620006ff84848460016200058e565b9250905081840481111562000719576200071862000847565b5b81810290505b9392505050565b60006200073382620007c2565b91506200074083620007c2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200077c576200077b62000847565b5b828202905092915050565b60006200079482620007c2565b9150620007a183620007c2565b925082821015620007b757620007b662000847565b5b828203905092915050565b6000819050919050565b600060ff82169050919050565b60005b83811015620007f9578082015181840152602081019050620007dc565b8381111562000809576000848401525b50505050565b60006200081c82620007c2565b91506200082983620007c2565b9250826200083c576200083b62000876565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b612e6880620008d36000396000f3fe6080604052600436106100f75760003560e01c806370a082311161008a5780639e752b95116100595780639e752b95146102ed578063a9059cbb14610316578063dd62ed3e14610353578063f429389014610390576100fe565b806370a0823114610243578063715018a6146102805780638da5cb5b1461029757806395d89b41146102c2576100fe565b8063293230b8116100c6578063293230b8146101d3578063313ce567146101ea5780633e07ce5b1461021557806351bc3c851461022c576100fe565b806306fdde0314610103578063095ea7b31461012e57806318160ddd1461016b57806323b872dd14610196576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b506101186103a7565b6040516101259190612492565b60405180910390f35b34801561013a57600080fd5b5061015560048036038101906101509190612032565b6103e4565b6040516101629190612477565b60405180910390f35b34801561017757600080fd5b50610180610402565b60405161018d9190612614565b60405180910390f35b3480156101a257600080fd5b506101bd60048036038101906101b89190611fdf565b610426565b6040516101ca9190612477565b60405180910390f35b3480156101df57600080fd5b506101e86104ff565b005b3480156101f657600080fd5b506101ff6109f9565b60405161020c9190612689565b60405180910390f35b34801561022157600080fd5b5061022a610a02565b005b34801561023857600080fd5b50610241610a88565b005b34801561024f57600080fd5b5061026a60048036038101906102659190611f45565b610b02565b6040516102779190612614565b60405180910390f35b34801561028c57600080fd5b50610295610b53565b005b3480156102a357600080fd5b506102ac610ca6565b6040516102b991906123a9565b60405180910390f35b3480156102ce57600080fd5b506102d7610ccf565b6040516102e49190612492565b60405180910390f35b3480156102f957600080fd5b50610314600480360381019061030f919061209f565b610d0c565b005b34801561032257600080fd5b5061033d60048036038101906103389190612032565b610d84565b60405161034a9190612477565b60405180910390f35b34801561035f57600080fd5b5061037a60048036038101906103759190611f9f565b610da2565b6040516103879190612614565b60405180910390f35b34801561039c57600080fd5b506103a5610e29565b005b60606040518060400160405280600b81526020017f53746f726d2054726f6f70000000000000000000000000000000000000000000815250905090565b60006103f86103f1610ee5565b8484610eed565b6001905092915050565b60006006600a61041291906127d3565b6305f5e10061042191906128f1565b905090565b60006104338484846110b8565b6104f48461043f610ee5565b6104ef85604051806060016040528060288152602001612e0b60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104a5610ee5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114719092919063ffffffff16565b610eed565b600190509392505050565b610507610ee5565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461056057600080fd5b600c60149054906101000a900460ff16156105b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a790612514565b60405180910390fd5b6105f930600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006600a6105e591906127d3565b6305f5e1006105f491906128f1565b610eed565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561066157600080fd5b505afa158015610675573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106999190611f72565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561071d57600080fd5b505afa158015610731573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107559190611f72565b6040518363ffffffff1660e01b81526004016107729291906123c4565b602060405180830381600087803b15801561078c57600080fd5b505af11580156107a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c49190611f72565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061084d30610b02565b600080610858610ca6565b426040518863ffffffff1660e01b815260040161087a96959493929190612416565b6060604051808303818588803b15801561089357600080fd5b505af11580156108a7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108cc91906120cc565b5050506001600c60166101000a81548160ff0219169083151502179055506001600c60146101000a81548160ff021916908315150217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016109a49291906123ed565b602060405180830381600087803b1580156109be57600080fd5b505af11580156109d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f69190612072565b50565b60006006905090565b610a0a610ee5565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a6357600080fd5b6006600a610a7191906127d3565b6305f5e100610a8091906128f1565b600a81905550565b610a90610ee5565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae957600080fd5b6000610af430610b02565b9050610aff816114d5565b50565b6000610b4c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175d565b9050919050565b610b5b610ee5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdf90612594565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f53544f524d000000000000000000000000000000000000000000000000000000815250905090565b610d14610ee5565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6d57600080fd5b60098110610d7a57600080fd5b8060088190555050565b6000610d98610d91610ee5565b84846110b8565b6001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e31610ee5565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8a57600080fd5b6000479050610e98816117cb565b50565b6000610edd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611837565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f54906125f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc4906124f4565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110ab9190612614565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f906125d4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f906124b4565b60405180910390fd5b600081116111db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d2906125b4565b60405180910390fd5b6111e3610ca6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112515750611221610ca6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561146157600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156113015750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156113575750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156113a157600a5481106113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139790612554565b60405180910390fd5b5b60006113ac30610b02565b9050600c60159054906101000a900460ff161580156114195750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156114315750600c60169054906101000a900460ff165b1561145f5761143f816114d5565b6000479050670de0b6b3a7640000811061145d5761145c476117cb565b5b505b505b61146c83838361189a565b505050565b60008383111582906114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b09190612492565b60405180910390fd5b50600083856114c8919061294b565b9050809150509392505050565b6001600c60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561150d5761150c612aa6565b5b60405190808252806020026020018201604052801561153b5781602001602082028036833780820191505090505b509050308160008151811061155357611552612a77565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156115f557600080fd5b505afa158015611609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162d9190611f72565b8160018151811061164157611640612a77565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506116a830600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610eed565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161170c95949392919061262f565b600060405180830381600087803b15801561172657600080fd5b505af115801561173a573d6000803e3d6000fd5b50505050506000600c60156101000a81548160ff02191690831515021790555050565b60006005548211156117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b906124d4565b60405180910390fd5b60006117ae6118aa565b90506117c38184610e9b90919063ffffffff16565b915050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611833573d6000803e3d6000fd5b5050565b6000808311829061187e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118759190612492565b60405180910390fd5b506000838561188d919061274f565b9050809150509392505050565b6118a58383836118d5565b505050565b60008060006118b7611aa0565b915091506118ce8183610e9b90919063ffffffff16565b9250505090565b6000806000806000806118e787611b3b565b95509550955095509550955061194586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ba390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119da85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bed90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a2681611c4b565b611a308483611d08565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a8d9190612614565b60405180910390a3505050505050505050565b6000806000600554905060006006600a611aba91906127d3565b6305f5e100611ac991906128f1565b9050611afc6006600a611adc91906127d3565b6305f5e100611aeb91906128f1565b600554610e9b90919063ffffffff16565b821015611b2e576005546006600a611b1491906127d3565b6305f5e100611b2391906128f1565b935093505050611b37565b81819350935050505b9091565b6000806000806000806000806000611b588a600754600854611d42565b9250925092506000611b686118aa565b90506000806000611b7b8e878787611dd8565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611be583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611471565b905092915050565b6000808284611bfc91906126f9565b905083811015611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3890612534565b60405180910390fd5b8091505092915050565b6000611c556118aa565b90506000611c6c8284611e6190919063ffffffff16565b9050611cc081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bed90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611d1d82600554611ba390919063ffffffff16565b600581905550611d3881600654611bed90919063ffffffff16565b6006819055505050565b600080600080611d6e6064611d60888a611e6190919063ffffffff16565b610e9b90919063ffffffff16565b90506000611d986064611d8a888b611e6190919063ffffffff16565b610e9b90919063ffffffff16565b90506000611dc182611db3858c611ba390919063ffffffff16565b611ba390919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611df18589611e6190919063ffffffff16565b90506000611e088689611e6190919063ffffffff16565b90506000611e1f8789611e6190919063ffffffff16565b90506000611e4882611e3a8587611ba390919063ffffffff16565b611ba390919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415611e745760009050611ed6565b60008284611e8291906128f1565b9050828482611e91919061274f565b14611ed1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec890612574565b60405180910390fd5b809150505b92915050565b600081359050611eeb81612dc5565b92915050565b600081519050611f0081612dc5565b92915050565b600081519050611f1581612ddc565b92915050565b600081359050611f2a81612df3565b92915050565b600081519050611f3f81612df3565b92915050565b600060208284031215611f5b57611f5a612ad5565b5b6000611f6984828501611edc565b91505092915050565b600060208284031215611f8857611f87612ad5565b5b6000611f9684828501611ef1565b91505092915050565b60008060408385031215611fb657611fb5612ad5565b5b6000611fc485828601611edc565b9250506020611fd585828601611edc565b9150509250929050565b600080600060608486031215611ff857611ff7612ad5565b5b600061200686828701611edc565b935050602061201786828701611edc565b925050604061202886828701611f1b565b9150509250925092565b6000806040838503121561204957612048612ad5565b5b600061205785828601611edc565b925050602061206885828601611f1b565b9150509250929050565b60006020828403121561208857612087612ad5565b5b600061209684828501611f06565b91505092915050565b6000602082840312156120b5576120b4612ad5565b5b60006120c384828501611f1b565b91505092915050565b6000806000606084860312156120e5576120e4612ad5565b5b60006120f386828701611f30565b935050602061210486828701611f30565b925050604061211586828701611f30565b9150509250925092565b600061212b8383612137565b60208301905092915050565b6121408161297f565b82525050565b61214f8161297f565b82525050565b6000612160826126b4565b61216a81856126d7565b9350612175836126a4565b8060005b838110156121a657815161218d888261211f565b9750612198836126ca565b925050600181019050612179565b5085935050505092915050565b6121bc81612991565b82525050565b6121cb816129d4565b82525050565b60006121dc826126bf565b6121e681856126e8565b93506121f68185602086016129e6565b6121ff81612ada565b840191505092915050565b60006122176023836126e8565b915061222282612af8565b604082019050919050565b600061223a602a836126e8565b915061224582612b47565b604082019050919050565b600061225d6022836126e8565b915061226882612b96565b604082019050919050565b60006122806017836126e8565b915061228b82612be5565b602082019050919050565b60006122a3601b836126e8565b91506122ae82612c0e565b602082019050919050565b60006122c6601a836126e8565b91506122d182612c37565b602082019050919050565b60006122e96021836126e8565b91506122f482612c60565b604082019050919050565b600061230c6020836126e8565b915061231782612caf565b602082019050919050565b600061232f6029836126e8565b915061233a82612cd8565b604082019050919050565b60006123526025836126e8565b915061235d82612d27565b604082019050919050565b60006123756024836126e8565b915061238082612d76565b604082019050919050565b612394816129bd565b82525050565b6123a3816129c7565b82525050565b60006020820190506123be6000830184612146565b92915050565b60006040820190506123d96000830185612146565b6123e66020830184612146565b9392505050565b60006040820190506124026000830185612146565b61240f602083018461238b565b9392505050565b600060c08201905061242b6000830189612146565b612438602083018861238b565b61244560408301876121c2565b61245260608301866121c2565b61245f6080830185612146565b61246c60a083018461238b565b979650505050505050565b600060208201905061248c60008301846121b3565b92915050565b600060208201905081810360008301526124ac81846121d1565b905092915050565b600060208201905081810360008301526124cd8161220a565b9050919050565b600060208201905081810360008301526124ed8161222d565b9050919050565b6000602082019050818103600083015261250d81612250565b9050919050565b6000602082019050818103600083015261252d81612273565b9050919050565b6000602082019050818103600083015261254d81612296565b9050919050565b6000602082019050818103600083015261256d816122b9565b9050919050565b6000602082019050818103600083015261258d816122dc565b9050919050565b600060208201905081810360008301526125ad816122ff565b9050919050565b600060208201905081810360008301526125cd81612322565b9050919050565b600060208201905081810360008301526125ed81612345565b9050919050565b6000602082019050818103600083015261260d81612368565b9050919050565b6000602082019050612629600083018461238b565b92915050565b600060a082019050612644600083018861238b565b61265160208301876121c2565b81810360408301526126638186612155565b90506126726060830185612146565b61267f608083018461238b565b9695505050505050565b600060208201905061269e600083018461239a565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612704826129bd565b915061270f836129bd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561274457612743612a19565b5b828201905092915050565b600061275a826129bd565b9150612765836129bd565b92508261277557612774612a48565b5b828204905092915050565b6000808291508390505b60018511156127ca578086048111156127a6576127a5612a19565b5b60018516156127b55780820291505b80810290506127c385612aeb565b945061278a565b94509492505050565b60006127de826129bd565b91506127e9836129c7565b92506128167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461281e565b905092915050565b60008261282e57600190506128ea565b8161283c57600090506128ea565b8160018114612852576002811461285c5761288b565b60019150506128ea565b60ff84111561286e5761286d612a19565b5b8360020a91508482111561288557612884612a19565b5b506128ea565b5060208310610133831016604e8410600b84101617156128c05782820a9050838111156128bb576128ba612a19565b5b6128ea565b6128cd8484846001612780565b925090508184048111156128e4576128e3612a19565b5b81810290505b9392505050565b60006128fc826129bd565b9150612907836129bd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156129405761293f612a19565b5b828202905092915050565b6000612956826129bd565b9150612961836129bd565b92508282101561297457612973612a19565b5b828203905092915050565b600061298a8261299d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006129df826129bd565b9050919050565b60005b83811015612a045780820151818401526020810190506129e9565b83811115612a13576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e73616374696f6e20616d6f756e74206c696d69746564000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b612dce8161297f565b8114612dd957600080fd5b50565b612de581612991565b8114612df057600080fd5b50565b612dfc816129bd565b8114612e0757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f17f2ff60cf4906dd18596e83a0703fbbba2366c13e5d0842257af9b9c0dd30964736f6c63430008070033

Deployed Bytecode

0x6080604052600436106100f75760003560e01c806370a082311161008a5780639e752b95116100595780639e752b95146102ed578063a9059cbb14610316578063dd62ed3e14610353578063f429389014610390576100fe565b806370a0823114610243578063715018a6146102805780638da5cb5b1461029757806395d89b41146102c2576100fe565b8063293230b8116100c6578063293230b8146101d3578063313ce567146101ea5780633e07ce5b1461021557806351bc3c851461022c576100fe565b806306fdde0314610103578063095ea7b31461012e57806318160ddd1461016b57806323b872dd14610196576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b506101186103a7565b6040516101259190612492565b60405180910390f35b34801561013a57600080fd5b5061015560048036038101906101509190612032565b6103e4565b6040516101629190612477565b60405180910390f35b34801561017757600080fd5b50610180610402565b60405161018d9190612614565b60405180910390f35b3480156101a257600080fd5b506101bd60048036038101906101b89190611fdf565b610426565b6040516101ca9190612477565b60405180910390f35b3480156101df57600080fd5b506101e86104ff565b005b3480156101f657600080fd5b506101ff6109f9565b60405161020c9190612689565b60405180910390f35b34801561022157600080fd5b5061022a610a02565b005b34801561023857600080fd5b50610241610a88565b005b34801561024f57600080fd5b5061026a60048036038101906102659190611f45565b610b02565b6040516102779190612614565b60405180910390f35b34801561028c57600080fd5b50610295610b53565b005b3480156102a357600080fd5b506102ac610ca6565b6040516102b991906123a9565b60405180910390f35b3480156102ce57600080fd5b506102d7610ccf565b6040516102e49190612492565b60405180910390f35b3480156102f957600080fd5b50610314600480360381019061030f919061209f565b610d0c565b005b34801561032257600080fd5b5061033d60048036038101906103389190612032565b610d84565b60405161034a9190612477565b60405180910390f35b34801561035f57600080fd5b5061037a60048036038101906103759190611f9f565b610da2565b6040516103879190612614565b60405180910390f35b34801561039c57600080fd5b506103a5610e29565b005b60606040518060400160405280600b81526020017f53746f726d2054726f6f70000000000000000000000000000000000000000000815250905090565b60006103f86103f1610ee5565b8484610eed565b6001905092915050565b60006006600a61041291906127d3565b6305f5e10061042191906128f1565b905090565b60006104338484846110b8565b6104f48461043f610ee5565b6104ef85604051806060016040528060288152602001612e0b60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104a5610ee5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114719092919063ffffffff16565b610eed565b600190509392505050565b610507610ee5565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461056057600080fd5b600c60149054906101000a900460ff16156105b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a790612514565b60405180910390fd5b6105f930600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006600a6105e591906127d3565b6305f5e1006105f491906128f1565b610eed565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561066157600080fd5b505afa158015610675573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106999190611f72565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561071d57600080fd5b505afa158015610731573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107559190611f72565b6040518363ffffffff1660e01b81526004016107729291906123c4565b602060405180830381600087803b15801561078c57600080fd5b505af11580156107a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c49190611f72565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061084d30610b02565b600080610858610ca6565b426040518863ffffffff1660e01b815260040161087a96959493929190612416565b6060604051808303818588803b15801561089357600080fd5b505af11580156108a7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108cc91906120cc565b5050506001600c60166101000a81548160ff0219169083151502179055506001600c60146101000a81548160ff021916908315150217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016109a49291906123ed565b602060405180830381600087803b1580156109be57600080fd5b505af11580156109d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f69190612072565b50565b60006006905090565b610a0a610ee5565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a6357600080fd5b6006600a610a7191906127d3565b6305f5e100610a8091906128f1565b600a81905550565b610a90610ee5565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae957600080fd5b6000610af430610b02565b9050610aff816114d5565b50565b6000610b4c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175d565b9050919050565b610b5b610ee5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdf90612594565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f53544f524d000000000000000000000000000000000000000000000000000000815250905090565b610d14610ee5565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6d57600080fd5b60098110610d7a57600080fd5b8060088190555050565b6000610d98610d91610ee5565b84846110b8565b6001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e31610ee5565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8a57600080fd5b6000479050610e98816117cb565b50565b6000610edd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611837565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f54906125f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc4906124f4565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110ab9190612614565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f906125d4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f906124b4565b60405180910390fd5b600081116111db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d2906125b4565b60405180910390fd5b6111e3610ca6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112515750611221610ca6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561146157600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156113015750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156113575750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156113a157600a5481106113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139790612554565b60405180910390fd5b5b60006113ac30610b02565b9050600c60159054906101000a900460ff161580156114195750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156114315750600c60169054906101000a900460ff165b1561145f5761143f816114d5565b6000479050670de0b6b3a7640000811061145d5761145c476117cb565b5b505b505b61146c83838361189a565b505050565b60008383111582906114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b09190612492565b60405180910390fd5b50600083856114c8919061294b565b9050809150509392505050565b6001600c60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561150d5761150c612aa6565b5b60405190808252806020026020018201604052801561153b5781602001602082028036833780820191505090505b509050308160008151811061155357611552612a77565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156115f557600080fd5b505afa158015611609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162d9190611f72565b8160018151811061164157611640612a77565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506116a830600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610eed565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161170c95949392919061262f565b600060405180830381600087803b15801561172657600080fd5b505af115801561173a573d6000803e3d6000fd5b50505050506000600c60156101000a81548160ff02191690831515021790555050565b60006005548211156117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b906124d4565b60405180910390fd5b60006117ae6118aa565b90506117c38184610e9b90919063ffffffff16565b915050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611833573d6000803e3d6000fd5b5050565b6000808311829061187e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118759190612492565b60405180910390fd5b506000838561188d919061274f565b9050809150509392505050565b6118a58383836118d5565b505050565b60008060006118b7611aa0565b915091506118ce8183610e9b90919063ffffffff16565b9250505090565b6000806000806000806118e787611b3b565b95509550955095509550955061194586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ba390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119da85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bed90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a2681611c4b565b611a308483611d08565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a8d9190612614565b60405180910390a3505050505050505050565b6000806000600554905060006006600a611aba91906127d3565b6305f5e100611ac991906128f1565b9050611afc6006600a611adc91906127d3565b6305f5e100611aeb91906128f1565b600554610e9b90919063ffffffff16565b821015611b2e576005546006600a611b1491906127d3565b6305f5e100611b2391906128f1565b935093505050611b37565b81819350935050505b9091565b6000806000806000806000806000611b588a600754600854611d42565b9250925092506000611b686118aa565b90506000806000611b7b8e878787611dd8565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611be583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611471565b905092915050565b6000808284611bfc91906126f9565b905083811015611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3890612534565b60405180910390fd5b8091505092915050565b6000611c556118aa565b90506000611c6c8284611e6190919063ffffffff16565b9050611cc081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bed90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611d1d82600554611ba390919063ffffffff16565b600581905550611d3881600654611bed90919063ffffffff16565b6006819055505050565b600080600080611d6e6064611d60888a611e6190919063ffffffff16565b610e9b90919063ffffffff16565b90506000611d986064611d8a888b611e6190919063ffffffff16565b610e9b90919063ffffffff16565b90506000611dc182611db3858c611ba390919063ffffffff16565b611ba390919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611df18589611e6190919063ffffffff16565b90506000611e088689611e6190919063ffffffff16565b90506000611e1f8789611e6190919063ffffffff16565b90506000611e4882611e3a8587611ba390919063ffffffff16565b611ba390919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415611e745760009050611ed6565b60008284611e8291906128f1565b9050828482611e91919061274f565b14611ed1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec890612574565b60405180910390fd5b809150505b92915050565b600081359050611eeb81612dc5565b92915050565b600081519050611f0081612dc5565b92915050565b600081519050611f1581612ddc565b92915050565b600081359050611f2a81612df3565b92915050565b600081519050611f3f81612df3565b92915050565b600060208284031215611f5b57611f5a612ad5565b5b6000611f6984828501611edc565b91505092915050565b600060208284031215611f8857611f87612ad5565b5b6000611f9684828501611ef1565b91505092915050565b60008060408385031215611fb657611fb5612ad5565b5b6000611fc485828601611edc565b9250506020611fd585828601611edc565b9150509250929050565b600080600060608486031215611ff857611ff7612ad5565b5b600061200686828701611edc565b935050602061201786828701611edc565b925050604061202886828701611f1b565b9150509250925092565b6000806040838503121561204957612048612ad5565b5b600061205785828601611edc565b925050602061206885828601611f1b565b9150509250929050565b60006020828403121561208857612087612ad5565b5b600061209684828501611f06565b91505092915050565b6000602082840312156120b5576120b4612ad5565b5b60006120c384828501611f1b565b91505092915050565b6000806000606084860312156120e5576120e4612ad5565b5b60006120f386828701611f30565b935050602061210486828701611f30565b925050604061211586828701611f30565b9150509250925092565b600061212b8383612137565b60208301905092915050565b6121408161297f565b82525050565b61214f8161297f565b82525050565b6000612160826126b4565b61216a81856126d7565b9350612175836126a4565b8060005b838110156121a657815161218d888261211f565b9750612198836126ca565b925050600181019050612179565b5085935050505092915050565b6121bc81612991565b82525050565b6121cb816129d4565b82525050565b60006121dc826126bf565b6121e681856126e8565b93506121f68185602086016129e6565b6121ff81612ada565b840191505092915050565b60006122176023836126e8565b915061222282612af8565b604082019050919050565b600061223a602a836126e8565b915061224582612b47565b604082019050919050565b600061225d6022836126e8565b915061226882612b96565b604082019050919050565b60006122806017836126e8565b915061228b82612be5565b602082019050919050565b60006122a3601b836126e8565b91506122ae82612c0e565b602082019050919050565b60006122c6601a836126e8565b91506122d182612c37565b602082019050919050565b60006122e96021836126e8565b91506122f482612c60565b604082019050919050565b600061230c6020836126e8565b915061231782612caf565b602082019050919050565b600061232f6029836126e8565b915061233a82612cd8565b604082019050919050565b60006123526025836126e8565b915061235d82612d27565b604082019050919050565b60006123756024836126e8565b915061238082612d76565b604082019050919050565b612394816129bd565b82525050565b6123a3816129c7565b82525050565b60006020820190506123be6000830184612146565b92915050565b60006040820190506123d96000830185612146565b6123e66020830184612146565b9392505050565b60006040820190506124026000830185612146565b61240f602083018461238b565b9392505050565b600060c08201905061242b6000830189612146565b612438602083018861238b565b61244560408301876121c2565b61245260608301866121c2565b61245f6080830185612146565b61246c60a083018461238b565b979650505050505050565b600060208201905061248c60008301846121b3565b92915050565b600060208201905081810360008301526124ac81846121d1565b905092915050565b600060208201905081810360008301526124cd8161220a565b9050919050565b600060208201905081810360008301526124ed8161222d565b9050919050565b6000602082019050818103600083015261250d81612250565b9050919050565b6000602082019050818103600083015261252d81612273565b9050919050565b6000602082019050818103600083015261254d81612296565b9050919050565b6000602082019050818103600083015261256d816122b9565b9050919050565b6000602082019050818103600083015261258d816122dc565b9050919050565b600060208201905081810360008301526125ad816122ff565b9050919050565b600060208201905081810360008301526125cd81612322565b9050919050565b600060208201905081810360008301526125ed81612345565b9050919050565b6000602082019050818103600083015261260d81612368565b9050919050565b6000602082019050612629600083018461238b565b92915050565b600060a082019050612644600083018861238b565b61265160208301876121c2565b81810360408301526126638186612155565b90506126726060830185612146565b61267f608083018461238b565b9695505050505050565b600060208201905061269e600083018461239a565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612704826129bd565b915061270f836129bd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561274457612743612a19565b5b828201905092915050565b600061275a826129bd565b9150612765836129bd565b92508261277557612774612a48565b5b828204905092915050565b6000808291508390505b60018511156127ca578086048111156127a6576127a5612a19565b5b60018516156127b55780820291505b80810290506127c385612aeb565b945061278a565b94509492505050565b60006127de826129bd565b91506127e9836129c7565b92506128167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461281e565b905092915050565b60008261282e57600190506128ea565b8161283c57600090506128ea565b8160018114612852576002811461285c5761288b565b60019150506128ea565b60ff84111561286e5761286d612a19565b5b8360020a91508482111561288557612884612a19565b5b506128ea565b5060208310610133831016604e8410600b84101617156128c05782820a9050838111156128bb576128ba612a19565b5b6128ea565b6128cd8484846001612780565b925090508184048111156128e4576128e3612a19565b5b81810290505b9392505050565b60006128fc826129bd565b9150612907836129bd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156129405761293f612a19565b5b828202905092915050565b6000612956826129bd565b9150612961836129bd565b92508282101561297457612973612a19565b5b828203905092915050565b600061298a8261299d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006129df826129bd565b9050919050565b60005b83811015612a045780820151818401526020810190506129e9565b83811115612a13576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e73616374696f6e20616d6f756e74206c696d69746564000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b612dce8161297f565b8114612dd957600080fd5b50565b612de581612991565b8114612df057600080fd5b50565b612dfc816129bd565b8114612e0757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f17f2ff60cf4906dd18596e83a0703fbbba2366c13e5d0842257af9b9c0dd30964736f6c63430008070033

Deployed Bytecode Sourcemap

3441:8046:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4807:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5569:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5048:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5720:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8187:489;;;;;;;;;;;;;:::i;:::-;;4969:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8015:79;;;;;;;;;;;;;:::i;:::-;;9645:145;;;;;;;;;;;;;:::i;:::-;;5139:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3297:133;;;;;;;;;;;;;:::i;:::-;;3113:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4886:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7885:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5273:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5430:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9795:144;;;;;;;;;;;;;:::i;:::-;;4807:74;4844:13;4060:10;;;;;;;;;;;;;;;;;4864:12;;4807:74;:::o;5569:146::-;5644:4;5655:39;5664:12;:10;:12::i;:::-;5678:7;5687:6;5655:8;:39::i;:::-;5706:4;5699:11;;5569:146;;;;:::o;5048:86::-;5101:7;277:1;3798:2;:12;;;;:::i;:::-;159:9;3783:27;;;;:::i;:::-;5115:14;;5048:86;:::o;5720:292::-;5818:4;5829:36;5839:6;5847:9;5858:6;5829:9;:36::i;:::-;5870:121;5879:6;5887:12;:10;:12::i;:::-;5901:89;5939:6;5901:89;;;;;;;;;;;;;;;;;:11;:19;5913:6;5901:19;;;;;;;;;;;;;;;:33;5921:12;:10;:12::i;:::-;5901:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5870:8;:121::i;:::-;6003:4;5996:11;;5720:292;;;;;:::o;8187:489::-;7855:12;:10;:12::i;:::-;7841:26;;:10;;;;;;;;;;;:26;;;7833:36;;;;;;8251:9:::1;;;;;;;;;;;8250:10;8242:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;8292:51;8309:4;8324:8;;;;;;;;;;;277:1;3798:2;:12;;;;:::i;:::-;159:9;3783:27;;;;:::i;:::-;8292:8;:51::i;:::-;8376:8;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8358:48;;;8415:4;8422:8;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8358:80;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8350:5;;:88;;;;;;;;;;;;;;;;;;8443:8;;;;;;;;;;;:24;;;8475:21;8506:4;8512:24;8530:4;8512:9;:24::i;:::-;8537:1;8539::::0;8541:7:::1;:5;:7::i;:::-;8549:15;8443:122;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8585:4;8570:12;;:19;;;;;;;;;;;;;;;;;;8606:4;8594:9;;:16;;;;;;;;;;;;;;;;;;8622:5;;;;;;;;;;;8615:21;;;8645:8;;;;;;;;;;;8656:14;8615:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8187:489::o:0;4969:74::-;5010:5;277:1;5022:16;;4969:74;:::o;8015:79::-;7855:12;:10;:12::i;:::-;7841:26;;:10;;;;;;;;;;;:26;;;7833:36;;;;;;277:1:::1;3798:2;:12;;;;:::i;:::-;159:9;3783:27;;;;:::i;:::-;8069:12;:20;;;;8015:79::o:0;9645:145::-;7855:12;:10;:12::i;:::-;7841:26;;:10;;;;;;;;;;;:26;;;7833:36;;;;;;9697:23:::1;9723:24;9741:4;9723:9;:24::i;:::-;9697:50;;9752:33;9769:15;9752:16;:33::i;:::-;9692:98;9645:145::o:0;5139:129::-;5205:7;5226:37;5246:7;:16;5254:7;5246:16;;;;;;;;;;;;;;;;5226:19;:37::i;:::-;5219:44;;5139:129;;;:::o;3297:133::-;3232:12;:10;:12::i;:::-;3222:22;;:6;;;;;;;;;;:22;;;3214:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3398:1:::1;3361:40;;3382:6;::::0;::::1;;;;;;;;3361:40;;;;;;;;;;;;3423:1;3406:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3297:133::o:0;3113:70::-;3151:7;3172:6;;;;;;;;;;;3165:13;;3113:70;:::o;4886:78::-;4925:13;4108:12;;;;;;;;;;;;;;;;;4945:14;;4886:78;:::o;7885:125::-;7855:12;:10;:12::i;:::-;7841:26;;:10;;;;;;;;;;;:26;;;7833:36;;;;;;125:1:::1;7959:10;:22;7951:31;;;::::0;::::1;;7995:10;7987:7;:18;;;;7885:125:::0;:::o;5273:152::-;5351:4;5362:42;5372:12;:10;:12::i;:::-;5386:9;5397:6;5362:9;:42::i;:::-;5416:4;5409:11;;5273:152;;;;:::o;5430:134::-;5511:7;5532:11;:18;5544:5;5532:18;;;;;;;;;;;;;;;:27;5551:7;5532:27;;;;;;;;;;;;;;;;5525:34;;5430:134;;;;:::o;9795:144::-;7855:12;:10;:12::i;:::-;7841:26;;:10;;;;;;;;;;;:26;;;7833:36;;;;;;9847:26:::1;9876:21;9847:50;;9902:32;9915:18;9902:12;:32::i;:::-;9842:97;9795:144::o:0;2489:123::-;2547:7;2568:39;2572:1;2575;2568:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2561:46;;2489:123;;;;:::o;1041:89::-;1094:7;1115:10;1108:17;;1041:89;:::o;6257:308::-;6361:1;6344:19;;:5;:19;;;;6336:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6436:1;6417:21;;:7;:21;;;;6409:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6512:6;6482:11;:18;6494:5;6482:18;;;;;;;;;;;;;;;:27;6501:7;6482:27;;;;;;;;;;;;;;;:36;;;;6544:7;6528:32;;6537:5;6528:32;;;6553:6;6528:32;;;;;;:::i;:::-;;;;;;;;6257:308;;;:::o;6570:844::-;6668:1;6652:18;;:4;:18;;;;6644:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6739:1;6725:16;;:2;:16;;;;6717:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6803:1;6794:6;:10;6786:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6869:7;:5;:7::i;:::-;6861:15;;:4;:15;;;;:32;;;;;6886:7;:5;:7::i;:::-;6880:13;;:2;:13;;;;6861:32;6857:516;;;6913:5;;;;;;;;;;;6905:13;;:4;:13;;;:40;;;;;6936:8;;;;;;;;;;;6922:23;;:2;:23;;;;6905:40;:68;;;;;6951:18;:22;6970:2;6951:22;;;;;;;;;;;;;;;;;;;;;;;;;6949:24;6905:68;6901:146;;;6998:12;;6991:6;:19;6983:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;6901:146;7054:28;7085:24;7103:4;7085:9;:24::i;:::-;7054:55;;7120:7;;;;;;;;;;;7119:8;:25;;;;;7139:5;;;;;;;;;;;7131:13;;:4;:13;;;;7119:25;:41;;;;;7148:12;;;;;;;;;;;7119:41;7115:253;;;7169:38;7186:20;7169:16;:38::i;:::-;7214:26;7243:21;7214:50;;312:19;7274:18;:35;7271:91;;7319:35;7332:21;7319:12;:35::i;:::-;7271:91;7162:206;7115:253;6895:478;6857:516;7379:30;7394:4;7399:2;7402:6;7379:14;:30::i;:::-;6570:844;;;:::o;2106:169::-;2192:7;2219:1;2214;:6;;2222:12;2206:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2240:9;2256:1;2252;:5;;;;:::i;:::-;2240:17;;2269:1;2262:8;;;2106:169;;;;;:::o;7419:378::-;4370:4;4360:7;;:14;;;;;;;;;;;;;;;;;;7491:21:::1;7529:1;7515:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7491:40;;7554:4;7536;7541:1;7536:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;7574:8;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7564:4;7569:1;7564:7;;;;;;;;:::i;:::-;;;;;;;:25;;;;;;;;;::::0;::::1;7594:55;7611:4;7626:8;;;;;;;;;;;7637:11;7594:8;:55::i;:::-;7654:8;;;;;;;;;;;:59;;;7719:11;7736:1;7743:4;7761;7772:15;7654:138;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7486:311;4395:5:::0;4385:7;;:15;;;;;;;;;;;;;;;;;;7419:378;:::o;6019:233::-;6086:7;6119;;6108;:18;;6100:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6178:19;6201:10;:8;:10::i;:::-;6178:33;;6223:24;6235:11;6223:7;:11;;:24;;;;:::i;:::-;6216:31;;;6019:233;;;:::o;8099:83::-;8150:10;;;;;;;;;;;:19;;:27;8170:6;8150:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8099:83;:::o;2617:168::-;2703:7;2729:1;2725;:5;2732:12;2717:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2750:9;2766:1;2762;:5;;;;:::i;:::-;2750:17;;2779:1;2772:8;;;2617:168;;;;;:::o;8683:137::-;8771:44;8789:6;8797:9;8808:6;8771:17;:44::i;:::-;8683:137;;;:::o;11102:148::-;11143:7;11158:15;11175;11194:19;:17;:19::i;:::-;11157:56;;;;11225:20;11237:7;11225;:11;;:20;;;;:::i;:::-;11218:27;;;;11102:148;:::o;8825:448::-;8918:15;8935:23;8960:12;8974:23;8999:12;9013:13;9030:19;9041:7;9030:10;:19::i;:::-;8917:132;;;;;;;;;;;;9072:28;9092:7;9072;:15;9080:6;9072:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;9054:7;:15;9062:6;9054:15;;;;;;;;;;;;;;;:46;;;;9126:39;9149:15;9126:7;:18;9134:9;9126:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;9105:7;:18;9113:9;9105:18;;;;;;;;;;;;;;;:60;;;;9170:16;9180:5;9170:9;:16::i;:::-;9191:23;9203:4;9209;9191:11;:23::i;:::-;9241:9;9224:44;;9233:6;9224:44;;;9252:15;9224:44;;;;;;:::i;:::-;;;;;;;;8912:361;;;;;;8825:448;;;:::o;11255:229::-;11305:7;11314;11328:15;11346:7;;11328:25;;11358:15;277:1;3798:2;:12;;;;:::i;:::-;159:9;3783:27;;;;:::i;:::-;11358:25;;11402:20;277:1;3798:2;:12;;;;:::i;:::-;159:9;3783:27;;;;:::i;:::-;11402:7;;:11;;:20;;;;:::i;:::-;11392:7;:30;11388:61;;;11432:7;;277:1;3798:2;:12;;;;:::i;:::-;159:9;3783:27;;;;:::i;:::-;11424:25;;;;;;;;11388:61;11462:7;11471;11454:25;;;;;;11255:229;;;:::o;9946:441::-;10005:7;10014;10023;10032;10041;10050;10065:23;10090:12;10104:13;10121:39;10133:7;10142:8;;10152:7;;10121:11;:39::i;:::-;10064:96;;;;;;10165:19;10188:10;:8;:10::i;:::-;10165:33;;10204:15;10221:23;10246:12;10262:46;10274:7;10283:4;10289:5;10296:11;10262;:46::i;:::-;10203:105;;;;;;10321:7;10330:15;10347:4;10353:15;10370:4;10376:5;10313:69;;;;;;;;;;;;;;;;;;;9946:441;;;;;;;:::o;1974:127::-;2032:7;2053:43;2057:1;2060;2053:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2046:50;;1974:127;;;;:::o;1811:158::-;1869:7;1883:9;1899:1;1895;:5;;;;:::i;:::-;1883:17;;1918:1;1913;:6;;1905:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1963:1;1956:8;;;1811:158;;;;:::o;9278:191::-;9325:19;9348:10;:8;:10::i;:::-;9325:33;;9363:13;9379:22;9389:11;9379:5;:9;;:22;;;;:::i;:::-;9363:38;;9431:33;9458:5;9431:7;:22;9447:4;9431:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;9406:7;:22;9422:4;9406:22;;;;;;;;;;;;;;;:58;;;;9320:149;;9278:191;:::o;9474:132::-;9546:17;9558:4;9546:7;;:11;;:17;;;;:::i;:::-;9536:7;:27;;;;9581:20;9596:4;9581:10;;:14;;:20;;;;:::i;:::-;9568:10;:33;;;;9474:132;;:::o;10392:324::-;10485:7;10494;10503;10517:12;10532:28;10556:3;10532:19;10544:6;10532:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;10517:43;;10565:13;10581:29;10606:3;10581:20;10593:7;10581;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;10565:45;;10615:23;10641:28;10663:5;10641:17;10653:4;10641:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;10615:54;;10682:15;10699:4;10705:5;10674:37;;;;;;;;;10392:324;;;;;;;:::o;10721:376::-;10831:7;10840;10849;10863:15;10881:24;10893:11;10881:7;:11;;:24;;;;:::i;:::-;10863:42;;10910:12;10925:21;10934:11;10925:4;:8;;:21;;;;:::i;:::-;10910:36;;10951:13;10967:22;10977:11;10967:5;:9;;:22;;;;:::i;:::-;10951:38;;10994:23;11020:28;11042:5;11020:17;11032:4;11020:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;10994:54;;11061:7;11070:15;11087:4;11053:39;;;;;;;;;;10721:376;;;;;;;;:::o;2280:204::-;2338:7;2361:1;2356;:6;2352:32;;;2377:1;2370:8;;;;2352:32;2388:9;2404:1;2400;:5;;;;:::i;:::-;2388:17;;2427:1;2422;2418;:5;;;;:::i;:::-;:10;2410:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2478:1;2471:8;;;2280:204;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:137::-;355:5;386:6;380:13;371:22;;402:30;426:5;402:30;:::i;:::-;301:137;;;;:::o;444:139::-;490:5;528:6;515:20;506:29;;544:33;571:5;544:33;:::i;:::-;444:139;;;;:::o;589:143::-;646:5;677:6;671:13;662:22;;693:33;720:5;693:33;:::i;:::-;589:143;;;;:::o;738:329::-;797:6;846:2;834:9;825:7;821:23;817:32;814:119;;;852:79;;:::i;:::-;814:119;972:1;997:53;1042:7;1033:6;1022:9;1018:22;997:53;:::i;:::-;987:63;;943:117;738:329;;;;:::o;1073:351::-;1143:6;1192:2;1180:9;1171:7;1167:23;1163:32;1160:119;;;1198:79;;:::i;:::-;1160:119;1318:1;1343:64;1399:7;1390:6;1379:9;1375:22;1343:64;:::i;:::-;1333:74;;1289:128;1073:351;;;;:::o;1430:474::-;1498:6;1506;1555:2;1543:9;1534:7;1530:23;1526:32;1523:119;;;1561:79;;:::i;:::-;1523:119;1681:1;1706:53;1751:7;1742:6;1731:9;1727:22;1706:53;:::i;:::-;1696:63;;1652:117;1808:2;1834:53;1879:7;1870:6;1859:9;1855:22;1834:53;:::i;:::-;1824:63;;1779:118;1430:474;;;;;:::o;1910:619::-;1987:6;1995;2003;2052:2;2040:9;2031:7;2027:23;2023:32;2020:119;;;2058:79;;:::i;:::-;2020:119;2178:1;2203:53;2248:7;2239:6;2228:9;2224:22;2203:53;:::i;:::-;2193:63;;2149:117;2305:2;2331:53;2376:7;2367:6;2356:9;2352:22;2331:53;:::i;:::-;2321:63;;2276:118;2433:2;2459:53;2504:7;2495:6;2484:9;2480:22;2459:53;:::i;:::-;2449:63;;2404:118;1910:619;;;;;:::o;2535:474::-;2603:6;2611;2660:2;2648:9;2639:7;2635:23;2631:32;2628:119;;;2666:79;;:::i;:::-;2628:119;2786:1;2811:53;2856:7;2847:6;2836:9;2832:22;2811:53;:::i;:::-;2801:63;;2757:117;2913:2;2939:53;2984:7;2975:6;2964:9;2960:22;2939:53;:::i;:::-;2929:63;;2884:118;2535:474;;;;;:::o;3015:345::-;3082:6;3131:2;3119:9;3110:7;3106:23;3102:32;3099:119;;;3137:79;;:::i;:::-;3099:119;3257:1;3282:61;3335:7;3326:6;3315:9;3311:22;3282:61;:::i;:::-;3272:71;;3228:125;3015:345;;;;:::o;3366:329::-;3425:6;3474:2;3462:9;3453:7;3449:23;3445:32;3442:119;;;3480:79;;:::i;:::-;3442:119;3600:1;3625:53;3670:7;3661:6;3650:9;3646:22;3625:53;:::i;:::-;3615:63;;3571:117;3366:329;;;;:::o;3701:663::-;3789:6;3797;3805;3854:2;3842:9;3833:7;3829:23;3825:32;3822:119;;;3860:79;;:::i;:::-;3822:119;3980:1;4005:64;4061:7;4052:6;4041:9;4037:22;4005:64;:::i;:::-;3995:74;;3951:128;4118:2;4144:64;4200:7;4191:6;4180:9;4176:22;4144:64;:::i;:::-;4134:74;;4089:129;4257:2;4283:64;4339:7;4330:6;4319:9;4315:22;4283:64;:::i;:::-;4273:74;;4228:129;3701:663;;;;;:::o;4370:179::-;4439:10;4460:46;4502:3;4494:6;4460:46;:::i;:::-;4538:4;4533:3;4529:14;4515:28;;4370:179;;;;:::o;4555:108::-;4632:24;4650:5;4632:24;:::i;:::-;4627:3;4620:37;4555:108;;:::o;4669:118::-;4756:24;4774:5;4756:24;:::i;:::-;4751:3;4744:37;4669:118;;:::o;4823:732::-;4942:3;4971:54;5019:5;4971:54;:::i;:::-;5041:86;5120:6;5115:3;5041:86;:::i;:::-;5034:93;;5151:56;5201:5;5151:56;:::i;:::-;5230:7;5261:1;5246:284;5271:6;5268:1;5265:13;5246:284;;;5347:6;5341:13;5374:63;5433:3;5418:13;5374:63;:::i;:::-;5367:70;;5460:60;5513:6;5460:60;:::i;:::-;5450:70;;5306:224;5293:1;5290;5286:9;5281:14;;5246:284;;;5250:14;5546:3;5539:10;;4947:608;;;4823:732;;;;:::o;5561:109::-;5642:21;5657:5;5642:21;:::i;:::-;5637:3;5630:34;5561:109;;:::o;5676:147::-;5771:45;5810:5;5771:45;:::i;:::-;5766:3;5759:58;5676:147;;:::o;5829:364::-;5917:3;5945:39;5978:5;5945:39;:::i;:::-;6000:71;6064:6;6059:3;6000:71;:::i;:::-;5993:78;;6080:52;6125:6;6120:3;6113:4;6106:5;6102:16;6080:52;:::i;:::-;6157:29;6179:6;6157:29;:::i;:::-;6152:3;6148:39;6141:46;;5921:272;5829:364;;;;:::o;6199:366::-;6341:3;6362:67;6426:2;6421:3;6362:67;:::i;:::-;6355:74;;6438:93;6527:3;6438:93;:::i;:::-;6556:2;6551:3;6547:12;6540:19;;6199:366;;;:::o;6571:::-;6713:3;6734:67;6798:2;6793:3;6734:67;:::i;:::-;6727:74;;6810:93;6899:3;6810:93;:::i;:::-;6928:2;6923:3;6919:12;6912:19;;6571:366;;;:::o;6943:::-;7085:3;7106:67;7170:2;7165:3;7106:67;:::i;:::-;7099:74;;7182:93;7271:3;7182:93;:::i;:::-;7300:2;7295:3;7291:12;7284:19;;6943:366;;;:::o;7315:::-;7457:3;7478:67;7542:2;7537:3;7478:67;:::i;:::-;7471:74;;7554:93;7643:3;7554:93;:::i;:::-;7672:2;7667:3;7663:12;7656:19;;7315:366;;;:::o;7687:::-;7829:3;7850:67;7914:2;7909:3;7850:67;:::i;:::-;7843:74;;7926:93;8015:3;7926:93;:::i;:::-;8044:2;8039:3;8035:12;8028:19;;7687:366;;;:::o;8059:::-;8201:3;8222:67;8286:2;8281:3;8222:67;:::i;:::-;8215:74;;8298:93;8387:3;8298:93;:::i;:::-;8416:2;8411:3;8407:12;8400:19;;8059:366;;;:::o;8431:::-;8573:3;8594:67;8658:2;8653:3;8594:67;:::i;:::-;8587:74;;8670:93;8759:3;8670:93;:::i;:::-;8788:2;8783:3;8779:12;8772:19;;8431:366;;;:::o;8803:::-;8945:3;8966:67;9030:2;9025:3;8966:67;:::i;:::-;8959:74;;9042:93;9131:3;9042:93;:::i;:::-;9160:2;9155:3;9151:12;9144:19;;8803:366;;;:::o;9175:::-;9317:3;9338:67;9402:2;9397:3;9338:67;:::i;:::-;9331:74;;9414:93;9503:3;9414:93;:::i;:::-;9532:2;9527:3;9523:12;9516:19;;9175:366;;;:::o;9547:::-;9689:3;9710:67;9774:2;9769:3;9710:67;:::i;:::-;9703:74;;9786:93;9875:3;9786:93;:::i;:::-;9904:2;9899:3;9895:12;9888:19;;9547:366;;;:::o;9919:::-;10061:3;10082:67;10146:2;10141:3;10082:67;:::i;:::-;10075:74;;10158:93;10247:3;10158:93;:::i;:::-;10276:2;10271:3;10267:12;10260:19;;9919:366;;;:::o;10291:118::-;10378:24;10396:5;10378:24;:::i;:::-;10373:3;10366:37;10291:118;;:::o;10415:112::-;10498:22;10514:5;10498:22;:::i;:::-;10493:3;10486:35;10415:112;;:::o;10533:222::-;10626:4;10664:2;10653:9;10649:18;10641:26;;10677:71;10745:1;10734:9;10730:17;10721:6;10677:71;:::i;:::-;10533:222;;;;:::o;10761:332::-;10882:4;10920:2;10909:9;10905:18;10897:26;;10933:71;11001:1;10990:9;10986:17;10977:6;10933:71;:::i;:::-;11014:72;11082:2;11071:9;11067:18;11058:6;11014:72;:::i;:::-;10761:332;;;;;:::o;11099:::-;11220:4;11258:2;11247:9;11243:18;11235:26;;11271:71;11339:1;11328:9;11324:17;11315:6;11271:71;:::i;:::-;11352:72;11420:2;11409:9;11405:18;11396:6;11352:72;:::i;:::-;11099:332;;;;;:::o;11437:807::-;11686:4;11724:3;11713:9;11709:19;11701:27;;11738:71;11806:1;11795:9;11791:17;11782:6;11738:71;:::i;:::-;11819:72;11887:2;11876:9;11872:18;11863:6;11819:72;:::i;:::-;11901:80;11977:2;11966:9;11962:18;11953:6;11901:80;:::i;:::-;11991;12067:2;12056:9;12052:18;12043:6;11991:80;:::i;:::-;12081:73;12149:3;12138:9;12134:19;12125:6;12081:73;:::i;:::-;12164;12232:3;12221:9;12217:19;12208:6;12164:73;:::i;:::-;11437:807;;;;;;;;;:::o;12250:210::-;12337:4;12375:2;12364:9;12360:18;12352:26;;12388:65;12450:1;12439:9;12435:17;12426:6;12388:65;:::i;:::-;12250:210;;;;:::o;12466:313::-;12579:4;12617:2;12606:9;12602:18;12594:26;;12666:9;12660:4;12656:20;12652:1;12641:9;12637:17;12630:47;12694:78;12767:4;12758:6;12694:78;:::i;:::-;12686:86;;12466:313;;;;:::o;12785:419::-;12951:4;12989:2;12978:9;12974:18;12966:26;;13038:9;13032:4;13028:20;13024:1;13013:9;13009:17;13002:47;13066:131;13192:4;13066:131;:::i;:::-;13058:139;;12785:419;;;:::o;13210:::-;13376:4;13414:2;13403:9;13399:18;13391:26;;13463:9;13457:4;13453:20;13449:1;13438:9;13434:17;13427:47;13491:131;13617:4;13491:131;:::i;:::-;13483:139;;13210:419;;;:::o;13635:::-;13801:4;13839:2;13828:9;13824:18;13816:26;;13888:9;13882:4;13878:20;13874:1;13863:9;13859:17;13852:47;13916:131;14042:4;13916:131;:::i;:::-;13908:139;;13635:419;;;:::o;14060:::-;14226:4;14264:2;14253:9;14249:18;14241:26;;14313:9;14307:4;14303:20;14299:1;14288:9;14284:17;14277:47;14341:131;14467:4;14341:131;:::i;:::-;14333:139;;14060:419;;;:::o;14485:::-;14651:4;14689:2;14678:9;14674:18;14666:26;;14738:9;14732:4;14728:20;14724:1;14713:9;14709:17;14702:47;14766:131;14892:4;14766:131;:::i;:::-;14758:139;;14485:419;;;:::o;14910:::-;15076:4;15114:2;15103:9;15099:18;15091:26;;15163:9;15157:4;15153:20;15149:1;15138:9;15134:17;15127:47;15191:131;15317:4;15191:131;:::i;:::-;15183:139;;14910:419;;;:::o;15335:::-;15501:4;15539:2;15528:9;15524:18;15516:26;;15588:9;15582:4;15578:20;15574:1;15563:9;15559:17;15552:47;15616:131;15742:4;15616:131;:::i;:::-;15608:139;;15335:419;;;:::o;15760:::-;15926:4;15964:2;15953:9;15949:18;15941:26;;16013:9;16007:4;16003:20;15999:1;15988:9;15984:17;15977:47;16041:131;16167:4;16041:131;:::i;:::-;16033:139;;15760:419;;;:::o;16185:::-;16351:4;16389:2;16378:9;16374:18;16366:26;;16438:9;16432:4;16428:20;16424:1;16413:9;16409:17;16402:47;16466:131;16592:4;16466:131;:::i;:::-;16458:139;;16185:419;;;:::o;16610:::-;16776:4;16814:2;16803:9;16799:18;16791:26;;16863:9;16857:4;16853:20;16849:1;16838:9;16834:17;16827:47;16891:131;17017:4;16891:131;:::i;:::-;16883:139;;16610:419;;;:::o;17035:::-;17201:4;17239:2;17228:9;17224:18;17216:26;;17288:9;17282:4;17278:20;17274:1;17263:9;17259:17;17252:47;17316:131;17442:4;17316:131;:::i;:::-;17308:139;;17035:419;;;:::o;17460:222::-;17553:4;17591:2;17580:9;17576:18;17568:26;;17604:71;17672:1;17661:9;17657:17;17648:6;17604:71;:::i;:::-;17460:222;;;;:::o;17688:831::-;17951:4;17989:3;17978:9;17974:19;17966:27;;18003:71;18071:1;18060:9;18056:17;18047:6;18003:71;:::i;:::-;18084:80;18160:2;18149:9;18145:18;18136:6;18084:80;:::i;:::-;18211:9;18205:4;18201:20;18196:2;18185:9;18181:18;18174:48;18239:108;18342:4;18333:6;18239:108;:::i;:::-;18231:116;;18357:72;18425:2;18414:9;18410:18;18401:6;18357:72;:::i;:::-;18439:73;18507:3;18496:9;18492:19;18483:6;18439:73;:::i;:::-;17688:831;;;;;;;;:::o;18525:214::-;18614:4;18652:2;18641:9;18637:18;18629:26;;18665:67;18729:1;18718:9;18714:17;18705:6;18665:67;:::i;:::-;18525:214;;;;:::o;18826:132::-;18893:4;18916:3;18908:11;;18946:4;18941:3;18937:14;18929:22;;18826:132;;;:::o;18964:114::-;19031:6;19065:5;19059:12;19049:22;;18964:114;;;:::o;19084:99::-;19136:6;19170:5;19164:12;19154:22;;19084:99;;;:::o;19189:113::-;19259:4;19291;19286:3;19282:14;19274:22;;19189:113;;;:::o;19308:184::-;19407:11;19441:6;19436:3;19429:19;19481:4;19476:3;19472:14;19457:29;;19308:184;;;;:::o;19498:169::-;19582:11;19616:6;19611:3;19604:19;19656:4;19651:3;19647:14;19632:29;;19498:169;;;;:::o;19673:305::-;19713:3;19732:20;19750:1;19732:20;:::i;:::-;19727:25;;19766:20;19784:1;19766:20;:::i;:::-;19761:25;;19920:1;19852:66;19848:74;19845:1;19842:81;19839:107;;;19926:18;;:::i;:::-;19839:107;19970:1;19967;19963:9;19956:16;;19673:305;;;;:::o;19984:185::-;20024:1;20041:20;20059:1;20041:20;:::i;:::-;20036:25;;20075:20;20093:1;20075:20;:::i;:::-;20070:25;;20114:1;20104:35;;20119:18;;:::i;:::-;20104:35;20161:1;20158;20154:9;20149:14;;19984:185;;;;:::o;20175:848::-;20236:5;20243:4;20267:6;20258:15;;20291:5;20282:14;;20305:712;20326:1;20316:8;20313:15;20305:712;;;20421:4;20416:3;20412:14;20406:4;20403:24;20400:50;;;20430:18;;:::i;:::-;20400:50;20480:1;20470:8;20466:16;20463:451;;;20895:4;20888:5;20884:16;20875:25;;20463:451;20945:4;20939;20935:15;20927:23;;20975:32;20998:8;20975:32;:::i;:::-;20963:44;;20305:712;;;20175:848;;;;;;;:::o;21029:281::-;21087:5;21111:23;21129:4;21111:23;:::i;:::-;21103:31;;21155:25;21171:8;21155:25;:::i;:::-;21143:37;;21199:104;21236:66;21226:8;21220:4;21199:104;:::i;:::-;21190:113;;21029:281;;;;:::o;21316:1073::-;21370:5;21561:8;21551:40;;21582:1;21573:10;;21584:5;;21551:40;21610:4;21600:36;;21627:1;21618:10;;21629:5;;21600:36;21696:4;21744:1;21739:27;;;;21780:1;21775:191;;;;21689:277;;21739:27;21757:1;21748:10;;21759:5;;;21775:191;21820:3;21810:8;21807:17;21804:43;;;21827:18;;:::i;:::-;21804:43;21876:8;21873:1;21869:16;21860:25;;21911:3;21904:5;21901:14;21898:40;;;21918:18;;:::i;:::-;21898:40;21951:5;;;21689:277;;22075:2;22065:8;22062:16;22056:3;22050:4;22047:13;22043:36;22025:2;22015:8;22012:16;22007:2;22001:4;21998:12;21994:35;21978:111;21975:246;;;22131:8;22125:4;22121:19;22112:28;;22166:3;22159:5;22156:14;22153:40;;;22173:18;;:::i;:::-;22153:40;22206:5;;21975:246;22246:42;22284:3;22274:8;22268:4;22265:1;22246:42;:::i;:::-;22231:57;;;;22320:4;22315:3;22311:14;22304:5;22301:25;22298:51;;;22329:18;;:::i;:::-;22298:51;22378:4;22371:5;22367:16;22358:25;;21316:1073;;;;;;:::o;22395:348::-;22435:7;22458:20;22476:1;22458:20;:::i;:::-;22453:25;;22492:20;22510:1;22492:20;:::i;:::-;22487:25;;22680:1;22612:66;22608:74;22605:1;22602:81;22597:1;22590:9;22583:17;22579:105;22576:131;;;22687:18;;:::i;:::-;22576:131;22735:1;22732;22728:9;22717:20;;22395:348;;;;:::o;22749:191::-;22789:4;22809:20;22827:1;22809:20;:::i;:::-;22804:25;;22843:20;22861:1;22843:20;:::i;:::-;22838:25;;22882:1;22879;22876:8;22873:34;;;22887:18;;:::i;:::-;22873:34;22932:1;22929;22925:9;22917:17;;22749:191;;;;:::o;22946:96::-;22983:7;23012:24;23030:5;23012:24;:::i;:::-;23001:35;;22946:96;;;:::o;23048:90::-;23082:7;23125:5;23118:13;23111:21;23100:32;;23048:90;;;:::o;23144:126::-;23181:7;23221:42;23214:5;23210:54;23199:65;;23144:126;;;:::o;23276:77::-;23313:7;23342:5;23331:16;;23276:77;;;:::o;23359:86::-;23394:7;23434:4;23427:5;23423:16;23412:27;;23359:86;;;:::o;23451:121::-;23509:9;23542:24;23560:5;23542:24;:::i;:::-;23529:37;;23451:121;;;:::o;23578:307::-;23646:1;23656:113;23670:6;23667:1;23664:13;23656:113;;;23755:1;23750:3;23746:11;23740:18;23736:1;23731:3;23727:11;23720:39;23692:2;23689:1;23685:10;23680:15;;23656:113;;;23787:6;23784:1;23781:13;23778:101;;;23867:1;23858:6;23853:3;23849:16;23842:27;23778:101;23627:258;23578:307;;;:::o;23891:180::-;23939:77;23936:1;23929:88;24036:4;24033:1;24026:15;24060:4;24057:1;24050:15;24077:180;24125:77;24122:1;24115:88;24222:4;24219:1;24212:15;24246:4;24243:1;24236:15;24263:180;24311:77;24308:1;24301:88;24408:4;24405:1;24398:15;24432:4;24429:1;24422:15;24449:180;24497:77;24494:1;24487:88;24594:4;24591:1;24584:15;24618:4;24615:1;24608:15;24758:117;24867:1;24864;24857:12;24881:102;24922:6;24973:2;24969:7;24964:2;24957:5;24953:14;24949:28;24939:38;;24881:102;;;:::o;24989:::-;25031:8;25078:5;25075:1;25071:13;25050:34;;24989:102;;;:::o;25097:222::-;25237:34;25233:1;25225:6;25221:14;25214:58;25306:5;25301:2;25293:6;25289:15;25282:30;25097:222;:::o;25325:229::-;25465:34;25461:1;25453:6;25449:14;25442:58;25534:12;25529:2;25521:6;25517:15;25510:37;25325:229;:::o;25560:221::-;25700:34;25696:1;25688:6;25684:14;25677:58;25769:4;25764:2;25756:6;25752:15;25745:29;25560:221;:::o;25787:173::-;25927:25;25923:1;25915:6;25911:14;25904:49;25787:173;:::o;25966:177::-;26106:29;26102:1;26094:6;26090:14;26083:53;25966:177;:::o;26149:176::-;26289:28;26285:1;26277:6;26273:14;26266:52;26149:176;:::o;26331:220::-;26471:34;26467:1;26459:6;26455:14;26448:58;26540:3;26535:2;26527:6;26523:15;26516:28;26331:220;:::o;26557:182::-;26697:34;26693:1;26685:6;26681:14;26674:58;26557:182;:::o;26745:228::-;26885:34;26881:1;26873:6;26869:14;26862:58;26954:11;26949:2;26941:6;26937:15;26930:36;26745:228;:::o;26979:224::-;27119:34;27115:1;27107:6;27103:14;27096:58;27188:7;27183:2;27175:6;27171:15;27164:32;26979:224;:::o;27209:223::-;27349:34;27345:1;27337:6;27333:14;27326:58;27418:6;27413:2;27405:6;27401:15;27394:31;27209:223;:::o;27438:122::-;27511:24;27529:5;27511:24;:::i;:::-;27504:5;27501:35;27491:63;;27550:1;27547;27540:12;27491:63;27438:122;:::o;27566:116::-;27636:21;27651:5;27636:21;:::i;:::-;27629:5;27626:32;27616:60;;27672:1;27669;27662:12;27616:60;27566:116;:::o;27688:122::-;27761:24;27779:5;27761:24;:::i;:::-;27754:5;27751:35;27741:63;;27800:1;27797;27790:12;27741:63;27688:122;:::o

Swarm Source

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