Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000,000 $Google
Holders
36
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,165,316,769.414433017276381236 $GoogleValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GoogleGeminiERC
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-30 */ // SPDX-License-Identifier: Unlicensed /* Website : https://www.ggeminitoken.com/ Twitter : https://twitter.com/GoogleGeminiERC Telegram : https://t.me/GoogleGeminiErcPortal */ pragma solidity 0.8.16; 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 ); } 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); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); } contract GoogleGeminiERC is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Google Gemini"; string private constant _symbol = "$Google"; uint8 private constant _decimals = 18; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 100_000_000_000 * 10**18; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 20; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 20; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; address payable private _developmentAddress; address payable private _marketingAddress; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 1_000_000_000 * 10**18; uint256 public _maxWalletSize = 1_000_000_000 * 10**18; uint256 public _swapTokensAtAmount = 1_000_000_000 * 10**18; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _developmentAddress = payable(msg.sender); _marketingAddress = payable(msg.sender); _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _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 removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } 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()) { require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } 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 _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _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 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).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); } function setFee(uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 20, "Buy tax must be between 0% and 20%"); require(taxFeeOnSell >= 0 && taxFeeOnSell <= 99, "Sell tax must be between 0% and 99%"); _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 _d) public onlyOwner { _maxWalletSize = _tTotal / _d; _maxTxAmount = _maxWalletSize; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":[],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_d","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526200001f6c01431e0fae6d7217caa00000006000196200036c565b6200002d906000196200038f565b6006556000600881905560146009819055600a829055600b819055600c829055600d819055600e91909155600f8190556013805461ffff60a01b1916600160a81b1790556b033b2e3c9fd0803ce80000009081905560158190556016553480156200009757600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060108054336001600160a01b03199182168117909255601180549091169091179055600654600260006200010a3390565b6001600160a01b03168152602080820192909252604090810160002092909255601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b815292519092839263c45a0155926004808401938290030181865afa1580156200018b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b19190620003b7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002259190620003b7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000273573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002999190620003b7565b601380546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601054851684528284208054821683179055601154909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6c01431e0fae6d7217caa00000006040516200035d91815260200190565b60405180910390a350620003e9565b6000826200038a57634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115620003b157634e487b7160e01b600052601160045260246000fd5b92915050565b600060208284031215620003ca57600080fd5b81516001600160a01b0381168114620003e257600080fd5b9392505050565b6118e580620003f96000396000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b657806398a5c3151161006f57806398a5c315146103cd578063a9059cbb146103ed578063c3c8cd801461040d578063dd62ed3e14610422578063ea1644d514610468578063f2fde38b1461048857600080fd5b8063715018a61461031e57806374010ece146103335780637d1db4a5146103535780638da5cb5b146103695780638f9a55c01461038757806395d89b411461039d57600080fd5b8063313ce56711610108578063313ce5671461026b57806349bd5a5e1461028757806352f7c988146102a75780636d8aa8f8146102c95780636fc3eaec146102e957806370a08231146102fe57600080fd5b806306fdde031461015b578063095ea7b3146101a35780631694505e146101d357806318160ddd1461020b57806323b872dd146102355780632fd689e31461025557600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600d81526c476f6f676c652047656d696e6960981b60208201525b60405161019a91906115ae565b60405180910390f35b3480156101af57600080fd5b506101c36101be366004611611565b6104a8565b604051901515815260200161019a565b3480156101df57600080fd5b506012546101f3906001600160a01b031681565b6040516001600160a01b03909116815260200161019a565b34801561021757600080fd5b506c01431e0fae6d7217caa00000005b60405190815260200161019a565b34801561024157600080fd5b506101c361025036600461163d565b6104bf565b34801561026157600080fd5b5061022760165481565b34801561027757600080fd5b506040516012815260200161019a565b34801561029357600080fd5b506013546101f3906001600160a01b031681565b3480156102b357600080fd5b506102c76102c236600461167e565b610528565b005b3480156102d557600080fd5b506102c76102e43660046116a0565b61061f565b3480156102f557600080fd5b506102c7610667565b34801561030a57600080fd5b506102276103193660046116c2565b6106b2565b34801561032a57600080fd5b506102c76106d4565b34801561033f57600080fd5b506102c761034e3660046116df565b610748565b34801561035f57600080fd5b5061022760145481565b34801561037557600080fd5b506000546001600160a01b03166101f3565b34801561039357600080fd5b5061022760155481565b3480156103a957600080fd5b5060408051808201909152600781526624476f6f676c6560c81b602082015261018d565b3480156103d957600080fd5b506102c76103e83660046116df565b610777565b3480156103f957600080fd5b506101c3610408366004611611565b6107a6565b34801561041957600080fd5b506102c76107b3565b34801561042e57600080fd5b5061022761043d3660046116f8565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561047457600080fd5b506102c76104833660046116df565b610807565b34801561049457600080fd5b506102c76104a33660046116c2565b610853565b60006104b533848461093d565b5060015b92915050565b60006104cc848484610a61565b61051e843361051985604051806060016040528060288152602001611888602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610e75565b61093d565b5060019392505050565b6000546001600160a01b0316331461055b5760405162461bcd60e51b815260040161055290611731565b60405180910390fd5b60148211156105b75760405162461bcd60e51b815260206004820152602260248201527f42757920746178206d757374206265206265747765656e20302520616e642032604482015261302560f01b6064820152608401610552565b60638111156106145760405162461bcd60e51b815260206004820152602360248201527f53656c6c20746178206d757374206265206265747765656e20302520616e642060448201526239392560e81b6064820152608401610552565b600991909155600b55565b6000546001600160a01b031633146106495760405162461bcd60e51b815260040161055290611731565b60138054911515600160a81b0260ff60a81b19909216919091179055565b6010546001600160a01b0316336001600160a01b0316148061069c57506011546001600160a01b0316336001600160a01b0316145b6106a557600080fd5b476106af81610eaf565b50565b6001600160a01b0381166000908152600260205260408120546104b990610eed565b6000546001600160a01b031633146106fe5760405162461bcd60e51b815260040161055290611731565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107725760405162461bcd60e51b815260040161055290611731565b601455565b6000546001600160a01b031633146107a15760405162461bcd60e51b815260040161055290611731565b601655565b60006104b5338484610a61565b6010546001600160a01b0316336001600160a01b031614806107e857506011546001600160a01b0316336001600160a01b0316145b6107f157600080fd5b60006107fc306106b2565b90506106af81610f71565b6000546001600160a01b031633146108315760405162461bcd60e51b815260040161055290611731565b610848816c01431e0fae6d7217caa000000061177c565b601581905560145550565b6000546001600160a01b0316331461087d5760405162461bcd60e51b815260040161055290611731565b6001600160a01b0381166108e25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610552565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661099f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610552565b6001600160a01b038216610a005760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610552565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ac55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610552565b6001600160a01b038216610b275760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610552565b60008111610b895760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610552565b6000546001600160a01b03848116911614801590610bb557506000546001600160a01b03838116911614155b15610d6857601454811115610c0c5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610552565b6013546001600160a01b03838116911614610c915760155481610c2e846106b2565b610c38919061179e565b10610c915760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610552565b6000610c9c306106b2565b601654601454919250821015908210610cb55760145491505b808015610ccc5750601354600160a01b900460ff16155b8015610ce657506013546001600160a01b03868116911614155b8015610cfb5750601354600160a81b900460ff165b8015610d2057506001600160a01b03851660009081526005602052604090205460ff16155b8015610d4557506001600160a01b03841660009081526005602052604090205460ff16155b15610d6557610d5382610f71565b478015610d6357610d6347610eaf565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610daa57506001600160a01b03831660009081526005602052604090205460ff165b80610ddc57506013546001600160a01b03858116911614801590610ddc57506013546001600160a01b03848116911614155b15610de957506000610e63565b6013546001600160a01b038581169116148015610e1457506012546001600160a01b03848116911614155b15610e2657600854600c55600954600d555b6013546001600160a01b038481169116148015610e5157506012546001600160a01b03858116911614155b15610e6357600a54600c55600b54600d555b610e6f848484846110eb565b50505050565b60008184841115610e995760405162461bcd60e51b815260040161055291906115ae565b506000610ea684866117b1565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610ee9573d6000803e3d6000fd5b5050565b6000600654821115610f545760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610552565b6000610f5e611119565b9050610f6a838261113c565b9392505050565b6013805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610fb957610fb96117c4565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611012573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103691906117da565b81600181518110611049576110496117c4565b6001600160a01b03928316602091820292909201015260125461106f913091168461093d565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906110a89085906000908690309042906004016117f7565b600060405180830381600087803b1580156110c257600080fd5b505af11580156110d6573d6000803e3d6000fd5b50506013805460ff60a01b1916905550505050565b806110f8576110f861117e565b6111038484846111ac565b80610e6f57610e6f600e54600c55600f54600d55565b60008060006111266112a3565b9092509050611135828261113c565b9250505090565b6000610f6a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112ed565b600c5415801561118e5750600d54155b1561119557565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806111be8761131b565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506111f09087611378565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461121f90866113ba565b6001600160a01b03891660009081526002602052604090205561124181611419565b61124b8483611463565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161129091815260200190565b60405180910390a3505050505050505050565b60065460009081906c01431e0fae6d7217caa00000006112c3828261113c565b8210156112e4575050600654926c01431e0fae6d7217caa000000092509050565b90939092509050565b6000818361130e5760405162461bcd60e51b815260040161055291906115ae565b506000610ea6848661177c565b60008060008060008060008060006113388a600c54600d54611487565b9250925092506000611348611119565b9050600080600061135b8e8787876114dc565b919e509c509a509598509396509194505050505091939550919395565b6000610f6a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e75565b6000806113c7838561179e565b905083811015610f6a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610552565b6000611423611119565b90506000611431838361152c565b3060009081526002602052604090205490915061144e90826113ba565b30600090815260026020526040902055505050565b6006546114709083611378565b60065560075461148090826113ba565b6007555050565b60008080806114a1606461149b898961152c565b9061113c565b905060006114b4606461149b8a8961152c565b905060006114cc826114c68b86611378565b90611378565b9992985090965090945050505050565b60008080806114eb888661152c565b905060006114f9888761152c565b90506000611507888861152c565b90506000611519826114c68686611378565b939b939a50919850919650505050505050565b60008260000361153e575060006104b9565b600061154a8385611868565b905082611557858361177c565b14610f6a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610552565b600060208083528351808285015260005b818110156115db578581018301518582016040015282016115bf565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106af57600080fd5b6000806040838503121561162457600080fd5b823561162f816115fc565b946020939093013593505050565b60008060006060848603121561165257600080fd5b833561165d816115fc565b9250602084013561166d816115fc565b929592945050506040919091013590565b6000806040838503121561169157600080fd5b50508035926020909101359150565b6000602082840312156116b257600080fd5b81358015158114610f6a57600080fd5b6000602082840312156116d457600080fd5b8135610f6a816115fc565b6000602082840312156116f157600080fd5b5035919050565b6000806040838503121561170b57600080fd5b8235611716816115fc565b91506020830135611726816115fc565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261179957634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104b9576104b9611766565b818103818111156104b9576104b9611766565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117ec57600080fd5b8151610f6a816115fc565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118475784516001600160a01b031683529383019391830191600101611822565b50506001600160a01b03969096166060850152505050608001529392505050565b600081600019048311821515161561188257611882611766565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d3462d9d1f794c83247d9696fd26078c0c5b485eb669d721143d3330ac67ae8f64736f6c63430008100033
Deployed Bytecode
0x60806040526004361061014f5760003560e01c8063715018a6116100b657806398a5c3151161006f57806398a5c315146103cd578063a9059cbb146103ed578063c3c8cd801461040d578063dd62ed3e14610422578063ea1644d514610468578063f2fde38b1461048857600080fd5b8063715018a61461031e57806374010ece146103335780637d1db4a5146103535780638da5cb5b146103695780638f9a55c01461038757806395d89b411461039d57600080fd5b8063313ce56711610108578063313ce5671461026b57806349bd5a5e1461028757806352f7c988146102a75780636d8aa8f8146102c95780636fc3eaec146102e957806370a08231146102fe57600080fd5b806306fdde031461015b578063095ea7b3146101a35780631694505e146101d357806318160ddd1461020b57806323b872dd146102355780632fd689e31461025557600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600d81526c476f6f676c652047656d696e6960981b60208201525b60405161019a91906115ae565b60405180910390f35b3480156101af57600080fd5b506101c36101be366004611611565b6104a8565b604051901515815260200161019a565b3480156101df57600080fd5b506012546101f3906001600160a01b031681565b6040516001600160a01b03909116815260200161019a565b34801561021757600080fd5b506c01431e0fae6d7217caa00000005b60405190815260200161019a565b34801561024157600080fd5b506101c361025036600461163d565b6104bf565b34801561026157600080fd5b5061022760165481565b34801561027757600080fd5b506040516012815260200161019a565b34801561029357600080fd5b506013546101f3906001600160a01b031681565b3480156102b357600080fd5b506102c76102c236600461167e565b610528565b005b3480156102d557600080fd5b506102c76102e43660046116a0565b61061f565b3480156102f557600080fd5b506102c7610667565b34801561030a57600080fd5b506102276103193660046116c2565b6106b2565b34801561032a57600080fd5b506102c76106d4565b34801561033f57600080fd5b506102c761034e3660046116df565b610748565b34801561035f57600080fd5b5061022760145481565b34801561037557600080fd5b506000546001600160a01b03166101f3565b34801561039357600080fd5b5061022760155481565b3480156103a957600080fd5b5060408051808201909152600781526624476f6f676c6560c81b602082015261018d565b3480156103d957600080fd5b506102c76103e83660046116df565b610777565b3480156103f957600080fd5b506101c3610408366004611611565b6107a6565b34801561041957600080fd5b506102c76107b3565b34801561042e57600080fd5b5061022761043d3660046116f8565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561047457600080fd5b506102c76104833660046116df565b610807565b34801561049457600080fd5b506102c76104a33660046116c2565b610853565b60006104b533848461093d565b5060015b92915050565b60006104cc848484610a61565b61051e843361051985604051806060016040528060288152602001611888602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610e75565b61093d565b5060019392505050565b6000546001600160a01b0316331461055b5760405162461bcd60e51b815260040161055290611731565b60405180910390fd5b60148211156105b75760405162461bcd60e51b815260206004820152602260248201527f42757920746178206d757374206265206265747765656e20302520616e642032604482015261302560f01b6064820152608401610552565b60638111156106145760405162461bcd60e51b815260206004820152602360248201527f53656c6c20746178206d757374206265206265747765656e20302520616e642060448201526239392560e81b6064820152608401610552565b600991909155600b55565b6000546001600160a01b031633146106495760405162461bcd60e51b815260040161055290611731565b60138054911515600160a81b0260ff60a81b19909216919091179055565b6010546001600160a01b0316336001600160a01b0316148061069c57506011546001600160a01b0316336001600160a01b0316145b6106a557600080fd5b476106af81610eaf565b50565b6001600160a01b0381166000908152600260205260408120546104b990610eed565b6000546001600160a01b031633146106fe5760405162461bcd60e51b815260040161055290611731565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107725760405162461bcd60e51b815260040161055290611731565b601455565b6000546001600160a01b031633146107a15760405162461bcd60e51b815260040161055290611731565b601655565b60006104b5338484610a61565b6010546001600160a01b0316336001600160a01b031614806107e857506011546001600160a01b0316336001600160a01b0316145b6107f157600080fd5b60006107fc306106b2565b90506106af81610f71565b6000546001600160a01b031633146108315760405162461bcd60e51b815260040161055290611731565b610848816c01431e0fae6d7217caa000000061177c565b601581905560145550565b6000546001600160a01b0316331461087d5760405162461bcd60e51b815260040161055290611731565b6001600160a01b0381166108e25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610552565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661099f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610552565b6001600160a01b038216610a005760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610552565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ac55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610552565b6001600160a01b038216610b275760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610552565b60008111610b895760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610552565b6000546001600160a01b03848116911614801590610bb557506000546001600160a01b03838116911614155b15610d6857601454811115610c0c5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610552565b6013546001600160a01b03838116911614610c915760155481610c2e846106b2565b610c38919061179e565b10610c915760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610552565b6000610c9c306106b2565b601654601454919250821015908210610cb55760145491505b808015610ccc5750601354600160a01b900460ff16155b8015610ce657506013546001600160a01b03868116911614155b8015610cfb5750601354600160a81b900460ff165b8015610d2057506001600160a01b03851660009081526005602052604090205460ff16155b8015610d4557506001600160a01b03841660009081526005602052604090205460ff16155b15610d6557610d5382610f71565b478015610d6357610d6347610eaf565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610daa57506001600160a01b03831660009081526005602052604090205460ff165b80610ddc57506013546001600160a01b03858116911614801590610ddc57506013546001600160a01b03848116911614155b15610de957506000610e63565b6013546001600160a01b038581169116148015610e1457506012546001600160a01b03848116911614155b15610e2657600854600c55600954600d555b6013546001600160a01b038481169116148015610e5157506012546001600160a01b03858116911614155b15610e6357600a54600c55600b54600d555b610e6f848484846110eb565b50505050565b60008184841115610e995760405162461bcd60e51b815260040161055291906115ae565b506000610ea684866117b1565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610ee9573d6000803e3d6000fd5b5050565b6000600654821115610f545760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610552565b6000610f5e611119565b9050610f6a838261113c565b9392505050565b6013805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610fb957610fb96117c4565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611012573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103691906117da565b81600181518110611049576110496117c4565b6001600160a01b03928316602091820292909201015260125461106f913091168461093d565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906110a89085906000908690309042906004016117f7565b600060405180830381600087803b1580156110c257600080fd5b505af11580156110d6573d6000803e3d6000fd5b50506013805460ff60a01b1916905550505050565b806110f8576110f861117e565b6111038484846111ac565b80610e6f57610e6f600e54600c55600f54600d55565b60008060006111266112a3565b9092509050611135828261113c565b9250505090565b6000610f6a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112ed565b600c5415801561118e5750600d54155b1561119557565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806111be8761131b565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506111f09087611378565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461121f90866113ba565b6001600160a01b03891660009081526002602052604090205561124181611419565b61124b8483611463565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161129091815260200190565b60405180910390a3505050505050505050565b60065460009081906c01431e0fae6d7217caa00000006112c3828261113c565b8210156112e4575050600654926c01431e0fae6d7217caa000000092509050565b90939092509050565b6000818361130e5760405162461bcd60e51b815260040161055291906115ae565b506000610ea6848661177c565b60008060008060008060008060006113388a600c54600d54611487565b9250925092506000611348611119565b9050600080600061135b8e8787876114dc565b919e509c509a509598509396509194505050505091939550919395565b6000610f6a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e75565b6000806113c7838561179e565b905083811015610f6a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610552565b6000611423611119565b90506000611431838361152c565b3060009081526002602052604090205490915061144e90826113ba565b30600090815260026020526040902055505050565b6006546114709083611378565b60065560075461148090826113ba565b6007555050565b60008080806114a1606461149b898961152c565b9061113c565b905060006114b4606461149b8a8961152c565b905060006114cc826114c68b86611378565b90611378565b9992985090965090945050505050565b60008080806114eb888661152c565b905060006114f9888761152c565b90506000611507888861152c565b90506000611519826114c68686611378565b939b939a50919850919650505050505050565b60008260000361153e575060006104b9565b600061154a8385611868565b905082611557858361177c565b14610f6a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610552565b600060208083528351808285015260005b818110156115db578581018301518582016040015282016115bf565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106af57600080fd5b6000806040838503121561162457600080fd5b823561162f816115fc565b946020939093013593505050565b60008060006060848603121561165257600080fd5b833561165d816115fc565b9250602084013561166d816115fc565b929592945050506040919091013590565b6000806040838503121561169157600080fd5b50508035926020909101359150565b6000602082840312156116b257600080fd5b81358015158114610f6a57600080fd5b6000602082840312156116d457600080fd5b8135610f6a816115fc565b6000602082840312156116f157600080fd5b5035919050565b6000806040838503121561170b57600080fd5b8235611716816115fc565b91506020830135611726816115fc565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261179957634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104b9576104b9611766565b818103818111156104b9576104b9611766565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117ec57600080fd5b8151610f6a816115fc565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118475784516001600160a01b031683529383019391830191600101611822565b50506001600160a01b03969096166060850152505050608001529392505050565b600081600019048311821515161561188257611882611766565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d3462d9d1f794c83247d9696fd26078c0c5b485eb669d721143d3330ac67ae8f64736f6c63430008100033
Deployed Bytecode Sourcemap
3932:12675:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6363:83;;;;;;;;;;-1:-1:-1;6433:5:0;;;;;;;;;;;;-1:-1:-1;;;6433:5:0;;;;6363:83;;;;;;;:::i;:::-;;;;;;;;7295:193;;;;;;;;;;-1:-1:-1;7295:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7295:193:0;1023:187:1;5112:41:0;;;;;;;;;;-1:-1:-1;5112:41:0;;;;-1:-1:-1;;;;;5112:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5112:41:0;1215:229:1;6643:95:0;;;;;;;;;;-1:-1:-1;4498:24:0;6643:95;;;1595:25:1;;;1583:2;1568:18;6643:95:0;1449:177:1;7497:446:0;;;;;;;;;;-1:-1:-1;7497:446:0;;;;;:::i;:::-;;:::i;5395:59::-;;;;;;;;;;;;;;;;6551:83;;;;;;;;;;-1:-1:-1;6551:83:0;;4170:2;2234:36:1;;2222:2;2207:18;6551:83:0;2092:184:1;5160:28:0;;;;;;;;;;-1:-1:-1;5160:28:0;;;;-1:-1:-1;;;;;5160:28:0;;;15586:357;;;;;;;;;;-1:-1:-1;15586:357:0;;;;;:::i;:::-;;:::i;:::-;;16188:101;;;;;;;;;;-1:-1:-1;16188:101:0;;;;;:::i;:::-;;:::i;11934:235::-;;;;;;;;;;;;;:::i;6747:138::-;;;;;;;;;;-1:-1:-1;6747:138:0;;;;;:::i;:::-;;:::i;1779:148::-;;;;;;;;;;;;;:::i;16329:121::-;;;;;;;;;;-1:-1:-1;16329:121:0;;;;;:::i;:::-;;:::i;5273:52::-;;;;;;;;;;;;;;;;1563:79;;;;;;;;;;-1:-1:-1;1601:7:0;1628:6;-1:-1:-1;;;;;1628:6:0;1563:79;;5333:54;;;;;;;;;;;;;;;;6455:87;;;;;;;;;;-1:-1:-1;6527:7:0;;;;;;;;;;;;-1:-1:-1;;;6527:7:0;;;;6455:87;;15996:139;;;;;;;;;;-1:-1:-1;15996:139:0;;;;;:::i;:::-;;:::i;6894:199::-;;;;;;;;;;-1:-1:-1;6894:199:0;;;;;:::i;:::-;;:::i;11689:236::-;;;;;;;;;;;;;:::i;7102:184::-;;;;;;;;;;-1:-1:-1;7102:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7251:18:0;;;7219:7;7251:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7102:184;16459:143;;;;;;;;;;-1:-1:-1;16459:143:0;;;;;:::i;:::-;;:::i;1936:244::-;;;;;;;;;;-1:-1:-1;1936:244:0;;;;;:::i;:::-;;:::i;7295:193::-;7397:4;7419:39;392:10;7442:7;7451:6;7419:8;:39::i;:::-;-1:-1:-1;7476:4:0;7295:193;;;;;:::o;7497:446::-;7629:4;7646:36;7656:6;7664:9;7675:6;7646:9;:36::i;:::-;7693:220;7716:6;392:10;7764:138;7820:6;7764:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7764:19:0;;;;;;:11;:19;;;;;;;;392:10;7764:33;;;;;;;;;;:37;:138::i;:::-;7693:8;:220::i;:::-;-1:-1:-1;7931:4:0;7497:446;;;;;:::o;15586:357::-;1691:6;;-1:-1:-1;;;;;1691:6:0;392:10;1691:22;1683:67;;;;-1:-1:-1;;;1683:67:0;;;;;;;:::i;:::-;;;;;;;;;15716:2:::1;15701:11;:17;;15673:84;;;::::0;-1:-1:-1;;;15673:84:0;;4413:2:1;15673:84:0::1;::::0;::::1;4395:21:1::0;4452:2;4432:18;;;4425:30;4491:34;4471:18;;;4464:62;-1:-1:-1;;;4542:18:1;;;4535:32;4584:19;;15673:84:0::1;4211:398:1::0;15673:84:0::1;15813:2;15797:12;:18;;15768:87;;;::::0;-1:-1:-1;;;15768:87:0;;4816:2:1;15768:87:0::1;::::0;::::1;4798:21:1::0;4855:2;4835:18;;;4828:30;4894:34;4874:18;;;4867:62;-1:-1:-1;;;4945:18:1;;;4938:33;4988:19;;15768:87:0::1;4614:399:1::0;15768:87:0::1;15868:12;:26:::0;;;;15905:13:::1;:28:::0;15586:357::o;16188:101::-;1691:6;;-1:-1:-1;;;;;1691:6:0;392:10;1691:22;1683:67;;;;-1:-1:-1;;;1683:67:0;;;;;;;:::i;:::-;16255:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;16255:26:0::1;-1:-1:-1::0;;;;16255:26:0;;::::1;::::0;;;::::1;::::0;;16188:101::o;11934:235::-;12000:19;;-1:-1:-1;;;;;12000:19:0;392:10;-1:-1:-1;;;;;11984:35:0;;:72;;;-1:-1:-1;12039:17:0;;-1:-1:-1;;;;;12039:17:0;392:10;-1:-1:-1;;;;;12023:33:0;;11984:72;11976:81;;;;;;12097:21;12129:32;12097:21;12129:12;:32::i;:::-;11965:204;11934:235::o;6747:138::-;-1:-1:-1;;;;;6860:16:0;;6813:7;6860:16;;;:7;:16;;;;;;6840:37;;:19;:37::i;1779:148::-;1691:6;;-1:-1:-1;;;;;1691:6:0;392:10;1691:22;1683:67;;;;-1:-1:-1;;;1683:67:0;;;;;;;:::i;:::-;1886:1:::1;1870:6:::0;;1849:40:::1;::::0;-1:-1:-1;;;;;1870:6:0;;::::1;::::0;1849:40:::1;::::0;1886:1;;1849:40:::1;1917:1;1900:19:::0;;-1:-1:-1;;;;;;1900:19:0::1;::::0;;1779:148::o;16329:121::-;1691:6;;-1:-1:-1;;;;;1691:6:0;392:10;1691:22;1683:67;;;;-1:-1:-1;;;1683:67:0;;;;;;;:::i;:::-;16406:12:::1;:26:::0;16329:121::o;15996:139::-;1691:6;;-1:-1:-1;;;;;1691:6:0;392:10;1691:22;1683:67;;;;-1:-1:-1;;;1683:67:0;;;;;;;:::i;:::-;16087:19:::1;:40:::0;15996:139::o;6894:199::-;6999:4;7021:42;392:10;7045:9;7056:6;7021:9;:42::i;11689:236::-;11755:19;;-1:-1:-1;;;;;11755:19:0;392:10;-1:-1:-1;;;;;11739:35:0;;:72;;;-1:-1:-1;11794:17:0;;-1:-1:-1;;;;;11794:17:0;392:10;-1:-1:-1;;;;;11778:33:0;;11739:72;11731:81;;;;;;11823:23;11849:24;11867:4;11849:9;:24::i;:::-;11823:50;;11884:33;11901:15;11884:16;:33::i;16459:143::-;1691:6;;-1:-1:-1;;;;;1691:6:0;392:10;1691:22;1683:67;;;;-1:-1:-1;;;1683:67:0;;;;;;;:::i;:::-;16542:12:::1;16552:2:::0;4498:24:::1;16542:12;:::i;:::-;16525:14;:29:::0;;;16565:12:::1;:29:::0;-1:-1:-1;16459:143:0:o;1936:244::-;1691:6;;-1:-1:-1;;;;;1691:6:0;392:10;1691:22;1683:67;;;;-1:-1:-1;;;1683:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2025:22:0;::::1;2017:73;;;::::0;-1:-1:-1;;;2017:73:0;;5574:2:1;2017:73:0::1;::::0;::::1;5556:21:1::0;5613:2;5593:18;;;5586:30;5652:34;5632:18;;;5625:62;-1:-1:-1;;;5703:18:1;;;5696:36;5749:19;;2017:73:0::1;5372:402:1::0;2017:73:0::1;2127:6;::::0;;2106:38:::1;::::0;-1:-1:-1;;;;;2106:38:0;;::::1;::::0;2127:6;::::1;::::0;2106:38:::1;::::0;::::1;2155:6;:17:::0;;-1:-1:-1;;;;;;2155:17:0::1;-1:-1:-1::0;;;;;2155:17:0;;;::::1;::::0;;;::::1;::::0;;1936:244::o;8640:369::-;-1:-1:-1;;;;;8767:19:0;;8759:68;;;;-1:-1:-1;;;8759:68:0;;5981:2:1;8759:68:0;;;5963:21:1;6020:2;6000:18;;;5993:30;6059:34;6039:18;;;6032:62;-1:-1:-1;;;6110:18:1;;;6103:34;6154:19;;8759:68:0;5779:400:1;8759:68:0;-1:-1:-1;;;;;8846:21:0;;8838:68;;;;-1:-1:-1;;;8838:68:0;;6386:2:1;8838:68:0;;;6368:21:1;6425:2;6405:18;;;6398:30;6464:34;6444:18;;;6437:62;-1:-1:-1;;;6515:18:1;;;6508:32;6557:19;;8838:68:0;6184:398:1;8838:68:0;-1:-1:-1;;;;;8917:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8969:32;;1595:25:1;;;8969:32:0;;1568:18:1;8969:32:0;;;;;;;8640:369;;;:::o;9018:2062::-;-1:-1:-1;;;;;9140:18:0;;9132:68;;;;-1:-1:-1;;;9132:68:0;;6789:2:1;9132:68:0;;;6771:21:1;6828:2;6808:18;;;6801:30;6867:34;6847:18;;;6840:62;-1:-1:-1;;;6918:18:1;;;6911:35;6963:19;;9132:68:0;6587:401:1;9132:68:0;-1:-1:-1;;;;;9219:16:0;;9211:64;;;;-1:-1:-1;;;9211:64:0;;7195:2:1;9211:64:0;;;7177:21:1;7234:2;7214:18;;;7207:30;7273:34;7253:18;;;7246:62;-1:-1:-1;;;7324:18:1;;;7317:33;7367:19;;9211:64:0;6993:399:1;9211:64:0;9303:1;9294:6;:10;9286:64;;;;-1:-1:-1;;;9286:64:0;;7599:2:1;9286:64:0;;;7581:21:1;7638:2;7618:18;;;7611:30;7677:34;7657:18;;;7650:62;-1:-1:-1;;;7728:18:1;;;7721:39;7777:19;;9286:64:0;7397:405:1;9286:64:0;1601:7;1628:6;-1:-1:-1;;;;;9368:15:0;;;1628:6;;9368:15;;;;:32;;-1:-1:-1;1601:7:0;1628:6;-1:-1:-1;;;;;9387:13:0;;;1628:6;;9387:13;;9368:32;9364:984;;;9438:12;;9428:6;:22;;9420:63;;;;-1:-1:-1;;;9420:63:0;;8009:2:1;9420:63:0;;;7991:21:1;8048:2;8028:18;;;8021:30;8087;8067:18;;;8060:58;8135:18;;9420:63:0;7807:352:1;9420:63:0;9510:13;;-1:-1:-1;;;;;9504:19:0;;;9510:13;;9504:19;9501:146;;9577:14;;9568:6;9552:13;9562:2;9552:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9544:87;;;;-1:-1:-1;;;9544:87:0;;8496:2:1;9544:87:0;;;8478:21:1;8535:2;8515:18;;;8508:30;8574:34;8554:18;;;8547:62;-1:-1:-1;;;8625:18:1;;;8618:33;8668:19;;9544:87:0;8294:399:1;9544:87:0;9664:28;9695:24;9713:4;9695:9;:24::i;:::-;9773:19;;9837:12;;9664:55;;-1:-1:-1;9749:43:0;;;;9813:36;;9810:124;;9906:12;;9883:35;;9810:124;9955:7;:18;;;;-1:-1:-1;9967:6:0;;-1:-1:-1;;;9967:6:0;;;;9966:7;9955:18;:43;;;;-1:-1:-1;9985:13:0;;-1:-1:-1;;;;;9977:21:0;;;9985:13;;9977:21;;9955:43;:58;;;;-1:-1:-1;10002:11:0;;-1:-1:-1;;;10002:11:0;;;;9955:58;:87;;;;-1:-1:-1;;;;;;10018:24:0;;;;;;:18;:24;;;;;;;;10017:25;9955:87;:114;;;;-1:-1:-1;;;;;;10047:22:0;;;;;;:18;:22;;;;;;;;10046:23;9955:114;9951:386;;;10090:38;10107:20;10090:16;:38::i;:::-;10176:21;10220:22;;10216:106;;10267:35;10280:21;10267:12;:35::i;:::-;10071:266;9951:386;9402:946;;9364:984;-1:-1:-1;;;;;10426:24:0;;10361:12;10426:24;;;:18;:24;;;;;;10376:4;;10426:24;;;:50;;-1:-1:-1;;;;;;10454:22:0;;;;;;:18;:22;;;;;;;;10426:50;10425:102;;;-1:-1:-1;10490:13:0;;-1:-1:-1;;;;;10482:21:0;;;10490:13;;10482:21;;;;:44;;-1:-1:-1;10513:13:0;;-1:-1:-1;;;;;10507:19:0;;;10513:13;;10507:19;;10482:44;10421:597;;;-1:-1:-1;10554:5:0;10421:597;;;10638:13;;-1:-1:-1;;;;;10630:21:0;;;10638:13;;10630:21;:55;;;;-1:-1:-1;10669:15:0;;-1:-1:-1;;;;;10655:30:0;;;10669:15;;10655:30;;10630:55;10627:162;;;10718:14;;10706:9;:26;10761:12;;10751:7;:22;10627:162;10849:13;;-1:-1:-1;;;;;10843:19:0;;;10849:13;;10843:19;:55;;;;-1:-1:-1;10882:15:0;;-1:-1:-1;;;;;10866:32:0;;;10882:15;;10866:32;;10843:55;10839:165;;;10931:15;;10919:9;:27;10975:13;;10965:7;:23;10839:165;11031:41;11046:4;11052:2;11056:6;11064:7;11031:14;:41::i;:::-;9121:1959;9018:2062;;;:::o;2548:224::-;2668:7;2704:12;2696:6;;;;2688:29;;;;-1:-1:-1;;;2688:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2728:9:0;2740:5;2744:1;2740;:5;:::i;:::-;2728:17;2548:224;-1:-1:-1;;;;;2548:224:0:o;11581:99::-;11638:17;;:34;;-1:-1:-1;;;;;11638:17:0;;;;:34;;;;;11665:6;;11638:17;:34;:17;:34;11665:6;11638:17;:34;;;;;;;;;;;;;;;;;;;;;11581:99;:::o;7952:323::-;8047:7;8105;;8094;:18;;8072:110;;;;-1:-1:-1;;;8072:110:0;;9033:2:1;8072:110:0;;;9015:21:1;9072:2;9052:18;;;9045:30;9111:34;9091:18;;;9084:62;-1:-1:-1;;;9162:18:1;;;9155:40;9212:19;;8072:110:0;8831:406:1;8072:110:0;8193:19;8215:10;:8;:10::i;:::-;8193:32;-1:-1:-1;8243:24:0;:7;8193:32;8243:11;:24::i;:::-;8236:31;7952:323;-1:-1:-1;;;7952:323:0:o;11089:483::-;5549:6;:13;;-1:-1:-1;;;;5549:13:0;-1:-1:-1;;;5549:13:0;;;11191:16:::1;::::0;;11205:1:::1;11191:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11191:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11191:16:0::1;11167:40;;11236:4;11218;11223:1;11218:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11218:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11262:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11262:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11218:7;;11262:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11252:4;11257:1;11252:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11252:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11327:15:::1;::::0;11295:62:::1;::::0;11312:4:::1;::::0;11327:15:::1;11345:11:::0;11295:8:::1;:62::i;:::-;11368:15;::::0;:196:::1;::::0;-1:-1:-1;;;11368:196:0;;-1:-1:-1;;;;;11368:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11449:11;;11368:15:::1;::::0;11491:4;;11518::::1;::::0;11538:15:::1;::::0;11368:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5585:6:0;:14;;-1:-1:-1;;;;5585:14:0;;;-1:-1:-1;;;;11089:483:0:o;12178:282::-;12334:7;12329:28;;12343:14;:12;:14::i;:::-;12368:44;12386:6;12394:9;12405:6;12368:17;:44::i;:::-;12428:7;12423:29;;12437:15;8570:17;;8558:9;:29;8608:15;;8598:7;:25;8514:117;15147:164;15189:7;15210:15;15227;15246:19;:17;:19::i;:::-;15209:56;;-1:-1:-1;15209:56:0;-1:-1:-1;15283:20:0;15209:56;;15283:11;:20::i;:::-;15276:27;;;;15147:164;:::o;3036:132::-;3094:7;3121:39;3125:1;3128;3121:39;;;;;;;;;;;;;;;;;:3;:39::i;8284:221::-;8331:9;;:14;:30;;;;-1:-1:-1;8349:7:0;;:12;8331:30;8327:43;;;8284:221::o;8327:43::-;8403:9;;;8383:17;:29;8441:7;;;8423:15;:25;-1:-1:-1;8462:13:0;;;;8486:11;8284:221::o;12469:610::-;12616:15;12646:23;12684:12;12711:23;12749:12;12776:13;12803:19;12814:7;12803:10;:19::i;:::-;-1:-1:-1;;;;;12851:15:0;;;;;;:7;:15;;;;;;12601:221;;-1:-1:-1;12601:221:0;;-1:-1:-1;12601:221:0;;-1:-1:-1;12601:221:0;-1:-1:-1;12601:221:0;-1:-1:-1;12601:221:0;-1:-1:-1;12851:28:0;;12601:221;12851:19;:28::i;:::-;-1:-1:-1;;;;;12833:15:0;;;;;;;:7;:15;;;;;;:46;;;;12911:18;;;;;;;:39;;12934:15;12911:22;:39::i;:::-;-1:-1:-1;;;;;12890:18:0;;;;;;:7;:18;;;;;:60;12961:16;12971:5;12961:9;:16::i;:::-;12988:23;13000:4;13006;12988:11;:23::i;:::-;13044:9;-1:-1:-1;;;;;13027:44:0;13036:6;-1:-1:-1;;;;;13027:44:0;;13055:15;13027:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;13027:44:0;;;;;;;;12590:489;;;;;;12469:610;;;:::o;15320:257::-;15418:7;;15371;;;;4498:24;15486:20;15418:7;4498:24;15486:11;:20::i;:::-;15476:7;:30;15472:61;;;-1:-1:-1;;15516:7:0;;;4498:24;;-1:-1:-1;15320:257:0;-1:-1:-1;15320:257:0:o;15472:61::-;15552:7;;15561;;-1:-1:-1;15320:257:0;-1:-1:-1;15320:257:0:o;3177:223::-;3297:7;3332:12;3325:5;3317:28;;;;-1:-1:-1;;;3317:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3356:9:0;3368:5;3372:1;3368;:5;:::i;13502:615::-;13602:7;13624;13646;13668;13690;13712;13748:23;13773:12;13787:13;13817:40;13829:7;13838:9;;13849:7;;13817:11;:40::i;:::-;13747:110;;;;;;13868:19;13890:10;:8;:10::i;:::-;13868:32;;13912:15;13929:23;13954:12;13983:46;13995:7;14004:4;14010:5;14017:11;13983;:46::i;:::-;13911:118;;-1:-1:-1;13911:118:0;-1:-1:-1;13911:118:0;-1:-1:-1;14080:15:0;;-1:-1:-1;14097:4:0;;-1:-1:-1;14103:5:0;;-1:-1:-1;;;;;13502:615:0;;;;;;;:::o;2403:136::-;2461:7;2488:43;2492:1;2495;2488:43;;;;;;;;;;;;;;;;;:3;:43::i;2215:179::-;2273:7;;2305:5;2309:1;2305;:5;:::i;:::-;2293:17;;2334:1;2329;:6;;2321:46;;;;-1:-1:-1;;;2321:46:0;;10949:2:1;2321:46:0;;;10931:21:1;10988:2;10968:18;;;10961:30;11027:29;11007:18;;;11000:57;11074:18;;2321:46:0;10747:351:1;13088:211:0;13141:19;13163:10;:8;:10::i;:::-;13141:32;-1:-1:-1;13184:13:0;13200:22;:5;13141:32;13200:9;:22::i;:::-;13274:4;13258:22;;;;:7;:22;;;;;;13184:38;;-1:-1:-1;13258:33:0;;13184:38;13258:26;:33::i;:::-;13249:4;13233:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13088:211:0:o;13308:147::-;13386:7;;:17;;13398:4;13386:11;:17::i;:::-;13376:7;:27;13427:10;;:20;;13442:4;13427:14;:20::i;:::-;13414:10;:33;-1:-1:-1;;13308:147:0:o;14126:469::-;14295:7;;;;14389:30;14415:3;14389:21;:7;14401:8;14389:11;:21::i;:::-;:25;;:30::i;:::-;14374:45;-1:-1:-1;14430:13:0;14446:28;14470:3;14446:19;:7;14458:6;14446:11;:19::i;:28::-;14430:44;-1:-1:-1;14485:23:0;14511:28;14430:44;14511:17;:7;14523:4;14511:11;:17::i;:::-;:21;;:28::i;:::-;14485:54;14575:4;;-1:-1:-1;14581:5:0;;-1:-1:-1;14126:469:0;;-1:-1:-1;;;;;14126:469:0:o;14604:534::-;14798:7;;;;14895:24;:7;14907:11;14895;:24::i;:::-;14877:42;-1:-1:-1;14930:12:0;14945:21;:4;14954:11;14945:8;:21::i;:::-;14930:36;-1:-1:-1;14977:13:0;14993:22;:5;15003:11;14993:9;:22::i;:::-;14977:38;-1:-1:-1;15026:23:0;15052:28;14977:38;15052:17;:7;15064:4;15052:11;:17::i;:28::-;15099:7;;;;-1:-1:-1;15125:4:0;;-1:-1:-1;14604:534:0;;-1:-1:-1;;;;;;;14604:534:0:o;2781:246::-;2839:7;2863:1;2868;2863:6;2859:47;;-1:-1:-1;2893:1:0;2886:8;;2859:47;2916:9;2928:5;2932:1;2928;:5;:::i;:::-;2916:17;-1:-1:-1;2961:1:0;2952:5;2956:1;2916:17;2952:5;:::i;:::-;:10;2944:56;;;;-1:-1:-1;;;2944:56:0;;11478:2:1;2944:56:0;;;11460:21:1;11517:2;11497:18;;;11490:30;11556:34;11536:18;;;11529:62;-1:-1:-1;;;11607:18:1;;;11600:31;11648:19;;2944:56:0;11276:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:248::-;2557:6;2565;2618:2;2606:9;2597:7;2593:23;2589:32;2586:52;;;2634:1;2631;2624:12;2586:52;-1:-1:-1;;2657:23:1;;;2727:2;2712:18;;;2699:32;;-1:-1:-1;2489:248:1:o;2742:273::-;2798:6;2851:2;2839:9;2830:7;2826:23;2822:32;2819:52;;;2867:1;2864;2857:12;2819:52;2906:9;2893:23;2959:5;2952:13;2945:21;2938:5;2935:32;2925:60;;2981:1;2978;2971:12;3020:247;3079:6;3132:2;3120:9;3111:7;3107:23;3103:32;3100:52;;;3148:1;3145;3138:12;3100:52;3187:9;3174:23;3206:31;3231:5;3206:31;:::i;3272:180::-;3331:6;3384:2;3372:9;3363:7;3359:23;3355:32;3352:52;;;3400:1;3397;3390:12;3352:52;-1:-1:-1;3423:23:1;;3272:180;-1:-1:-1;3272:180:1:o;3457:388::-;3525:6;3533;3586:2;3574:9;3565:7;3561:23;3557:32;3554:52;;;3602:1;3599;3592:12;3554:52;3641:9;3628:23;3660:31;3685:5;3660:31;:::i;:::-;3710:5;-1:-1:-1;3767:2:1;3752:18;;3739:32;3780:33;3739:32;3780:33;:::i;:::-;3832:7;3822:17;;;3457:388;;;;;:::o;3850:356::-;4052:2;4034:21;;;4071:18;;;4064:30;4130:34;4125:2;4110:18;;4103:62;4197:2;4182:18;;3850:356::o;5018:127::-;5079:10;5074:3;5070:20;5067:1;5060:31;5110:4;5107:1;5100:15;5134:4;5131:1;5124:15;5150:217;5190:1;5216;5206:132;;5260:10;5255:3;5251:20;5248:1;5241:31;5295:4;5292:1;5285:15;5323:4;5320:1;5313:15;5206:132;-1:-1:-1;5352:9:1;;5150:217::o;8164:125::-;8229:9;;;8250:10;;;8247:36;;;8263:18;;:::i;8698:128::-;8765:9;;;8786:11;;;8783:37;;;8800:18;;:::i;9374:127::-;9435:10;9430:3;9426:20;9423:1;9416:31;9466:4;9463:1;9456:15;9490:4;9487:1;9480:15;9506:251;9576:6;9629:2;9617:9;9608:7;9604:23;9600:32;9597:52;;;9645:1;9642;9635:12;9597:52;9677:9;9671:16;9696:31;9721:5;9696:31;:::i;9762:980::-;10024:4;10072:3;10061:9;10057:19;10103:6;10092:9;10085:25;10129:2;10167:6;10162:2;10151:9;10147:18;10140:34;10210:3;10205:2;10194:9;10190:18;10183:31;10234:6;10269;10263:13;10300:6;10292;10285:22;10338:3;10327:9;10323:19;10316:26;;10377:2;10369:6;10365:15;10351:29;;10398:1;10408:195;10422:6;10419:1;10416:13;10408:195;;;10487:13;;-1:-1:-1;;;;;10483:39:1;10471:52;;10578:15;;;;10543:12;;;;10519:1;10437:9;10408:195;;;-1:-1:-1;;;;;;;10659:32:1;;;;10654:2;10639:18;;10632:60;-1:-1:-1;;;10723:3:1;10708:19;10701:35;10620:3;9762:980;-1:-1:-1;;;9762:980:1:o;11103:168::-;11143:7;11209:1;11205;11201:6;11197:14;11194:1;11191:21;11186:1;11179:9;11172:17;11168:45;11165:71;;;11216:18;;:::i;:::-;-1:-1:-1;11256:9:1;;11103:168::o
Swarm Source
ipfs://d3462d9d1f794c83247d9696fd26078c0c5b485eb669d721143d3330ac67ae8f
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.