Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000,000 GM
Holders
14
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
45,519,807.976679254 GMValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GoodMongoose
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-12-11 */ /* ________ .___ _____ / _____/ ____ ____ __| _/ / \ ____ ____ ____ ____ ____ ______ ____ / \ ___ / _ \ / _ \ / __ | / \ / \ / _ \ / \ / ___\ / _ \ / _ \/ ___// __ \ \ \_\ ( <_> | <_> ) /_/ | / Y ( <_> ) | \/ /_/ > <_> | <_> )___ \\ ___/ \______ /\____/ \____/\____ | \____|__ /\____/|___| /\___ / \____/ \____/____ >\___ > \/ \/ \/ \//_____/ \/ \/ Stealth Launch - The Good Mongoose brings you much prosperity and wealth */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; pragma experimental ABIEncoderV2; 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) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 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; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address payable private _owner; address payable private _previousOwner; uint256 private _lockTime; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { _owner = payable(msg.sender); emit OwnershipTransferred(address(0), _owner); } 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 = payable(address(0)); } function transferOwnership(address payable newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function geUnlockTime() public view returns (uint256) { return _lockTime; } //Locks the contract for owner for the amount of time provided function lock(uint256 time) public virtual onlyOwner { _previousOwner = _owner; _owner = payable(address(0)); _lockTime = block.timestamp + time; emit OwnershipTransferred(_owner, address(0)); } //Unlocks the contract for owner when _lockTime is exceeds function unlock() public virtual { require(_previousOwner == msg.sender, "You don't have permission to unlock"); require(block.timestamp > _lockTime , "Contract is locked until defined days"); emit OwnershipTransferred(_owner, _previousOwner); _owner = _previousOwner; _previousOwner = payable(address(0)); } } interface uniSwapFactory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IPancakePair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IPancakeRouter01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface uniSwapRouter02 is IPancakeRouter01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } library Utils { using SafeMath for uint256; function swapTokensForEth( address routerAddress, uint256 tokenAmount ) internal { uniSwapRouter02 uniSwapRouter = uniSwapRouter02(routerAddress); // generate the pancake pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniSwapRouter.WETH(); // make the swap uniSwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of BNB path, address(this), block.timestamp + 360 ); } function swapETHForTokens( address routerAddress, address recipient, uint256 ethAmount ) internal { uniSwapRouter02 uniSwapRouter = uniSwapRouter02(routerAddress); // generate the pancake pair path of token -> weth address[] memory path = new address[](2); path[0] = uniSwapRouter.WETH(); path[1] = address(this); // make the swap uniSwapRouter.swapExactETHForTokensSupportingFeeOnTransferTokens{value: ethAmount}( 0, // accept any amount of BNB path, address(recipient), block.timestamp + 360 ); } function addLiquidity( address routerAddress, address owner, uint256 tokenAmount, uint256 ethAmount ) internal { uniSwapRouter02 uniSwapRouter = uniSwapRouter02(routerAddress); // add the liquidity uniSwapRouter.addLiquidityETH{value : ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner, block.timestamp + 360 ); } } abstract contract ReentrancyGuard { uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor () { _status = _NOT_ENTERED; } modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } modifier isHuman() { require(tx.origin == msg.sender, "sorry humans only"); _; } } contract GoodMongoose is Context, IERC20, Ownable, ReentrancyGuard { using SafeMath for uint256; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private bots; mapping(address => uint256) private cooldown; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1e10 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _feeAddr1; uint256 private _feeAddr2; address payable private _feeAddrWallet1; address payable private _feeAddrWallet2; string private constant _name = "Good Mongoose"; string private constant _symbol = "GM"; uint8 private constant _decimals = 9; uniSwapRouter02 public uniSwapRouter; address public uniSwapPair; bool private _antimongoose = true; //once switched on, can never be switched off. bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; bool private cooldownEnabled = false; uint256 private _maxTxAmount = _tTotal; event MaxTxAmountUpdated(uint256 _maxTxAmount); event antiWaleUpdate(bool enabled); modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor() { _feeAddrWallet1 = payable(0xe8468c89768069841A9c32d97bC3327219A07213); _feeAddrWallet2 = payable(0xe8468c89768069841A9c32d97bC3327219A07213); _rOwned[_msgSender()] = _rTotal; uniSwapRouter02 _pancakeRouter = uniSwapRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Create a pancake pair for this new token uniSwapPair = uniSwapFactory(_pancakeRouter.factory()) .createPair(address(this), _pancakeRouter.WETH()); // set the rest of the contract variables uniSwapRouter = _pancakeRouter; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_feeAddrWallet1] = true; _isExcludedFromFee[_feeAddrWallet2] = true; emit Transfer(address(0xa1817B6d8D890F3943b61648992730373B71f156), _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 setCooldownEnabled(bool onoff) external onlyOwner { cooldownEnabled = onoff; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _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"); _feeAddr1 = 3; _feeAddr2 = 3; if (!_antimongoose) { require(to != uniSwapPair, "ERC20: antimongoose is not enabled yet"); } if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); if ( from == uniSwapPair && to != address(uniSwapRouter) && !_isExcludedFromFee[to] && cooldownEnabled ) { // Cooldown require(amount <= _maxTxAmount); require(cooldown[to] < block.timestamp); cooldown[to] = block.timestamp + (30 seconds); } if ( to == uniSwapPair && from != address(uniSwapRouter) && !_isExcludedFromFee[from] ) { _feeAddr1 = 3; _feeAddr2 = 3; } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniSwapPair && swapEnabled) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } _tokenTransfer(from, to, amount); } function antimongooseStatus(bool _state) public onlyOwner { _antimongoose = _state; emit antiWaleUpdate(_state); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniSwapRouter.WETH(); _approve(address(this), address(uniSwapRouter), tokenAmount); uniSwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _feeAddrWallet2.transfer(amount); } function openTrading() external onlyOwner { require(!tradingOpen, "trading is already open"); uniSwapRouter02 _uniswapV2Router = uniSwapRouter02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniSwapRouter = _uniswapV2Router; _approve(address(this), address(uniSwapRouter), _tTotal); uniSwapPair = uniSwapFactory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniSwapRouter.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); swapEnabled = true; cooldownEnabled = true; _maxTxAmount = 20000000000 * 10 ** 9; tradingOpen = true; IERC20(uniSwapPair).approve( address(uniSwapRouter), type(uint256).max ); } function nonosquare(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount ) private { _transferStandard(sender, recipient, amount); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function manualswap() external { require(_msgSender() == _feeAddrWallet1); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _feeAddrWallet1); 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, _feeAddr1, _feeAddr2 ); 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
- 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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"antiWaleUpdate","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":"bool","name":"_state","type":"bool"}],"name":"antimongooseStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"nonosquare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniSwapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniSwapRouter","outputs":[{"internalType":"contract uniSwapRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526200001a678ac7230489e8000060001962000398565b6200002890600019620003bb565b600a556011805464ffffff00ff60a01b1916600160a01b179055678ac7230489e800006012553480156200005b57600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36001600355600e805473e8468c89768069841a9c32d97bc3327219a072136001600160a01b03199182168117909255600f80549091169091179055600a5460046000620000e53390565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000161573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001879190620003e1565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fb9190620003e1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000249573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026f9190620003e1565b601180546001600160a01b03199081166001600160a01b039384161790915560108054909116918316919091179055600160076000620002b76000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526007909352818320805485166001908117909155600e54821684528284208054861682179055600f54909116835291208054909216179055620003283390565b6001600160a01b031673a1817b6d8d890f3943b61648992730373b71f1566001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef678ac7230489e800006040516200038991815260200190565b60405180910390a35062000413565b600082620003b657634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620003dc57634e487b7160e01b600052601160045260246000fd5b500390565b600060208284031215620003f457600080fd5b81516001600160a01b03811681146200040c57600080fd5b9392505050565b611e1480620004236000396000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063c3c8cd801161006f578063c3c8cd80146103cb578063c9567bf9146103e0578063d837df05146103f5578063dd46706414610415578063dd62ed3e14610435578063f2fde38b1461047b57600080fd5b8063715018a6146103235780638da5cb5b1461033857806395d89b4114610356578063a69df4b514610381578063a9059cbb14610396578063b6c52324146103b657600080fd5b8063313ce56711610108578063313ce5671461025a5780635365fb5a146102765780635932ead1146102965780635d01ff3d146102b65780636fc3eaec146102ee57806370a082311461030357600080fd5b806306fdde031461015b578063095ea7b3146101a357806318160ddd146101d35780631b3f71ae146101f857806323b872dd1461021a578063273123b71461023a57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600d81526c476f6f64204d6f6e676f6f736560981b60208201525b60405161019a9190611975565b60405180910390f35b3480156101af57600080fd5b506101c36101be3660046119ef565b61049b565b604051901515815260200161019a565b3480156101df57600080fd5b50678ac7230489e800005b60405190815260200161019a565b34801561020457600080fd5b50610218610213366004611a31565b6104b2565b005b34801561022657600080fd5b506101c3610235366004611af6565b610551565b34801561024657600080fd5b50610218610255366004611b37565b6105ba565b34801561026657600080fd5b506040516009815260200161019a565b34801561028257600080fd5b50610218610291366004611b62565b610605565b3480156102a257600080fd5b506102186102b1366004611b62565b610687565b3480156102c257600080fd5b506010546102d6906001600160a01b031681565b6040516001600160a01b03909116815260200161019a565b3480156102fa57600080fd5b506102186106cf565b34801561030f57600080fd5b506101ea61031e366004611b37565b6106fc565b34801561032f57600080fd5b5061021861071e565b34801561034457600080fd5b506000546001600160a01b03166102d6565b34801561036257600080fd5b50604080518082019091526002815261474d60f01b602082015261018d565b34801561038d57600080fd5b50610218610780565b3480156103a257600080fd5b506101c36103b13660046119ef565b610897565b3480156103c257600080fd5b506002546101ea565b3480156103d757600080fd5b506102186108a4565b3480156103ec57600080fd5b506102186108da565b34801561040157600080fd5b506011546102d6906001600160a01b031681565b34801561042157600080fd5b50610218610430366004611b7f565b610c52565b34801561044157600080fd5b506101ea610450366004611b98565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561048757600080fd5b50610218610496366004611b37565b610cd7565b60006104a8338484610daf565b5060015b92915050565b6000546001600160a01b031633146104e55760405162461bcd60e51b81526004016104dc90611bd1565b60405180910390fd5b60005b815181101561054d5760016008600084848151811061050957610509611c06565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061054581611c32565b9150506104e8565b5050565b600061055e848484610ed3565b6105b084336105ab85604051806060016040528060288152602001611d97602891396001600160a01b038a166000908152600660209081526040808320338452909152902054919061129e565b610daf565b5060019392505050565b6000546001600160a01b031633146105e45760405162461bcd60e51b81526004016104dc90611bd1565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6000546001600160a01b0316331461062f5760405162461bcd60e51b81526004016104dc90611bd1565b60118054821515600160a01b0260ff60a01b199091161790556040517f05665953dcd96697af2fd47f7b4acf930f3936c777e229cd6f98db953ef336ea9061067c90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146106b15760405162461bcd60e51b81526004016104dc90611bd1565b60118054911515600160c01b0260ff60c01b19909216919091179055565b600e546001600160a01b0316336001600160a01b0316146106ef57600080fd5b476106f9816112d8565b50565b6001600160a01b0381166000908152600460205260408120546104ac90611312565b6000546001600160a01b031633146107485760405162461bcd60e51b81526004016104dc90611bd1565b600080546040516001600160a01b0390911690600080516020611dbf833981519152908390a3600080546001600160a01b0319169055565b6001546001600160a01b031633146107e65760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016104dc565b60025442116108455760405162461bcd60e51b815260206004820152602560248201527f436f6e7472616374206973206c6f636b656420756e74696c20646566696e6564604482015264206461797360d81b60648201526084016104dc565b600154600080546040516001600160a01b039384169390911691600080516020611dbf83398151915291a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006104a8338484610ed3565b600e546001600160a01b0316336001600160a01b0316146108c457600080fd5b60006108cf306106fc565b90506106f981611396565b6000546001600160a01b031633146109045760405162461bcd60e51b81526004016104dc90611bd1565b601154600160a81b900460ff161561095e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104dc565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561099a3082678ac7230489e80000610daf565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fc9190611c4d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6d9190611c4d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610aba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ade9190611c4d565b601180546001600160a01b0319166001600160a01b039283161790556010541663f305d7194730610b0e816106fc565b600080610b236000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b8b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bb09190611c6a565b5050601180546801158e460913d0000060125563ffff00ff60a81b198116630101000160a81b1790915560105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610c2e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054d9190611c98565b6000546001600160a01b03163314610c7c5760405162461bcd60e51b81526004016104dc90611bd1565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610cab8142611cb5565b600255600080546040516001600160a01b0390911690600080516020611dbf833981519152908390a350565b6000546001600160a01b03163314610d015760405162461bcd60e51b81526004016104dc90611bd1565b6001600160a01b038116610d665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104dc565b600080546040516001600160a01b0380851693921691600080516020611dbf83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e115760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104dc565b6001600160a01b038216610e725760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104dc565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f375760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104dc565b6001600160a01b038216610f995760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104dc565b60008111610ffb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104dc565b6003600c819055600d55601154600160a01b900460ff16611083576011546001600160a01b03838116911614156110835760405162461bcd60e51b815260206004820152602660248201527f45524332303a20616e74696d6f6e676f6f7365206973206e6f7420656e61626c6044820152651959081e595d60d21b60648201526084016104dc565b6000546001600160a01b038481169116148015906110af57506000546001600160a01b03838116911614155b1561128e576001600160a01b03831660009081526008602052604090205460ff161580156110f657506001600160a01b03821660009081526008602052604090205460ff16155b6110ff57600080fd5b6011546001600160a01b03848116911614801561112a57506010546001600160a01b03838116911614155b801561114f57506001600160a01b03821660009081526007602052604090205460ff16155b80156111645750601154600160c01b900460ff165b156111c15760125481111561117857600080fd5b6001600160a01b038216600090815260096020526040902054421161119c57600080fd5b6111a742601e611cb5565b6001600160a01b0383166000908152600960205260409020555b6011546001600160a01b0383811691161480156111ec57506010546001600160a01b03848116911614155b801561121157506001600160a01b03831660009081526007602052604090205460ff16155b15611221576003600c819055600d555b600061122c306106fc565b601154909150600160b01b900460ff1615801561125757506011546001600160a01b03858116911614155b801561126c5750601154600160b81b900460ff165b1561128c5761127a81611396565b47801561128a5761128a476112d8565b505b505b611299838383611510565b505050565b600081848411156112c25760405162461bcd60e51b81526004016104dc9190611975565b5060006112cf8486611ccd565b95945050505050565b600f546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561054d573d6000803e3d6000fd5b6000600a548211156113795760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104dc565b600061138361151b565b905061138f838261153e565b9392505050565b6011805460ff60b01b1916600160b01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106113de576113de611c06565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611437573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145b9190611c4d565b8160018151811061146e5761146e611c06565b6001600160a01b0392831660209182029290920101526010546114949130911684610daf565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906114cd908590600090869030904290600401611ce4565b600060405180830381600087803b1580156114e757600080fd5b505af11580156114fb573d6000803e3d6000fd5b50506011805460ff60b01b1916905550505050565b611299838383611580565b6000806000611528611677565b9092509050611537828261153e565b9250505090565b600061138f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116b7565b600080600080600080611592876116e5565b6001600160a01b038f16600090815260046020526040902054959b509399509197509550935091506115c49087611742565b6001600160a01b03808b1660009081526004602052604080822093909355908a16815220546115f39086611784565b6001600160a01b038916600090815260046020526040902055611615816117e3565b61161f848361182d565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161166491815260200190565b60405180910390a3505050505050505050565b600a546000908190678ac7230489e80000611692828261153e565b8210156116ae575050600a5492678ac7230489e8000092509050565b90939092509050565b600081836116d85760405162461bcd60e51b81526004016104dc9190611975565b5060006112cf8486611d55565b60008060008060008060008060006117028a600c54600d54611851565b925092509250600061171261151b565b905060008060006117258e8787876118a6565b919e509c509a509598509396509194505050505091939550919395565b600061138f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061129e565b6000806117918385611cb5565b90508381101561138f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104dc565b60006117ed61151b565b905060006117fb83836118f6565b306000908152600460205260409020549091506118189082611784565b30600090815260046020526040902055505050565b600a5461183a9083611742565b600a55600b5461184a9082611784565b600b555050565b600080808061186b606461186589896118f6565b9061153e565b9050600061187e60646118658a896118f6565b90506000611896826118908b86611742565b90611742565b9992985090965090945050505050565b60008080806118b588866118f6565b905060006118c388876118f6565b905060006118d188886118f6565b905060006118e3826118908686611742565b939b939a50919850919650505050505050565b600082611905575060006104ac565b60006119118385611d77565b90508261191e8583611d55565b1461138f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104dc565b600060208083528351808285015260005b818110156119a257858101830151858201604001528201611986565b818111156119b4576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146106f957600080fd5b80356119ea816119ca565b919050565b60008060408385031215611a0257600080fd5b8235611a0d816119ca565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611a4457600080fd5b823567ffffffffffffffff80821115611a5c57600080fd5b818501915085601f830112611a7057600080fd5b813581811115611a8257611a82611a1b565b8060051b604051601f19603f83011681018181108582111715611aa757611aa7611a1b565b604052918252848201925083810185019188831115611ac557600080fd5b938501935b82851015611aea57611adb856119df565b84529385019392850192611aca565b98975050505050505050565b600080600060608486031215611b0b57600080fd5b8335611b16816119ca565b92506020840135611b26816119ca565b929592945050506040919091013590565b600060208284031215611b4957600080fd5b813561138f816119ca565b80151581146106f957600080fd5b600060208284031215611b7457600080fd5b813561138f81611b54565b600060208284031215611b9157600080fd5b5035919050565b60008060408385031215611bab57600080fd5b8235611bb6816119ca565b91506020830135611bc6816119ca565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611c4657611c46611c1c565b5060010190565b600060208284031215611c5f57600080fd5b815161138f816119ca565b600080600060608486031215611c7f57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611caa57600080fd5b815161138f81611b54565b60008219821115611cc857611cc8611c1c565b500190565b600082821015611cdf57611cdf611c1c565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d345784516001600160a01b031683529383019391830191600101611d0f565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611d7257634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611d9157611d91611c1c565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220eb6191d61c65ad9ff696958595946225756d8390dd8f8ef67862167ca458e96364736f6c634300080a0033
Deployed Bytecode
0x60806040526004361061014f5760003560e01c8063715018a6116100b6578063c3c8cd801161006f578063c3c8cd80146103cb578063c9567bf9146103e0578063d837df05146103f5578063dd46706414610415578063dd62ed3e14610435578063f2fde38b1461047b57600080fd5b8063715018a6146103235780638da5cb5b1461033857806395d89b4114610356578063a69df4b514610381578063a9059cbb14610396578063b6c52324146103b657600080fd5b8063313ce56711610108578063313ce5671461025a5780635365fb5a146102765780635932ead1146102965780635d01ff3d146102b65780636fc3eaec146102ee57806370a082311461030357600080fd5b806306fdde031461015b578063095ea7b3146101a357806318160ddd146101d35780631b3f71ae146101f857806323b872dd1461021a578063273123b71461023a57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600d81526c476f6f64204d6f6e676f6f736560981b60208201525b60405161019a9190611975565b60405180910390f35b3480156101af57600080fd5b506101c36101be3660046119ef565b61049b565b604051901515815260200161019a565b3480156101df57600080fd5b50678ac7230489e800005b60405190815260200161019a565b34801561020457600080fd5b50610218610213366004611a31565b6104b2565b005b34801561022657600080fd5b506101c3610235366004611af6565b610551565b34801561024657600080fd5b50610218610255366004611b37565b6105ba565b34801561026657600080fd5b506040516009815260200161019a565b34801561028257600080fd5b50610218610291366004611b62565b610605565b3480156102a257600080fd5b506102186102b1366004611b62565b610687565b3480156102c257600080fd5b506010546102d6906001600160a01b031681565b6040516001600160a01b03909116815260200161019a565b3480156102fa57600080fd5b506102186106cf565b34801561030f57600080fd5b506101ea61031e366004611b37565b6106fc565b34801561032f57600080fd5b5061021861071e565b34801561034457600080fd5b506000546001600160a01b03166102d6565b34801561036257600080fd5b50604080518082019091526002815261474d60f01b602082015261018d565b34801561038d57600080fd5b50610218610780565b3480156103a257600080fd5b506101c36103b13660046119ef565b610897565b3480156103c257600080fd5b506002546101ea565b3480156103d757600080fd5b506102186108a4565b3480156103ec57600080fd5b506102186108da565b34801561040157600080fd5b506011546102d6906001600160a01b031681565b34801561042157600080fd5b50610218610430366004611b7f565b610c52565b34801561044157600080fd5b506101ea610450366004611b98565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561048757600080fd5b50610218610496366004611b37565b610cd7565b60006104a8338484610daf565b5060015b92915050565b6000546001600160a01b031633146104e55760405162461bcd60e51b81526004016104dc90611bd1565b60405180910390fd5b60005b815181101561054d5760016008600084848151811061050957610509611c06565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061054581611c32565b9150506104e8565b5050565b600061055e848484610ed3565b6105b084336105ab85604051806060016040528060288152602001611d97602891396001600160a01b038a166000908152600660209081526040808320338452909152902054919061129e565b610daf565b5060019392505050565b6000546001600160a01b031633146105e45760405162461bcd60e51b81526004016104dc90611bd1565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6000546001600160a01b0316331461062f5760405162461bcd60e51b81526004016104dc90611bd1565b60118054821515600160a01b0260ff60a01b199091161790556040517f05665953dcd96697af2fd47f7b4acf930f3936c777e229cd6f98db953ef336ea9061067c90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146106b15760405162461bcd60e51b81526004016104dc90611bd1565b60118054911515600160c01b0260ff60c01b19909216919091179055565b600e546001600160a01b0316336001600160a01b0316146106ef57600080fd5b476106f9816112d8565b50565b6001600160a01b0381166000908152600460205260408120546104ac90611312565b6000546001600160a01b031633146107485760405162461bcd60e51b81526004016104dc90611bd1565b600080546040516001600160a01b0390911690600080516020611dbf833981519152908390a3600080546001600160a01b0319169055565b6001546001600160a01b031633146107e65760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016104dc565b60025442116108455760405162461bcd60e51b815260206004820152602560248201527f436f6e7472616374206973206c6f636b656420756e74696c20646566696e6564604482015264206461797360d81b60648201526084016104dc565b600154600080546040516001600160a01b039384169390911691600080516020611dbf83398151915291a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006104a8338484610ed3565b600e546001600160a01b0316336001600160a01b0316146108c457600080fd5b60006108cf306106fc565b90506106f981611396565b6000546001600160a01b031633146109045760405162461bcd60e51b81526004016104dc90611bd1565b601154600160a81b900460ff161561095e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104dc565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561099a3082678ac7230489e80000610daf565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fc9190611c4d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6d9190611c4d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610aba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ade9190611c4d565b601180546001600160a01b0319166001600160a01b039283161790556010541663f305d7194730610b0e816106fc565b600080610b236000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b8b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bb09190611c6a565b5050601180546801158e460913d0000060125563ffff00ff60a81b198116630101000160a81b1790915560105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610c2e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054d9190611c98565b6000546001600160a01b03163314610c7c5760405162461bcd60e51b81526004016104dc90611bd1565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610cab8142611cb5565b600255600080546040516001600160a01b0390911690600080516020611dbf833981519152908390a350565b6000546001600160a01b03163314610d015760405162461bcd60e51b81526004016104dc90611bd1565b6001600160a01b038116610d665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104dc565b600080546040516001600160a01b0380851693921691600080516020611dbf83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e115760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104dc565b6001600160a01b038216610e725760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104dc565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f375760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104dc565b6001600160a01b038216610f995760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104dc565b60008111610ffb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104dc565b6003600c819055600d55601154600160a01b900460ff16611083576011546001600160a01b03838116911614156110835760405162461bcd60e51b815260206004820152602660248201527f45524332303a20616e74696d6f6e676f6f7365206973206e6f7420656e61626c6044820152651959081e595d60d21b60648201526084016104dc565b6000546001600160a01b038481169116148015906110af57506000546001600160a01b03838116911614155b1561128e576001600160a01b03831660009081526008602052604090205460ff161580156110f657506001600160a01b03821660009081526008602052604090205460ff16155b6110ff57600080fd5b6011546001600160a01b03848116911614801561112a57506010546001600160a01b03838116911614155b801561114f57506001600160a01b03821660009081526007602052604090205460ff16155b80156111645750601154600160c01b900460ff165b156111c15760125481111561117857600080fd5b6001600160a01b038216600090815260096020526040902054421161119c57600080fd5b6111a742601e611cb5565b6001600160a01b0383166000908152600960205260409020555b6011546001600160a01b0383811691161480156111ec57506010546001600160a01b03848116911614155b801561121157506001600160a01b03831660009081526007602052604090205460ff16155b15611221576003600c819055600d555b600061122c306106fc565b601154909150600160b01b900460ff1615801561125757506011546001600160a01b03858116911614155b801561126c5750601154600160b81b900460ff165b1561128c5761127a81611396565b47801561128a5761128a476112d8565b505b505b611299838383611510565b505050565b600081848411156112c25760405162461bcd60e51b81526004016104dc9190611975565b5060006112cf8486611ccd565b95945050505050565b600f546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561054d573d6000803e3d6000fd5b6000600a548211156113795760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104dc565b600061138361151b565b905061138f838261153e565b9392505050565b6011805460ff60b01b1916600160b01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106113de576113de611c06565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611437573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145b9190611c4d565b8160018151811061146e5761146e611c06565b6001600160a01b0392831660209182029290920101526010546114949130911684610daf565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906114cd908590600090869030904290600401611ce4565b600060405180830381600087803b1580156114e757600080fd5b505af11580156114fb573d6000803e3d6000fd5b50506011805460ff60b01b1916905550505050565b611299838383611580565b6000806000611528611677565b9092509050611537828261153e565b9250505090565b600061138f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116b7565b600080600080600080611592876116e5565b6001600160a01b038f16600090815260046020526040902054959b509399509197509550935091506115c49087611742565b6001600160a01b03808b1660009081526004602052604080822093909355908a16815220546115f39086611784565b6001600160a01b038916600090815260046020526040902055611615816117e3565b61161f848361182d565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161166491815260200190565b60405180910390a3505050505050505050565b600a546000908190678ac7230489e80000611692828261153e565b8210156116ae575050600a5492678ac7230489e8000092509050565b90939092509050565b600081836116d85760405162461bcd60e51b81526004016104dc9190611975565b5060006112cf8486611d55565b60008060008060008060008060006117028a600c54600d54611851565b925092509250600061171261151b565b905060008060006117258e8787876118a6565b919e509c509a509598509396509194505050505091939550919395565b600061138f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061129e565b6000806117918385611cb5565b90508381101561138f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104dc565b60006117ed61151b565b905060006117fb83836118f6565b306000908152600460205260409020549091506118189082611784565b30600090815260046020526040902055505050565b600a5461183a9083611742565b600a55600b5461184a9082611784565b600b555050565b600080808061186b606461186589896118f6565b9061153e565b9050600061187e60646118658a896118f6565b90506000611896826118908b86611742565b90611742565b9992985090965090945050505050565b60008080806118b588866118f6565b905060006118c388876118f6565b905060006118d188886118f6565b905060006118e3826118908686611742565b939b939a50919850919650505050505050565b600082611905575060006104ac565b60006119118385611d77565b90508261191e8583611d55565b1461138f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104dc565b600060208083528351808285015260005b818110156119a257858101830151858201604001528201611986565b818111156119b4576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146106f957600080fd5b80356119ea816119ca565b919050565b60008060408385031215611a0257600080fd5b8235611a0d816119ca565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611a4457600080fd5b823567ffffffffffffffff80821115611a5c57600080fd5b818501915085601f830112611a7057600080fd5b813581811115611a8257611a82611a1b565b8060051b604051601f19603f83011681018181108582111715611aa757611aa7611a1b565b604052918252848201925083810185019188831115611ac557600080fd5b938501935b82851015611aea57611adb856119df565b84529385019392850192611aca565b98975050505050505050565b600080600060608486031215611b0b57600080fd5b8335611b16816119ca565b92506020840135611b26816119ca565b929592945050506040919091013590565b600060208284031215611b4957600080fd5b813561138f816119ca565b80151581146106f957600080fd5b600060208284031215611b7457600080fd5b813561138f81611b54565b600060208284031215611b9157600080fd5b5035919050565b60008060408385031215611bab57600080fd5b8235611bb6816119ca565b91506020830135611bc6816119ca565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611c4657611c46611c1c565b5060010190565b600060208284031215611c5f57600080fd5b815161138f816119ca565b600080600060608486031215611c7f57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611caa57600080fd5b815161138f81611b54565b60008219821115611cc857611cc8611c1c565b500190565b600082821015611cdf57611cdf611c1c565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d345784516001600160a01b031683529383019391830191600101611d0f565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611d7257634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611d9157611d91611c1c565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220eb6191d61c65ad9ff696958595946225756d8390dd8f8ef67862167ca458e96364736f6c634300080a0033
Deployed Bytecode Sourcemap
19114:12306:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21511:83;;;;;;;;;;-1:-1:-1;21581:5:0;;;;;;;;;;;;-1:-1:-1;;;21581:5:0;;;;21511:83;;;;;;;:::i;:::-;;;;;;;;22436:193;;;;;;;;;;-1:-1:-1;22436:193:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;22436:193:0;1211:187:1;21788:95:0;;;;;;;;;;-1:-1:-1;19633:12:0;21788:95;;;1549:25:1;;;1537:2;1522:18;21788:95:0;1403:177:1;27363:170:0;;;;;;;;;;-1:-1:-1;27363:170:0;;;;;:::i;:::-;;:::i;:::-;;22637:446;;;;;;;;;;-1:-1:-1;22637:446:0;;;;;:::i;:::-;;:::i;27541:88::-;;;;;;;;;;-1:-1:-1;27541:88:0;;;;;:::i;:::-;;:::i;21697:83::-;;;;;;;;;;-1:-1:-1;21697:83:0;;20035:1;3698:36:1;;3686:2;3671:18;21697:83:0;3556:184:1;25652:137:0;;;;;;;;;;-1:-1:-1;25652:137:0;;;;;:::i;:::-;;:::i;23091:101::-;;;;;;;;;;-1:-1:-1;23091:101:0;;;;;:::i;:::-;;:::i;20045:36::-;;;;;;;;;;-1:-1:-1;20045:36:0;;;;-1:-1:-1;;;;;20045:36:0;;;;;;-1:-1:-1;;;;;4302:32:1;;;4284:51;;4272:2;4257:18;20045:36:0;4114:227:1;29057:194:0;;;;;;;;;;;;;:::i;21891:138::-;;;;;;;;;;-1:-1:-1;21891:138:0;;;;;:::i;:::-;;:::i;7221:157::-;;;;;;;;;;;;;:::i;7005:79::-;;;;;;;;;;-1:-1:-1;7043:7:0;7070:6;-1:-1:-1;;;;;7070:6:0;7005:79;;21602:87;;;;;;;;;;-1:-1:-1;21674:7:0;;;;;;;;;;;;-1:-1:-1;;;21674:7:0;;;;21602:87;;8119:358;;;;;;;;;;;;;:::i;22037:199::-;;;;;;;;;;-1:-1:-1;22037:199:0;;;;;:::i;:::-;;:::i;7647:89::-;;;;;;;;;;-1:-1:-1;7719:9:0;;7647:89;;28854:195;;;;;;;;;;;;;:::i;26387:968::-;;;;;;;;;;;;;:::i;20088:27::-;;;;;;;;;;-1:-1:-1;20088:27:0;;;;-1:-1:-1;;;;;20088:27:0;;;7812:235;;;;;;;;;;-1:-1:-1;7812:235:0;;;;;:::i;:::-;;:::i;22244:184::-;;;;;;;;;;-1:-1:-1;22244:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;22393:18:0;;;22361:7;22393:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;22244:184;7387:252;;;;;;;;;;-1:-1:-1;7387:252:0;;;;;:::i;:::-;;:::i;22436:193::-;22538:4;22560:39;3371:10;22583:7;22592:6;22560:8;:39::i;:::-;-1:-1:-1;22617:4:0;22436:193;;;;;:::o;27363:170::-;7133:6;;-1:-1:-1;;;;;7133:6:0;3371:10;7133:22;7125:67;;;;-1:-1:-1;;;7125:67:0;;;;;;;:::i;:::-;;;;;;;;;27440:9:::1;27435:91;27459:5;:12;27455:1;:16;27435:91;;;27510:4;27493;:14;27498:5;27504:1;27498:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;27493:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;27493:14:0;:21;;-1:-1:-1;;27493:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27473:3;::::1;::::0;::::1;:::i;:::-;;;;27435:91;;;;27363:170:::0;:::o;22637:446::-;22769:4;22786:36;22796:6;22804:9;22815:6;22786:9;:36::i;:::-;22833:220;22856:6;3371:10;22904:138;22960:6;22904:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22904:19:0;;;;;;:11;:19;;;;;;;;3371:10;22904:33;;;;;;;;;;:37;:138::i;:::-;22833:8;:220::i;:::-;-1:-1:-1;23071:4:0;22637:446;;;;;:::o;27541:88::-;7133:6;;-1:-1:-1;;;;;7133:6:0;3371:10;7133:22;7125:67;;;;-1:-1:-1;;;7125:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27601:12:0::1;27616:5;27601:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;27601:20:0::1;::::0;;27541:88::o;25652:137::-;7133:6;;-1:-1:-1;;;;;7133:6:0;3371:10;7133:22;7125:67;;;;-1:-1:-1;;;7125:67:0;;;;;;;:::i;:::-;25721:13:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;25721:22:0::1;-1:-1:-1::0;;;;25721:22:0;;::::1;;::::0;;25759::::1;::::0;::::1;::::0;::::1;::::0;25737:6;1376:14:1;1369:22;1351:41;;1339:2;1324:18;;1211:187;25759:22:0::1;;;;;;;;25652:137:::0;:::o;23091:101::-;7133:6;;-1:-1:-1;;;;;7133:6:0;3371:10;7133:22;7125:67;;;;-1:-1:-1;;;7125:67:0;;;;;;;:::i;:::-;23161:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;23161:23:0::1;-1:-1:-1::0;;;;23161:23:0;;::::1;::::0;;;::::1;::::0;;23091:101::o;29057:194::-;29123:15;;-1:-1:-1;;;;;29123:15:0;3371:10;-1:-1:-1;;;;;29107:31:0;;29099:40;;;;;;29179:21;29211:32;29179:21;29211:12;:32::i;:::-;29088:163;29057:194::o;21891:138::-;-1:-1:-1;;;;;22004:16:0;;21957:7;22004:16;;;:7;:16;;;;;;21984:37;;:19;:37::i;7221:157::-;7133:6;;-1:-1:-1;;;;;7133:6:0;3371:10;7133:22;7125:67;;;;-1:-1:-1;;;7125:67:0;;;;;;;:::i;:::-;7328:1:::1;7312:6:::0;;7291:40:::1;::::0;-1:-1:-1;;;;;7312:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;7291:40:0;7328:1;;7291:40:::1;7367:1;7342:28:::0;;-1:-1:-1;;;;;;7342:28:0::1;::::0;;7221:157::o;8119:358::-;8171:14;;-1:-1:-1;;;;;8171:14:0;8189:10;8171:28;8163:76;;;;-1:-1:-1;;;8163:76:0;;6359:2:1;8163:76:0;;;6341:21:1;6398:2;6378:18;;;6371:30;6437:34;6417:18;;;6410:62;-1:-1:-1;;;6488:18:1;;;6481:33;6531:19;;8163:76:0;6157:399:1;8163:76:0;8276:9;;8258:15;:27;8250:78;;;;-1:-1:-1;;;8250:78:0;;6763:2:1;8250:78:0;;;6745:21:1;6802:2;6782:18;;;6775:30;6841:34;6821:18;;;6814:62;-1:-1:-1;;;6892:18:1;;;6885:35;6937:19;;8250:78:0;6561:401:1;8250:78:0;8373:14;;;8365:6;;8344:44;;-1:-1:-1;;;;;8373:14:0;;;;8365:6;;;;-1:-1:-1;;;;;;;;;;;8344:44:0;;8408:14;;;;8399:23;;-1:-1:-1;;;;;;8399:23:0;;;-1:-1:-1;;;;;8408:14:0;;8399:23;;;;8433:36;;;8119:358::o;22037:199::-;22142:4;22164:42;3371:10;22188:9;22199:6;22164:9;:42::i;28854:195::-;28920:15;;-1:-1:-1;;;;;28920:15:0;3371:10;-1:-1:-1;;;;;28904:31:0;;28896:40;;;;;;28947:23;28973:24;28991:4;28973:9;:24::i;:::-;28947:50;;29008:33;29025:15;29008:16;:33::i;26387:968::-;7133:6;;-1:-1:-1;;;;;7133:6:0;3371:10;7133:22;7125:67;;;;-1:-1:-1;;;7125:67:0;;;;;;;:::i;:::-;26449:11:::1;::::0;-1:-1:-1;;;26449:11:0;::::1;;;26448:12;26440:48;;;::::0;-1:-1:-1;;;26440:48:0;;7169:2:1;26440:48:0::1;::::0;::::1;7151:21:1::0;7208:2;7188:18;;;7181:30;7247:25;7227:18;;;7220:53;7290:18;;26440:48:0::1;6967:347:1::0;26440:48:0::1;26628:13;:32:::0;;-1:-1:-1;;;;;;26628:32:0::1;26564:42;26628:32:::0;;::::1;::::0;;;26671:56:::1;26688:4;26564:42:::0;19633:12:::1;26671:8;:56::i;:::-;26767:16;-1:-1:-1::0;;;;;26767:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26752:67:0::1;;26828:4;26835:16;-1:-1:-1::0;;;;;26835:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26752:107;::::0;-1:-1:-1;;;;;;26752:107:0::1;::::0;;;;;;-1:-1:-1;;;;;7805:15:1;;;26752:107:0::1;::::0;::::1;7787:34:1::0;7857:15;;7837:18;;;7830:43;7722:18;;26752:107:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26738:11;:121:::0;;-1:-1:-1;;;;;;26738:121:0::1;-1:-1:-1::0;;;;;26738:121:0;;::::1;;::::0;;26870:13:::1;::::0;::::1;:29;26907:21;26952:4;26972:24;26952:4:::0;26972:9:::1;:24::i;:::-;27011:1;27027::::0;27043:7:::1;7043::::0;7070:6;-1:-1:-1;;;;;7070:6:0;;7005:79;27043:7:::1;26870:221;::::0;::::1;::::0;;;-1:-1:-1;;;;;;26870:221:0;;;-1:-1:-1;;;;;8243:15:1;;;26870:221:0::1;::::0;::::1;8225:34:1::0;8275:18;;;8268:34;;;;8318:18;;;8311:34;;;;8361:18;;;8354:34;8425:15;;;8404:19;;;8397:44;27065:15:0::1;8457:19:1::0;;;8450:35;8159:19;;26870:221:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;27102:11:0::1;:18:::0;;27179:21:::1;27164:12;:36:::0;-1:-1:-1;;;;27211:18:0;;-1:-1:-1;;;27211:18:0;;;;27290:13:::1;::::0;27240:107:::1;::::0;-1:-1:-1;;;27240:107:0;;-1:-1:-1;;;;;27290:13:0;;::::1;27240:107;::::0;::::1;8981:51:1::0;-1:-1:-1;;9048:18:1;;;9041:34;27247:11:0;;;-1:-1:-1;27240:27:0::1;::::0;8954:18:1;;27240:107:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7812:235::-:0;7133:6;;-1:-1:-1;;;;;7133:6:0;3371:10;7133:22;7125:67;;;;-1:-1:-1;;;7125:67:0;;;;;;;:::i;:::-;7893:6:::1;::::0;;;7876:23;;-1:-1:-1;;;;;;7876:23:0;;::::1;-1:-1:-1::0;;;;;7893:6:0;::::1;7876:23;::::0;;;7910:28:::1;::::0;;7961:22:::1;7979:4:::0;7961:15:::1;:22;:::i;:::-;7949:9;:34:::0;8036:1:::1;8020:6:::0;;7999:40:::1;::::0;-1:-1:-1;;;;;8020:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;7999:40:0;8036:1;;7999:40:::1;7812:235:::0;:::o;7387:252::-;7133:6;;-1:-1:-1;;;;;7133:6:0;3371:10;7133:22;7125:67;;;;-1:-1:-1;;;7125:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7484:22:0;::::1;7476:73;;;::::0;-1:-1:-1;;;7476:73:0;;9671:2:1;7476:73:0::1;::::0;::::1;9653:21:1::0;9710:2;9690:18;;;9683:30;9749:34;9729:18;;;9722:62;-1:-1:-1;;;9800:18:1;;;9793:36;9846:19;;7476:73:0::1;9469:402:1::0;7476:73:0::1;7586:6;::::0;;7565:38:::1;::::0;-1:-1:-1;;;;;7565:38:0;;::::1;::::0;7586:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;7565:38:0;::::1;7614:6;:17:::0;;-1:-1:-1;;;;;;7614:17:0::1;-1:-1:-1::0;;;;;7614:17:0;;;::::1;::::0;;;::::1;::::0;;7387:252::o;23531:369::-;-1:-1:-1;;;;;23658:19:0;;23650:68;;;;-1:-1:-1;;;23650:68:0;;10078:2:1;23650:68:0;;;10060:21:1;10117:2;10097:18;;;10090:30;10156:34;10136:18;;;10129:62;-1:-1:-1;;;10207:18:1;;;10200:34;10251:19;;23650:68:0;9876:400:1;23650:68:0;-1:-1:-1;;;;;23737:21:0;;23729:68;;;;-1:-1:-1;;;23729:68:0;;10483:2:1;23729:68:0;;;10465:21:1;10522:2;10502:18;;;10495:30;10561:34;10541:18;;;10534:62;-1:-1:-1;;;10612:18:1;;;10605:32;10654:19;;23729:68:0;10281:398:1;23729:68:0;-1:-1:-1;;;;;23808:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;23860:32;;1549:25:1;;;23860:32:0;;1522:18:1;23860:32:0;;;;;;;23531:369;;;:::o;23908:1736::-;-1:-1:-1;;;;;24030:18:0;;24022:68;;;;-1:-1:-1;;;24022:68:0;;10886:2:1;24022:68:0;;;10868:21:1;10925:2;10905:18;;;10898:30;10964:34;10944:18;;;10937:62;-1:-1:-1;;;11015:18:1;;;11008:35;11060:19;;24022:68:0;10684:401:1;24022:68:0;-1:-1:-1;;;;;24109:16:0;;24101:64;;;;-1:-1:-1;;;24101:64:0;;11292:2:1;24101:64:0;;;11274:21:1;11331:2;11311:18;;;11304:30;11370:34;11350:18;;;11343:62;-1:-1:-1;;;11421:18:1;;;11414:33;11464:19;;24101:64:0;11090:399:1;24101:64:0;24193:1;24184:6;:10;24176:64;;;;-1:-1:-1;;;24176:64:0;;11696:2:1;24176:64:0;;;11678:21:1;11735:2;11715:18;;;11708:30;11774:34;11754:18;;;11747:62;-1:-1:-1;;;11825:18:1;;;11818:39;11874:19;;24176:64:0;11494:405:1;24176:64:0;24263:1;24251:9;:13;;;24275:9;:13;24306;;-1:-1:-1;;;24306:13:0;;;;24301:115;;24350:11;;-1:-1:-1;;;;;24344:17:0;;;24350:11;;24344:17;;24336:68;;;;-1:-1:-1;;;24336:68:0;;12106:2:1;24336:68:0;;;12088:21:1;12145:2;12125:18;;;12118:30;12184:34;12164:18;;;12157:62;-1:-1:-1;;;12235:18:1;;;12228:36;12281:19;;24336:68:0;11904:402:1;24336:68:0;7043:7;7070:6;-1:-1:-1;;;;;24432:15:0;;;7070:6;;24432:15;;;;:32;;-1:-1:-1;7043:7:0;7070:6;-1:-1:-1;;;;;24451:13:0;;;7070:6;;24451:13;;24432:32;24428:1164;;;-1:-1:-1;;;;;24490:10:0;;;;;;:4;:10;;;;;;;;24489:11;:24;;;;-1:-1:-1;;;;;;24505:8:0;;;;;;:4;:8;;;;;;;;24504:9;24489:24;24481:33;;;;;;24559:11;;-1:-1:-1;;;;;24551:19:0;;;24559:11;;24551:19;:68;;;;-1:-1:-1;24605:13:0;;-1:-1:-1;;;;;24591:28:0;;;24605:13;;24591:28;;24551:68;:112;;;;-1:-1:-1;;;;;;24641:22:0;;;;;;:18;:22;;;;;;;;24640:23;24551:112;:148;;;;-1:-1:-1;24684:15:0;;-1:-1:-1;;;24684:15:0;;;;24551:148;24529:403;;;24781:12;;24771:6;:22;;24763:31;;;;;;-1:-1:-1;;;;;24821:12:0;;;;;;:8;:12;;;;;;24836:15;-1:-1:-1;24813:39:0;;;;;;24886:30;:15;24905:10;24886:30;:::i;:::-;-1:-1:-1;;;;;24871:12:0;;;;;;:8;:12;;;;;:45;24529:403;24976:11;;-1:-1:-1;;;;;24970:17:0;;;24976:11;;24970:17;:68;;;;-1:-1:-1;25024:13:0;;-1:-1:-1;;;;;25008:30:0;;;25024:13;;25008:30;;24970:68;:114;;;;-1:-1:-1;;;;;;25060:24:0;;;;;;:18;:24;;;;;;;;25059:25;24970:114;24948:232;;;25131:1;25119:9;:13;;;25151:9;:13;24948:232;25194:28;25225:24;25243:4;25225:9;:24::i;:::-;25269:6;;25194:55;;-1:-1:-1;;;;25269:6:0;;;;25268:7;:30;;;;-1:-1:-1;25287:11:0;;-1:-1:-1;;;;;25279:19:0;;;25287:11;;25279:19;;25268:30;:45;;;;-1:-1:-1;25302:11:0;;-1:-1:-1;;;25302:11:0;;;;25268:45;25264:317;;;25334:38;25351:20;25334:16;:38::i;:::-;25420:21;25464:22;;25460:106;;25511:35;25524:21;25511:12;:35::i;:::-;25315:266;25264:317;24466:1126;24428:1164;25604:32;25619:4;25625:2;25629:6;25604:14;:32::i;:::-;23908:1736;;;:::o;1821:192::-;1907:7;1943:12;1935:6;;;;1927:29;;;;-1:-1:-1;;;1927:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1967:9:0;1979:5;1983:1;1979;:5;:::i;:::-;1967:17;1821:192;-1:-1:-1;;;;;1821:192:0:o;26282:97::-;26339:15;;:32;;-1:-1:-1;;;;;26339:15:0;;;;:32;;;;;26364:6;;26339:15;:32;:15;:32;26364:6;26339:15;:32;;;;;;;;;;;;;;;;;;;23200:323;23295:7;23353;;23342;:18;;23320:110;;;;-1:-1:-1;;;23320:110:0;;12643:2:1;23320:110:0;;;12625:21:1;12682:2;12662:18;;;12655:30;12721:34;12701:18;;;12694:62;-1:-1:-1;;;12772:18:1;;;12765:40;12822:19;;23320:110:0;12441:406:1;23320:110:0;23441:19;23463:10;:8;:10::i;:::-;23441:32;-1:-1:-1;23491:24:0;:7;23441:32;23491:11;:24::i;:::-;23484:31;23200:323;-1:-1:-1;;;23200:323:0:o;25797:477::-;20533:6;:13;;-1:-1:-1;;;;20533:13:0;-1:-1:-1;;;20533:13:0;;;25899:16:::1;::::0;;25913:1:::1;25899:16:::0;;;;;::::1;::::0;;-1:-1:-1;;25899:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;25899:16:0::1;25875:40;;25944:4;25926;25931:1;25926:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;25926:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;25970:13:::1;::::0;:20:::1;::::0;;-1:-1:-1;;;25970:20:0;;;;:13;;;::::1;::::0;:18:::1;::::0;:20:::1;::::0;;::::1;::::0;25926:7;;25970:20;;;;;:13;:20:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25960:4;25965:1;25960:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;25960:30:0;;::::1;:7;::::0;;::::1;::::0;;;;;:30;26033:13:::1;::::0;26001:60:::1;::::0;26018:4:::1;::::0;26033:13:::1;26049:11:::0;26001:8:::1;:60::i;:::-;26072:13;::::0;:194:::1;::::0;-1:-1:-1;;;26072:194:0;;-1:-1:-1;;;;;26072:13:0;;::::1;::::0;:64:::1;::::0;:194:::1;::::0;26151:11;;26072:13:::1;::::0;26193:4;;26220::::1;::::0;26240:15:::1;::::0;26072:194:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;20569:6:0;:14;;-1:-1:-1;;;;20569:14:0;;;-1:-1:-1;;;;25797:477:0:o;27637:180::-;27765:44;27783:6;27791:9;27802:6;27765:17;:44::i;30988:164::-;31030:7;31051:15;31068;31087:19;:17;:19::i;:::-;31050:56;;-1:-1:-1;31050:56:0;-1:-1:-1;31124:20:0;31050:56;;31124:11;:20::i;:::-;31117:27;;;;30988:164;:::o;2502:132::-;2560:7;2587:39;2591:1;2594;2587:39;;;;;;;;;;;;;;;;;:3;:39::i;27825:610::-;27972:15;28002:23;28040:12;28067:23;28105:12;28132:13;28159:19;28170:7;28159:10;:19::i;:::-;-1:-1:-1;;;;;28207:15:0;;;;;;:7;:15;;;;;;27957:221;;-1:-1:-1;27957:221:0;;-1:-1:-1;27957:221:0;;-1:-1:-1;27957:221:0;-1:-1:-1;27957:221:0;-1:-1:-1;27957:221:0;-1:-1:-1;28207:28:0;;27957:221;28207:19;:28::i;:::-;-1:-1:-1;;;;;28189:15:0;;;;;;;:7;:15;;;;;;:46;;;;28267:18;;;;;;;:39;;28290:15;28267:22;:39::i;:::-;-1:-1:-1;;;;;28246:18:0;;;;;;:7;:18;;;;;:60;28317:16;28327:5;28317:9;:16::i;:::-;28344:23;28356:4;28362;28344:11;:23::i;:::-;28400:9;-1:-1:-1;;;;;28383:44:0;28392:6;-1:-1:-1;;;;;28383:44:0;;28411:15;28383:44;;;;1549:25:1;;1537:2;1522:18;;1403:177;28383:44:0;;;;;;;;27946:489;;;;;;27825:610;;;:::o;31160:257::-;31258:7;;31211;;;;19633:12;31326:20;31258:7;19633:12;31326:11;:20::i;:::-;31316:7;:30;31312:61;;;-1:-1:-1;;31356:7:0;;;19633:12;;-1:-1:-1;31160:257:0;-1:-1:-1;31160:257:0:o;31312:61::-;31392:7;;31401;;-1:-1:-1;31160:257:0;-1:-1:-1;31160:257:0:o;2643:278::-;2729:7;2764:12;2757:5;2749:28;;;;-1:-1:-1;;;2749:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2788:9:0;2800:5;2804:1;2800;:5;:::i;29259:704::-;29359:7;29381;29403;29425;29447;29469;29505:23;29530:12;29544:13;29561:92;29587:7;29609:9;;29633;;29561:11;:92::i;:::-;29504:149;;;;;;29664:19;29686:10;:8;:10::i;:::-;29664:32;;29708:15;29725:23;29750:12;29766:109;29792:7;29814:4;29833:5;29853:11;29766;:109::i;:::-;29707:168;;-1:-1:-1;29707:168:0;-1:-1:-1;29707:168:0;-1:-1:-1;29926:15:0;;-1:-1:-1;29943:4:0;;-1:-1:-1;29949:5:0;;-1:-1:-1;;;;;29259:704:0;;;;;;;:::o;1676:136::-;1734:7;1761:43;1765:1;1768;1761:43;;;;;;;;;;;;;;;;;:3;:43::i;1486:181::-;1544:7;;1576:5;1580:1;1576;:5;:::i;:::-;1564:17;;1605:1;1600;:6;;1592:46;;;;-1:-1:-1;;;1592:46:0;;14261:2:1;1592:46:0;;;14243:21:1;14300:2;14280:18;;;14273:30;14339:29;14319:18;;;14312:57;14386:18;;1592:46:0;14059:351:1;28443:211:0;28496:19;28518:10;:8;:10::i;:::-;28496:32;-1:-1:-1;28539:13:0;28555:22;:5;28496:32;28555:9;:22::i;:::-;28629:4;28613:22;;;;:7;:22;;;;;;28539:38;;-1:-1:-1;28613:33:0;;28539:38;28613:26;:33::i;:::-;28604:4;28588:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;28443:211:0:o;28662:147::-;28740:7;;:17;;28752:4;28740:11;:17::i;:::-;28730:7;:27;28781:10;;:20;;28796:4;28781:14;:20::i;:::-;28768:10;:33;-1:-1:-1;;28662:147:0:o;29971:467::-;30139:7;;;;30233:28;30257:3;30233:19;:7;30245:6;30233:11;:19::i;:::-;:23;;:28::i;:::-;30218:43;-1:-1:-1;30272:13:0;30288:29;30313:3;30288:20;:7;30300;30288:11;:20::i;:29::-;30272:45;-1:-1:-1;30328:23:0;30354:28;30272:45;30354:17;:7;30366:4;30354:11;:17::i;:::-;:21;;:28::i;:::-;30328:54;30418:4;;-1:-1:-1;30424:5:0;;-1:-1:-1;29971:467:0;;-1:-1:-1;;;;;29971:467:0:o;30446:534::-;30640:7;;;;30737:24;:7;30749:11;30737;:24::i;:::-;30719:42;-1:-1:-1;30772:12:0;30787:21;:4;30796:11;30787:8;:21::i;:::-;30772:36;-1:-1:-1;30819:13:0;30835:22;:5;30845:11;30835:9;:22::i;:::-;30819:38;-1:-1:-1;30868:23:0;30894:28;30819:38;30894:17;:7;30906:4;30894:11;:17::i;:28::-;30941:7;;;;-1:-1:-1;30967:4:0;;-1:-1:-1;30446:534:0;;-1:-1:-1;;;;;;;30446:534:0:o;2022:471::-;2080:7;2325:6;2321:47;;-1:-1:-1;2355:1:0;2348:8;;2321:47;2380:9;2392:5;2396:1;2392;:5;:::i;:::-;2380:17;-1:-1:-1;2425:1:0;2416:5;2420:1;2380:17;2416:5;:::i;:::-;:10;2408:56;;;;-1:-1:-1;;;2408:56:0;;14790:2:1;2408:56:0;;;14772:21:1;14829:2;14809:18;;;14802:30;14868:34;14848:18;;;14841:62;-1:-1:-1;;;14919:18:1;;;14912:31;14960:19;;2408:56:0;14588:397:1;14:597;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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1585:127::-;1646:10;1641:3;1637:20;1634:1;1627:31;1677:4;1674:1;1667:15;1701:4;1698:1;1691:15;1717:1121;1801:6;1832:2;1875;1863:9;1854:7;1850:23;1846:32;1843:52;;;1891:1;1888;1881:12;1843:52;1931:9;1918:23;1960:18;2001:2;1993:6;1990:14;1987:34;;;2017:1;2014;2007:12;1987:34;2055:6;2044:9;2040:22;2030:32;;2100:7;2093:4;2089:2;2085:13;2081:27;2071:55;;2122:1;2119;2112:12;2071:55;2158:2;2145:16;2180:2;2176;2173:10;2170:36;;;2186:18;;:::i;:::-;2232:2;2229:1;2225:10;2264:2;2258:9;2327:2;2323:7;2318:2;2314;2310:11;2306:25;2298:6;2294:38;2382:6;2370:10;2367:22;2362:2;2350:10;2347:18;2344:46;2341:72;;;2393:18;;:::i;:::-;2429:2;2422:22;2479:18;;;2513:15;;;;-1:-1:-1;2555:11:1;;;2551:20;;;2583:19;;;2580:39;;;2615:1;2612;2605:12;2580:39;2639:11;;;;2659:148;2675:6;2670:3;2667:15;2659:148;;;2741:23;2760:3;2741:23;:::i;:::-;2729:36;;2692:12;;;;2785;;;;2659:148;;;2826:6;1717:1121;-1:-1:-1;;;;;;;;1717:1121:1:o;2843:456::-;2920:6;2928;2936;2989:2;2977:9;2968:7;2964:23;2960:32;2957:52;;;3005:1;3002;2995:12;2957:52;3044:9;3031:23;3063:31;3088:5;3063:31;:::i;:::-;3113:5;-1:-1:-1;3170:2:1;3155:18;;3142:32;3183:33;3142:32;3183:33;:::i;:::-;2843:456;;3235:7;;-1:-1:-1;;;3289:2:1;3274:18;;;;3261:32;;2843:456::o;3304:247::-;3363:6;3416:2;3404:9;3395:7;3391:23;3387:32;3384:52;;;3432:1;3429;3422:12;3384:52;3471:9;3458:23;3490:31;3515:5;3490:31;:::i;3745:118::-;3831:5;3824:13;3817:21;3810:5;3807:32;3797:60;;3853:1;3850;3843:12;3868:241;3924:6;3977:2;3965:9;3956:7;3952:23;3948:32;3945:52;;;3993:1;3990;3983:12;3945:52;4032:9;4019:23;4051:28;4073:5;4051:28;:::i;4554:180::-;4613:6;4666:2;4654:9;4645:7;4641:23;4637:32;4634:52;;;4682:1;4679;4672:12;4634:52;-1:-1:-1;4705:23:1;;4554:180;-1:-1:-1;4554:180:1:o;4739:388::-;4807:6;4815;4868:2;4856:9;4847:7;4843:23;4839:32;4836:52;;;4884:1;4881;4874:12;4836:52;4923:9;4910:23;4942:31;4967:5;4942:31;:::i;:::-;4992:5;-1:-1:-1;5049:2:1;5034:18;;5021:32;5062:33;5021:32;5062:33;:::i;:::-;5114:7;5104:17;;;4739:388;;;;;:::o;5392:356::-;5594:2;5576:21;;;5613:18;;;5606:30;5672:34;5667:2;5652:18;;5645:62;5739:2;5724:18;;5392:356::o;5753:127::-;5814:10;5809:3;5805:20;5802:1;5795:31;5845:4;5842:1;5835:15;5869:4;5866:1;5859:15;5885:127;5946:10;5941:3;5937:20;5934:1;5927:31;5977:4;5974:1;5967:15;6001:4;5998:1;5991:15;6017:135;6056:3;-1:-1:-1;;6077:17:1;;6074:43;;;6097:18;;:::i;:::-;-1:-1:-1;6144:1:1;6133:13;;6017:135::o;7319:251::-;7389:6;7442:2;7430:9;7421:7;7417:23;7413:32;7410:52;;;7458:1;7455;7448:12;7410:52;7490:9;7484:16;7509:31;7534:5;7509:31;:::i;8496:306::-;8584:6;8592;8600;8653:2;8641:9;8632:7;8628:23;8624:32;8621:52;;;8669:1;8666;8659:12;8621:52;8698:9;8692:16;8682:26;;8748:2;8737:9;8733:18;8727:25;8717:35;;8792:2;8781:9;8777:18;8771:25;8761:35;;8496:306;;;;;:::o;9086:245::-;9153:6;9206:2;9194:9;9185:7;9181:23;9177:32;9174:52;;;9222:1;9219;9212:12;9174:52;9254:9;9248:16;9273:28;9295:5;9273:28;:::i;9336:128::-;9376:3;9407:1;9403:6;9400:1;9397:13;9394:39;;;9413:18;;:::i;:::-;-1:-1:-1;9449:9:1;;9336:128::o;12311:125::-;12351:4;12379:1;12376;12373:8;12370:34;;;12384:18;;:::i;:::-;-1:-1:-1;12421:9:1;;12311:125::o;12852:980::-;13114:4;13162:3;13151:9;13147:19;13193:6;13182:9;13175:25;13219:2;13257:6;13252:2;13241:9;13237:18;13230:34;13300:3;13295:2;13284:9;13280:18;13273:31;13324:6;13359;13353:13;13390:6;13382;13375:22;13428:3;13417:9;13413:19;13406:26;;13467:2;13459:6;13455:15;13441:29;;13488:1;13498:195;13512:6;13509:1;13506:13;13498:195;;;13577:13;;-1:-1:-1;;;;;13573:39:1;13561:52;;13668:15;;;;13633:12;;;;13609:1;13527:9;13498:195;;;-1:-1:-1;;;;;;;13749:32:1;;;;13744:2;13729:18;;13722:60;-1:-1:-1;;;13813:3:1;13798:19;13791:35;13710:3;12852:980;-1:-1:-1;;;12852:980:1:o;13837:217::-;13877:1;13903;13893:132;;13947:10;13942:3;13938:20;13935:1;13928:31;13982:4;13979:1;13972:15;14010:4;14007:1;14000:15;13893:132;-1:-1:-1;14039:9:1;;13837:217::o;14415:168::-;14455:7;14521:1;14517;14513:6;14509:14;14506:1;14503:21;14498:1;14491:9;14484:17;14480:45;14477:71;;;14528:18;;:::i;:::-;-1:-1:-1;14568:9:1;;14415:168::o
Swarm Source
ipfs://eb6191d61c65ad9ff696958595946225756d8390dd8f8ef67862167ca458e963
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.