Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 71 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 18967604 | 342 days ago | IN | 0 ETH | 0.00035034 | ||||
Approve | 18531258 | 403 days ago | IN | 0 ETH | 0.00126553 | ||||
Transfer | 18531255 | 403 days ago | IN | 0 ETH | 0.0025999 | ||||
Approve | 18527092 | 404 days ago | IN | 0 ETH | 0.00137991 | ||||
Approve | 18525362 | 404 days ago | IN | 0 ETH | 0.0008681 | ||||
Approve | 18524729 | 404 days ago | IN | 0 ETH | 0.00151737 | ||||
Approve | 18524729 | 404 days ago | IN | 0 ETH | 0.00151737 | ||||
Approve | 18524729 | 404 days ago | IN | 0 ETH | 0.00151737 | ||||
Approve | 18524729 | 404 days ago | IN | 0 ETH | 0.00151737 | ||||
Approve | 18524729 | 404 days ago | IN | 0 ETH | 0.00151737 | ||||
Approve | 18524724 | 404 days ago | IN | 0 ETH | 0.00110179 | ||||
Approve | 18524724 | 404 days ago | IN | 0 ETH | 0.00173418 | ||||
Approve | 18524724 | 404 days ago | IN | 0 ETH | 0.00173418 | ||||
Approve | 18524724 | 404 days ago | IN | 0 ETH | 0.00173418 | ||||
Approve | 18524714 | 404 days ago | IN | 0 ETH | 0.0026394 | ||||
Approve | 18524706 | 404 days ago | IN | 0 ETH | 0.00099544 | ||||
Approve | 18524680 | 404 days ago | IN | 0 ETH | 0.00117964 | ||||
Approve | 18524680 | 404 days ago | IN | 0 ETH | 0.00117964 | ||||
Approve | 18524680 | 404 days ago | IN | 0 ETH | 0.00117964 | ||||
Approve | 18524679 | 404 days ago | IN | 0 ETH | 0.00119912 | ||||
Approve | 18524679 | 404 days ago | IN | 0 ETH | 0.00119912 | ||||
Approve | 18524679 | 404 days ago | IN | 0 ETH | 0.00119912 | ||||
Approve | 18524679 | 404 days ago | IN | 0 ETH | 0.00119912 | ||||
Approve | 18524679 | 404 days ago | IN | 0 ETH | 0.00119912 | ||||
Approve | 18524679 | 404 days ago | IN | 0 ETH | 0.00119912 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
18524759 | 404 days ago | 0.04969804 ETH | ||||
18524759 | 404 days ago | 0.04969804 ETH | ||||
18524754 | 404 days ago | 0.04969804 ETH | ||||
18524754 | 404 days ago | 0.04969804 ETH | ||||
18524753 | 404 days ago | 0.03839571 ETH | ||||
18524753 | 404 days ago | 0.03839571 ETH | ||||
18524739 | 404 days ago | 0.00741854 ETH | ||||
18524739 | 404 days ago | 0.00741854 ETH | ||||
18524731 | 404 days ago | 0.00241839 ETH | ||||
18524731 | 404 days ago | 0.00241839 ETH | ||||
18524729 | 404 days ago | 0.011512 ETH | ||||
18524729 | 404 days ago | 0.011512 ETH | ||||
18524725 | 404 days ago | 0.00359217 ETH | ||||
18524725 | 404 days ago | 0.00359217 ETH | ||||
18524723 | 404 days ago | 0.00655272 ETH | ||||
18524723 | 404 days ago | 0.00655272 ETH | ||||
18524716 | 404 days ago | 0.01644055 ETH | ||||
18524716 | 404 days ago | 0.01644055 ETH | ||||
18524697 | 404 days ago | 0.00329435 ETH | ||||
18524697 | 404 days ago | 0.00329435 ETH | ||||
18524695 | 404 days ago | 0.00285595 ETH | ||||
18524695 | 404 days ago | 0.00285595 ETH | ||||
18524685 | 404 days ago | 0.01074581 ETH | ||||
18524685 | 404 days ago | 0.01074581 ETH | ||||
18524670 | 404 days ago | 0.01284355 ETH |
Loading...
Loading
Contract Name:
MRGTOKEN
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-08 */ /** Website: https://www.miragedefi.com Dapp: httsp://app.miragedefi.com Docs: httsp://docs.miragedefi.com Twitter; https://twitter.com/miragedefi Telegram: https://t.me/miragedefi **/ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer( address recipient, uint256 amount ) external returns (bool); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // 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; } } library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } 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"); (bool success, bytes memory returndata) = target.call{value: weiValue}( data ); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } interface IUniswapV2Pair { 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 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 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; } 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 waiveOwnership() 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; } } interface IUniswapV2Factory { 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 IUniswapV2Router01 { 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 IUniswapV2Router02 is IUniswapV2Router01 { 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; } contract MRGTOKEN is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = unicode"Mirage Finance"; string private _symbol = unicode"MRG"; uint8 private _decimals = 9; address payable public teamWallet = payable(0x3f5a63B89773986Fd436a65884fcD321DE77B832); address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public isExcludedFromFee; mapping(address => bool) public isWalletLimitExempt; mapping(address => bool) public isTxLimitExempt; mapping(address => bool) public automatedMarketMakerPair; uint256 public _buyLiquidityFee = 0; uint256 public _buyMarketingFee = 2; uint256 public _buyTeamFee = 0; uint256 public _sellLiquidityFee = 0; uint256 public _sellMarketingFee = 2; uint256 public _sellTeamFee = 0; uint256 public _liquidityShare = 0; uint256 public _marketingShare = 10; uint256 public _teamShare = 0; uint256 public _burnFee = 0; uint256 public _totalTaxIfBuying = 2; uint256 public _totalTaxIfSelling = 2; uint256 public _totalDistributionShares = 10; uint256 public _totalSupply = 1_000_000_000 * 10 ** _decimals; uint256 public _maxTxAmount = _totalSupply * 2 / 100; uint256 public _walletMax = _totalSupply * 2 / 100; uint256 private minimumTokens = 100 * 10 ** _decimals; bool public tradingActive = false; IUniswapV2Router02 public uniswapV2Router; address private uniswapV2Pair; bool public inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool public checkWalletLimit = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() { _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add( _buyTeamFee ); _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add( _sellTeamFee ); _totalDistributionShares = _liquidityShare.add(_marketingShare).add( _teamShare ); setIsExcludedFromFee(owner(), true); setIsExcludedFromFee(teamWallet, true); setIsExcludedFromFee(address(this), true); setIsWalletLimitExempt(owner(), true); setIsWalletLimitExempt(teamWallet, true); setIsWalletLimitExempt(address(this), true); setIsTxLimitExempt(owner(), true); setIsTxLimitExempt(teamWallet, true); setIsTxLimitExempt(address(this), true); _mint(_msgSender(), _totalSupply); } function launchLPs() external payable onlyOwner { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _setAutomatedMarketMakerPair(uniswapV2Pair, true); _approve(address(this), address(uniswapV2Router), ~uint256(0)); uniswapV2Router.addLiquidityETH{value: msg.value}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function burn(uint256 _amount) public { _transfer(msg.sender, address(0), _amount); } function liqBurnAt() internal returns (bool) { // get balance of liquidity pair uint256 liquidityPairBalance = _balances[uniswapV2Pair]; // calculate amount to burn uint256 amountToBurn = liquidityPairBalance.sub(minimumTokens); if (amountToBurn > 0) { _basicTransfer(uniswapV2Pair, deadAddress, amountToBurn); } //sync price since this is not in a swap transaction! IUniswapV2Pair pair = IUniswapV2Pair(uniswapV2Pair); pair.sync(); return true; } function allowance( address owner, address spender ) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue) ); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub( subtractedValue, "ERC20: decreased allowance below zero" ) ); return true; } function minimumTokensBeforeSwapAmount() public view returns (uint256) { return minimumTokens; } function approve( address spender, uint256 amount ) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERR: approve from the zero address"); require(spender != address(0), "ERR: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _mint(address account, uint256 amount) private { _balances[account] = amount; emit Transfer(address(0), account, amount); } function setIsTxLimitExempt(address holder, bool exempt) public onlyOwner { isTxLimitExempt[holder] = exempt; } function setIsExcludedFromFee( address account, bool newValue ) public onlyOwner { isExcludedFromFee[account] = newValue; } function set_Distribution_Settings( uint256 newLiquidityShare, uint256 newMarketingShare, uint256 newTeamShare ) external onlyOwner { _liquidityShare = newLiquidityShare; _marketingShare = newMarketingShare; _teamShare = newTeamShare; _totalDistributionShares = _liquidityShare.add(_marketingShare).add( _teamShare ); } function set_Max_Tx_Amount(uint256 newmaxTxAmount) external onlyOwner { _maxTxAmount = newmaxTxAmount; require(_maxTxAmount >= 20000000000000, "Max TX is less than 100%"); } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setIsWalletLimitExempt( address holder, bool exempt ) public onlyOwner { isWalletLimitExempt[holder] = exempt; } function set_Wallet_Limit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } function set_Num_Tokens_BeforeSwap(uint256 newLimit) external onlyOwner { minimumTokens = newLimit; } function set_Swap_And_Liquify_Enabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function enableTrading() public onlyOwner { tradingActive = true; } function removeLimits() public onlyOwner { _walletMax = type(uint).max; _maxTxAmount = type(uint).max; } function setAutomatedMarketMakerPair( address pair, bool value ) public onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from isAMMPair" ); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPair[pair] = value; } receive() external payable {} function transfer( address recipient, uint256 amount ) public override returns (bool) { _transfer(_msgSender(), recipient, 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 _transfer( address sender, address recipient, uint256 amount ) private returns (bool) { require(sender != address(0), "ERR: transfer from the zero address"); require(recipient != address(0), "ERR: transfer to the zero address"); if (!tradingActive) { require( isExcludedFromFee[sender] || isExcludedFromFee[recipient], "Trading is not active." ); } if (inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if ( !isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && !isExcludedFromFee[sender] && !isExcludedFromFee[recipient] ) { require( amount <= _maxTxAmount, "Transfer amount exceeds the _maxTxAmount." ); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance > 0; if ( overMinimumTokenBalance && !inSwapAndLiquify && !automatedMarketMakerPair[sender] && swapAndLiquifyEnabled && !isExcludedFromFee[sender] && !isExcludedFromFee[recipient] ) { if (swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokens; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); uint256 finalAmount = 0; if (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) { finalAmount = amount; if (sender != address(this) && recipient != address(this)) { if (recipient == address(0xdead)) liqBurnAt(); } } else { finalAmount = takeTxFees(sender, recipient, amount); } if ( checkWalletLimit && !isWalletLimitExempt[recipient] && !isExcludedFromFee[sender] && !isExcludedFromFee[recipient] ){ require(balanceOf(recipient).add(finalAmount) <= _walletMax); } _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } // Send ETH to external wallet function sendToWallet(address payable wallet, uint256 amount) private { wallet.transfer(amount); } function takeTxFees( address sender, address recipient, uint256 amount ) internal returns (uint256) { uint256 feeAmount = 0; if (automatedMarketMakerPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if (automatedMarketMakerPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(100); } if (feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } // Processing tokens from contract function swapAndLiquify(uint256 tAmount) private lockTheSwap { swapTokensForETH(tAmount); uint256 contractETH = address(this).balance; sendToWallet(teamWallet, contractETH); } function swapTokensForETH(uint256 tokenAmount) private { 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 ); } }
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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"_burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","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":"","type":"address"}],"name":"automatedMarketMakerPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchLPs","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"},{"internalType":"uint256","name":"newTeamShare","type":"uint256"}],"name":"set_Distribution_Settings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newmaxTxAmount","type":"uint256"}],"name":"set_Max_Tx_Amount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"set_Num_Tokens_BeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"set_Swap_And_Liquify_Enabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"set_Wallet_Limit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e0604052600e60a09081526d4d69726167652046696e616e636560901b60c0526002906200002f9082620005df565b50604080518082019091526003808252624d524760e81b602083015290620000589082620005df565b50600480546001600160a81b031916743f5a63b89773986fd436a65884fcd321de77b8320917905561dead6080526000600b8190556002600c819055600d829055600e829055600f81905560108290556011829055600a6012819055601383905560149290925560158190556016556017819055620000da90600990620007be565b620000ea90633b9aca00620007d6565b60185560646018546002620001009190620007d6565b6200010c9190620007f0565b60195560646018546002620001229190620007d6565b6200012e9190620007f0565b601a55600454620001449060ff16600a620007be565b62000151906064620007d6565b601b55601c805460ff19169055601d805462ffffff60a81b19166201000160a81b1790553480156200018257600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d54600c54600b54620001e69291620001df919062000317565b9062000317565b601555601054600f54600e54620002049291620001df919062000317565b601655601354601254601154620002229291620001df919062000317565b601755620002446200023c6000546001600160a01b031690565b600162000387565b600454620002629061010090046001600160a01b0316600162000387565b6200026f30600162000387565b6200028e620002866000546001600160a01b031690565b6001620003fd565b600454620002ac9061010090046001600160a01b03166001620003fd565b620002b9306001620003fd565b620002d8620002d06000546001600160a01b031690565b600162000473565b600454620002f69061010090046001600160a01b0316600162000473565b6200030330600162000473565b6200031133601854620004e9565b62000829565b60008062000326838562000813565b9050838110156200037e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b90505b92915050565b6000546001600160a01b03163314620003d25760405162461bcd60e51b8152602060048201819052602482015260008051602062002ea3833981519152604482015260640162000375565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314620004485760405162461bcd60e51b8152602060048201819052602482015260008051602062002ea3833981519152604482015260640162000375565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314620004be5760405162461bcd60e51b8152602060048201819052602482015260008051602062002ea3833981519152604482015260640162000375565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6001600160a01b0382166000818152600560209081526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200056557607f821691505b6020821081036200058657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005da57600081815260208120601f850160051c81016020861015620005b55750805b601f850160051c820191505b81811015620005d657828155600101620005c1565b5050505b505050565b81516001600160401b03811115620005fb57620005fb6200053a565b62000613816200060c845462000550565b846200058c565b602080601f8311600181146200064b5760008415620006325750858301515b600019600386901b1c1916600185901b178555620005d6565b600085815260208120601f198616915b828110156200067c578886015182559484019460019091019084016200065b565b50858210156200069b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000702578160001904821115620006e657620006e6620006ab565b80851615620006f457918102915b93841c9390800290620006c6565b509250929050565b6000826200071b5750600162000381565b816200072a5750600062000381565b81600181146200074357600281146200074e576200076e565b600191505062000381565b60ff841115620007625762000762620006ab565b50506001821b62000381565b5060208310610133831016604e8410600b841016171562000793575081810a62000381565b6200079f8383620006c1565b8060001904821115620007b657620007b6620006ab565b029392505050565b6000620007cf60ff8416836200070a565b9392505050565b8082028115828204841417620003815762000381620006ab565b6000826200080e57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620003815762000381620006ab565b6080516126576200084c600039600081816104dd0152611dc801526126576000f3fe6080604052600436106103855760003560e01c806390aa2ea6116101d1578063c5d2418911610102578063dc44b6a0116100a0578063f2fde38b1161006f578063f2fde38b14610a2d578063f7739b5f14610a4d578063f84ba65d14610a6d578063f872858a14610a8d57600080fd5b8063dc44b6a01461099b578063dd62ed3e146109b1578063ef422a18146109f7578063f0cd1dac14610a1757600080fd5b8063c91318ee116100dc578063c91318ee14610924578063cab0347114610944578063da00097d1461095a578063db01da941461097b57600080fd5b8063c5d24189146108c8578063c8607952146108de578063c867d60b146108f457600080fd5b8063a457c2d71161016f578063a9059cbb11610149578063a9059cbb14610862578063bbc0c74214610882578063c0b0fda21461089c578063c469b6dd146108b257600080fd5b8063a457c2d71461080c578063a5d69d1f1461082c578063a83f53a71461084c57600080fd5b80639a7a23d6116101ab5780639a7a23d6146107b95780639b735256146107d9578063a073d37f146107e1578063a08e671f146107f657600080fd5b806390aa2ea61461075f578063914eb66a1461078f57806395d89b41146107a457600080fd5b8063459ab5aa116102b6578063751039fc1161025457806388790a681161022357806388790a68146106e65780638a8c523c146106fc5780638b42507f146107115780638da5cb5b1461074157600080fd5b8063751039fc1461068f5780637d1db4a5146106a4578063807c2d9c146106ba57806382eefb43146106d057600080fd5b806357a5802f1161029057806357a5802f14610608578063599270441461061e57806361a23c691461064357806370a082311461065957600080fd5b8063459ab5aa146105975780634a74bb02146105b75780635342acb4146105d857600080fd5b80632563ae8311610323578063313ce567116102fd578063313ce5671461051f57806339509351146105415780633eaaf86b1461056157806342966c681461057757600080fd5b80632563ae83146104ab57806327c8f835146104cb5780632988b954146104ff57600080fd5b806318160ddd1161035f57806318160ddd146104295780632198cf6c14610448578063220f66961461046a57806323b872dd1461048b57600080fd5b806306fdde0314610391578063095ea7b3146103bc5780631694505e146103ec57600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610aae565b6040516103b3919061224e565b60405180910390f35b3480156103c857600080fd5b506103dc6103d73660046122b1565b610b40565b60405190151581526020016103b3565b3480156103f857600080fd5b50601c546104119061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016103b3565b34801561043557600080fd5b506018545b6040519081526020016103b3565b34801561045457600080fd5b506104686104633660046122f2565b610b57565b005b34801561047657600080fd5b50601d546103dc90600160a01b900460ff1681565b34801561049757600080fd5b506103dc6104a6366004612327565b610bb5565b3480156104b757600080fd5b506104686104c6366004612368565b610c20565b3480156104d757600080fd5b506104117f000000000000000000000000000000000000000000000000000000000000000081565b34801561050b57600080fd5b5061046861051a366004612383565b610c68565b34801561052b57600080fd5b5060045460405160ff90911681526020016103b3565b34801561054d57600080fd5b506103dc61055c3660046122b1565b610c97565b34801561056d57600080fd5b5061043a60185481565b34801561058357600080fd5b50610468610592366004612383565b610ccd565b3480156105a357600080fd5b506104686105b2366004612383565b610cdd565b3480156105c357600080fd5b50601d546103dc90600160a81b900460ff1681565b3480156105e457600080fd5b506103dc6105f336600461239c565b60076020526000908152604090205460ff1681565b34801561061457600080fd5b5061043a60115481565b34801561062a57600080fd5b506004546104119061010090046001600160a01b031681565b34801561064f57600080fd5b5061043a60125481565b34801561066557600080fd5b5061043a61067436600461239c565b6001600160a01b031660009081526005602052604090205490565b34801561069b57600080fd5b50610468610d65565b3480156106b057600080fd5b5061043a60195481565b3480156106c657600080fd5b5061043a601a5481565b3480156106dc57600080fd5b5061043a60165481565b3480156106f257600080fd5b5061043a600e5481565b34801561070857600080fd5b50610468610d9c565b34801561071d57600080fd5b506103dc61072c36600461239c565b60096020526000908152604090205460ff1681565b34801561074d57600080fd5b506000546001600160a01b0316610411565b34801561076b57600080fd5b506103dc61077a36600461239c565b600a6020526000908152604090205460ff1681565b34801561079b57600080fd5b50610468610dd5565b3480156107b057600080fd5b506103a6610e49565b3480156107c557600080fd5b506104686107d43660046122f2565b610e58565b610468610efc565b3480156107ed57600080fd5b50601b5461043a565b34801561080257600080fd5b5061043a60175481565b34801561081857600080fd5b506103dc6108273660046122b1565b6111bf565b34801561083857600080fd5b50610468610847366004612368565b61120e565b34801561085857600080fd5b5061043a60135481565b34801561086e57600080fd5b506103dc61087d3660046122b1565b611256565b34801561088e57600080fd5b50601c546103dc9060ff1681565b3480156108a857600080fd5b5061043a60145481565b3480156108be57600080fd5b5061043a600d5481565b3480156108d457600080fd5b5061043a600c5481565b3480156108ea57600080fd5b5061043a600f5481565b34801561090057600080fd5b506103dc61090f36600461239c565b60086020526000908152604090205460ff1681565b34801561093057600080fd5b5061046861093f366004612383565b611263565b34801561095057600080fd5b5061043a60105481565b34801561096657600080fd5b50601d546103dc90600160b01b900460ff1681565b34801561098757600080fd5b506104686109963660046123b9565b611292565b3480156109a757600080fd5b5061043a600b5481565b3480156109bd57600080fd5b5061043a6109cc3660046123e5565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610a0357600080fd5b50610468610a123660046122f2565b6112e7565b348015610a2357600080fd5b5061043a60155481565b348015610a3957600080fd5b50610468610a4836600461239c565b61133c565b348015610a5957600080fd5b50610468610a68366004612368565b611426565b348015610a7957600080fd5b50610468610a883660046122f2565b6114a8565b348015610a9957600080fd5b50601d546103dc90600160b81b900460ff1681565b606060028054610abd9061241e565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae99061241e565b8015610b365780601f10610b0b57610100808354040283529160200191610b36565b820191906000526020600020905b815481529060010190602001808311610b1957829003601f168201915b5050505050905090565b6000610b4d3384846114fd565b5060015b92915050565b6000546001600160a01b03163314610b8a5760405162461bcd60e51b8152600401610b8190612458565b60405180910390fd5b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000610bc2848484611615565b50610c158433610c10856040518060600160405280602881526020016125d5602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611b8f565b6114fd565b5060015b9392505050565b6000546001600160a01b03163314610c4a5760405162461bcd60e51b8152600401610b8190612458565b601d8054911515600160b81b0260ff60b81b19909216919091179055565b6000546001600160a01b03163314610c925760405162461bcd60e51b8152600401610b8190612458565b601b55565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610b4d918590610c109086611bc9565b610cd933600083611615565b5050565b6000546001600160a01b03163314610d075760405162461bcd60e51b8152600401610b8190612458565b60198190556512309ce54000811015610d625760405162461bcd60e51b815260206004820152601860248201527f4d6178205458206973206c657373207468616e203130302500000000000000006044820152606401610b81565b50565b6000546001600160a01b03163314610d8f5760405162461bcd60e51b8152600401610b8190612458565b600019601a819055601955565b6000546001600160a01b03163314610dc65760405162461bcd60e51b8152600401610b8190612458565b601c805460ff19166001179055565b6000546001600160a01b03163314610dff5760405162461bcd60e51b8152600401610b8190612458565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060038054610abd9061241e565b6000546001600160a01b03163314610e825760405162461bcd60e51b8152600401610b8190612458565b601d546001600160a01b0390811690831603610ef25760405162461bcd60e51b815260206004820152602960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201526834b9a0a6a6a830b4b960b91b6064820152608401610b81565b610cd98282611c28565b6000546001600160a01b03163314610f265760405162461bcd60e51b8152600401610b8190612458565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa1919061248d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611012919061248d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561105f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611083919061248d565b601d80546001600160a01b039283166001600160a01b03199091168117909155601c805492841661010002610100600160a81b0319909316929092179091556110cd906001611c28565b601c546110ec90309061010090046001600160a01b03166000196114fd565b601c54306000818152600560205260409020546101009092046001600160a01b03169163f305d71991349160008061112c6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611194573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111b991906124aa565b50505050565b6000610b4d3384610c10856040518060600160405280602581526020016125fd602591393360009081526006602090815260408083206001600160a01b038d1684529091529020549190611b8f565b6000546001600160a01b031633146112385760405162461bcd60e51b8152600401610b8190612458565b601d8054911515600160b01b0260ff60b01b19909216919091179055565b6000610c15338484611615565b6000546001600160a01b0316331461128d5760405162461bcd60e51b8152600401610b8190612458565b601a55565b6000546001600160a01b031633146112bc5760405162461bcd60e51b8152600401610b8190612458565b6011839055601282905560138190556112df816112d98585611bc9565b90611bc9565b601755505050565b6000546001600160a01b031633146113115760405162461bcd60e51b8152600401610b8190612458565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113665760405162461bcd60e51b8152600401610b8190612458565b6001600160a01b0381166113cb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b81565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114505760405162461bcd60e51b8152600401610b8190612458565b601d8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061149d90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146114d25760405162461bcd60e51b8152600401610b8190612458565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6001600160a01b03831661155e5760405162461bcd60e51b815260206004820152602260248201527f4552523a20617070726f76652066726f6d20746865207a65726f206164647265604482015261737360f01b6064820152608401610b81565b6001600160a01b0382166115b45760405162461bcd60e51b815260206004820181905260248201527f4552523a20617070726f766520746f20746865207a65726f20616464726573736044820152606401610b81565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166116795760405162461bcd60e51b815260206004820152602360248201527f4552523a207472616e736665722066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610b81565b6001600160a01b0383166116d95760405162461bcd60e51b815260206004820152602160248201527f4552523a207472616e7366657220746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610b81565b601c5460ff16611767576001600160a01b03841660009081526007602052604090205460ff168061172257506001600160a01b03831660009081526007602052604090205460ff165b6117675760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610b81565b601d54600160a01b900460ff161561178b57611784848484611c53565b9050610c19565b6001600160a01b03841660009081526009602052604090205460ff161580156117cd57506001600160a01b03831660009081526009602052604090205460ff16155b80156117f257506001600160a01b03841660009081526007602052604090205460ff16155b801561181757506001600160a01b03831660009081526007602052604090205460ff16155b15611880576019548211156118805760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865205f6d61786044820152682a3c20b6b7bab73a1760b91b6064820152608401610b81565b30600090815260056020526040902054801580159081906118ab5750601d54600160a01b900460ff16155b80156118d057506001600160a01b0386166000908152600a602052604090205460ff16155b80156118e55750601d54600160a81b900460ff165b801561190a57506001600160a01b03861660009081526007602052604090205460ff16155b801561192f57506001600160a01b03851660009081526007602052604090205460ff16155b1561195557601d54600160b01b900460ff161561194c57601b5491505b61195582611d39565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600590915291909120546119a7918690611b8f565b6001600160a01b038716600090815260056020908152604080832093909355600790529081205460ff16806119f457506001600160a01b03861660009081526007602052604090205460ff165b15611a445750836001600160a01b0387163014801590611a1d57506001600160a01b0386163014155b15611a3f5761deac196001600160a01b03871601611a3f57611a3d611d83565b505b611a52565b611a4f878787611e5b565b90505b601d54600160b81b900460ff168015611a8457506001600160a01b03861660009081526008602052604090205460ff16155b8015611aa957506001600160a01b03871660009081526007602052604090205460ff16155b8015611ace57506001600160a01b03861660009081526007602052604090205460ff16155b15611b0457601a54611af9826112d9896001600160a01b031660009081526005602052604090205490565b1115611b0457600080fd5b6001600160a01b038616600090815260056020526040902054611b279082611bc9565b6001600160a01b0380881660008181526005602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b7b9085815260200190565b60405180910390a360019350505050610c19565b60008184841115611bb35760405162461bcd60e51b8152600401610b81919061224e565b506000611bc084866124ee565b95945050505050565b600080611bd68385612501565b905083811015610c195760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b81565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054611ca4918490611b8f565b6001600160a01b038086166000908152600560205260408082209390935590851681522054611cd39083611bc9565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d279086815260200190565b60405180910390a35060019392505050565b601d805460ff60a01b1916600160a01b179055611d5581611f67565b6004544790611d729061010090046001600160a01b0316826120e4565b5050601d805460ff60a01b19169055565b601d546001600160a01b0316600090815260056020526040812054601b548290611dae90839061211f565b90508015611def57601d54611ded906001600160a01b03167f000000000000000000000000000000000000000000000000000000000000000083611c53565b505b601d546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b158015611e3957600080fd5b505af1158015611e4d573d6000803e3d6000fd5b505050506001935050505090565b6001600160a01b0383166000908152600a6020526040812054819060ff1615611ea557611e9e6064611e986015548661216190919063ffffffff16565b906121e3565b9050611ee3565b6001600160a01b0384166000908152600a602052604090205460ff1615611ee357611ee06064611e986016548661216190919063ffffffff16565b90505b8015611f5d5730600090815260056020526040902054611f039082611bc9565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f549085815260200190565b60405180910390a35b611bc0838261211f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611f9c57611f9c612514565b60200260200101906001600160a01b031690816001600160a01b031681525050601c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561200f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612033919061248d565b8160018151811061204657612046612514565b6001600160a01b039283166020918202929092010152601c54612071913091610100900416846114fd565b601c5460405163791ac94760e01b81526101009091046001600160a01b03169063791ac947906120ae90859060009086903090429060040161252a565b600060405180830381600087803b1580156120c857600080fd5b505af11580156120dc573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561211a573d6000803e3d6000fd5b505050565b6000610c1983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b8f565b60008260000361217357506000610b51565b600061217f838561259b565b90508261218c85836125b2565b14610c195760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b81565b6000610c1983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836122415760405162461bcd60e51b8152600401610b81919061224e565b506000611bc084866125b2565b600060208083528351808285015260005b8181101561227b5785810183015185820160400152820161225f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d6257600080fd5b600080604083850312156122c457600080fd5b82356122cf8161229c565b946020939093013593505050565b803580151581146122ed57600080fd5b919050565b6000806040838503121561230557600080fd5b82356123108161229c565b915061231e602084016122dd565b90509250929050565b60008060006060848603121561233c57600080fd5b83356123478161229c565b925060208401356123578161229c565b929592945050506040919091013590565b60006020828403121561237a57600080fd5b610c19826122dd565b60006020828403121561239557600080fd5b5035919050565b6000602082840312156123ae57600080fd5b8135610c198161229c565b6000806000606084860312156123ce57600080fd5b505081359360208301359350604090920135919050565b600080604083850312156123f857600080fd5b82356124038161229c565b915060208301356124138161229c565b809150509250929050565b600181811c9082168061243257607f821691505b60208210810361245257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561249f57600080fd5b8151610c198161229c565b6000806000606084860312156124bf57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b5157610b516124d8565b80820180821115610b5157610b516124d8565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561257a5784516001600160a01b031683529383019391830191600101612555565b50506001600160a01b03969096166060850152505050608001529392505050565b8082028115828204841417610b5157610b516124d8565b6000826125cf57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204109e3822e8c7a464859e08261e34cf4e1a516f3f409f8f3c1a048539d3da38e64736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
Deployed Bytecode
0x6080604052600436106103855760003560e01c806390aa2ea6116101d1578063c5d2418911610102578063dc44b6a0116100a0578063f2fde38b1161006f578063f2fde38b14610a2d578063f7739b5f14610a4d578063f84ba65d14610a6d578063f872858a14610a8d57600080fd5b8063dc44b6a01461099b578063dd62ed3e146109b1578063ef422a18146109f7578063f0cd1dac14610a1757600080fd5b8063c91318ee116100dc578063c91318ee14610924578063cab0347114610944578063da00097d1461095a578063db01da941461097b57600080fd5b8063c5d24189146108c8578063c8607952146108de578063c867d60b146108f457600080fd5b8063a457c2d71161016f578063a9059cbb11610149578063a9059cbb14610862578063bbc0c74214610882578063c0b0fda21461089c578063c469b6dd146108b257600080fd5b8063a457c2d71461080c578063a5d69d1f1461082c578063a83f53a71461084c57600080fd5b80639a7a23d6116101ab5780639a7a23d6146107b95780639b735256146107d9578063a073d37f146107e1578063a08e671f146107f657600080fd5b806390aa2ea61461075f578063914eb66a1461078f57806395d89b41146107a457600080fd5b8063459ab5aa116102b6578063751039fc1161025457806388790a681161022357806388790a68146106e65780638a8c523c146106fc5780638b42507f146107115780638da5cb5b1461074157600080fd5b8063751039fc1461068f5780637d1db4a5146106a4578063807c2d9c146106ba57806382eefb43146106d057600080fd5b806357a5802f1161029057806357a5802f14610608578063599270441461061e57806361a23c691461064357806370a082311461065957600080fd5b8063459ab5aa146105975780634a74bb02146105b75780635342acb4146105d857600080fd5b80632563ae8311610323578063313ce567116102fd578063313ce5671461051f57806339509351146105415780633eaaf86b1461056157806342966c681461057757600080fd5b80632563ae83146104ab57806327c8f835146104cb5780632988b954146104ff57600080fd5b806318160ddd1161035f57806318160ddd146104295780632198cf6c14610448578063220f66961461046a57806323b872dd1461048b57600080fd5b806306fdde0314610391578063095ea7b3146103bc5780631694505e146103ec57600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610aae565b6040516103b3919061224e565b60405180910390f35b3480156103c857600080fd5b506103dc6103d73660046122b1565b610b40565b60405190151581526020016103b3565b3480156103f857600080fd5b50601c546104119061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016103b3565b34801561043557600080fd5b506018545b6040519081526020016103b3565b34801561045457600080fd5b506104686104633660046122f2565b610b57565b005b34801561047657600080fd5b50601d546103dc90600160a01b900460ff1681565b34801561049757600080fd5b506103dc6104a6366004612327565b610bb5565b3480156104b757600080fd5b506104686104c6366004612368565b610c20565b3480156104d757600080fd5b506104117f000000000000000000000000000000000000000000000000000000000000dead81565b34801561050b57600080fd5b5061046861051a366004612383565b610c68565b34801561052b57600080fd5b5060045460405160ff90911681526020016103b3565b34801561054d57600080fd5b506103dc61055c3660046122b1565b610c97565b34801561056d57600080fd5b5061043a60185481565b34801561058357600080fd5b50610468610592366004612383565b610ccd565b3480156105a357600080fd5b506104686105b2366004612383565b610cdd565b3480156105c357600080fd5b50601d546103dc90600160a81b900460ff1681565b3480156105e457600080fd5b506103dc6105f336600461239c565b60076020526000908152604090205460ff1681565b34801561061457600080fd5b5061043a60115481565b34801561062a57600080fd5b506004546104119061010090046001600160a01b031681565b34801561064f57600080fd5b5061043a60125481565b34801561066557600080fd5b5061043a61067436600461239c565b6001600160a01b031660009081526005602052604090205490565b34801561069b57600080fd5b50610468610d65565b3480156106b057600080fd5b5061043a60195481565b3480156106c657600080fd5b5061043a601a5481565b3480156106dc57600080fd5b5061043a60165481565b3480156106f257600080fd5b5061043a600e5481565b34801561070857600080fd5b50610468610d9c565b34801561071d57600080fd5b506103dc61072c36600461239c565b60096020526000908152604090205460ff1681565b34801561074d57600080fd5b506000546001600160a01b0316610411565b34801561076b57600080fd5b506103dc61077a36600461239c565b600a6020526000908152604090205460ff1681565b34801561079b57600080fd5b50610468610dd5565b3480156107b057600080fd5b506103a6610e49565b3480156107c557600080fd5b506104686107d43660046122f2565b610e58565b610468610efc565b3480156107ed57600080fd5b50601b5461043a565b34801561080257600080fd5b5061043a60175481565b34801561081857600080fd5b506103dc6108273660046122b1565b6111bf565b34801561083857600080fd5b50610468610847366004612368565b61120e565b34801561085857600080fd5b5061043a60135481565b34801561086e57600080fd5b506103dc61087d3660046122b1565b611256565b34801561088e57600080fd5b50601c546103dc9060ff1681565b3480156108a857600080fd5b5061043a60145481565b3480156108be57600080fd5b5061043a600d5481565b3480156108d457600080fd5b5061043a600c5481565b3480156108ea57600080fd5b5061043a600f5481565b34801561090057600080fd5b506103dc61090f36600461239c565b60086020526000908152604090205460ff1681565b34801561093057600080fd5b5061046861093f366004612383565b611263565b34801561095057600080fd5b5061043a60105481565b34801561096657600080fd5b50601d546103dc90600160b01b900460ff1681565b34801561098757600080fd5b506104686109963660046123b9565b611292565b3480156109a757600080fd5b5061043a600b5481565b3480156109bd57600080fd5b5061043a6109cc3660046123e5565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610a0357600080fd5b50610468610a123660046122f2565b6112e7565b348015610a2357600080fd5b5061043a60155481565b348015610a3957600080fd5b50610468610a4836600461239c565b61133c565b348015610a5957600080fd5b50610468610a68366004612368565b611426565b348015610a7957600080fd5b50610468610a883660046122f2565b6114a8565b348015610a9957600080fd5b50601d546103dc90600160b81b900460ff1681565b606060028054610abd9061241e565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae99061241e565b8015610b365780601f10610b0b57610100808354040283529160200191610b36565b820191906000526020600020905b815481529060010190602001808311610b1957829003601f168201915b5050505050905090565b6000610b4d3384846114fd565b5060015b92915050565b6000546001600160a01b03163314610b8a5760405162461bcd60e51b8152600401610b8190612458565b60405180910390fd5b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000610bc2848484611615565b50610c158433610c10856040518060600160405280602881526020016125d5602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611b8f565b6114fd565b5060015b9392505050565b6000546001600160a01b03163314610c4a5760405162461bcd60e51b8152600401610b8190612458565b601d8054911515600160b81b0260ff60b81b19909216919091179055565b6000546001600160a01b03163314610c925760405162461bcd60e51b8152600401610b8190612458565b601b55565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610b4d918590610c109086611bc9565b610cd933600083611615565b5050565b6000546001600160a01b03163314610d075760405162461bcd60e51b8152600401610b8190612458565b60198190556512309ce54000811015610d625760405162461bcd60e51b815260206004820152601860248201527f4d6178205458206973206c657373207468616e203130302500000000000000006044820152606401610b81565b50565b6000546001600160a01b03163314610d8f5760405162461bcd60e51b8152600401610b8190612458565b600019601a819055601955565b6000546001600160a01b03163314610dc65760405162461bcd60e51b8152600401610b8190612458565b601c805460ff19166001179055565b6000546001600160a01b03163314610dff5760405162461bcd60e51b8152600401610b8190612458565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060038054610abd9061241e565b6000546001600160a01b03163314610e825760405162461bcd60e51b8152600401610b8190612458565b601d546001600160a01b0390811690831603610ef25760405162461bcd60e51b815260206004820152602960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201526834b9a0a6a6a830b4b960b91b6064820152608401610b81565b610cd98282611c28565b6000546001600160a01b03163314610f265760405162461bcd60e51b8152600401610b8190612458565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa1919061248d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611012919061248d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561105f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611083919061248d565b601d80546001600160a01b039283166001600160a01b03199091168117909155601c805492841661010002610100600160a81b0319909316929092179091556110cd906001611c28565b601c546110ec90309061010090046001600160a01b03166000196114fd565b601c54306000818152600560205260409020546101009092046001600160a01b03169163f305d71991349160008061112c6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611194573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111b991906124aa565b50505050565b6000610b4d3384610c10856040518060600160405280602581526020016125fd602591393360009081526006602090815260408083206001600160a01b038d1684529091529020549190611b8f565b6000546001600160a01b031633146112385760405162461bcd60e51b8152600401610b8190612458565b601d8054911515600160b01b0260ff60b01b19909216919091179055565b6000610c15338484611615565b6000546001600160a01b0316331461128d5760405162461bcd60e51b8152600401610b8190612458565b601a55565b6000546001600160a01b031633146112bc5760405162461bcd60e51b8152600401610b8190612458565b6011839055601282905560138190556112df816112d98585611bc9565b90611bc9565b601755505050565b6000546001600160a01b031633146113115760405162461bcd60e51b8152600401610b8190612458565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113665760405162461bcd60e51b8152600401610b8190612458565b6001600160a01b0381166113cb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b81565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114505760405162461bcd60e51b8152600401610b8190612458565b601d8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061149d90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146114d25760405162461bcd60e51b8152600401610b8190612458565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6001600160a01b03831661155e5760405162461bcd60e51b815260206004820152602260248201527f4552523a20617070726f76652066726f6d20746865207a65726f206164647265604482015261737360f01b6064820152608401610b81565b6001600160a01b0382166115b45760405162461bcd60e51b815260206004820181905260248201527f4552523a20617070726f766520746f20746865207a65726f20616464726573736044820152606401610b81565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166116795760405162461bcd60e51b815260206004820152602360248201527f4552523a207472616e736665722066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610b81565b6001600160a01b0383166116d95760405162461bcd60e51b815260206004820152602160248201527f4552523a207472616e7366657220746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610b81565b601c5460ff16611767576001600160a01b03841660009081526007602052604090205460ff168061172257506001600160a01b03831660009081526007602052604090205460ff165b6117675760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610b81565b601d54600160a01b900460ff161561178b57611784848484611c53565b9050610c19565b6001600160a01b03841660009081526009602052604090205460ff161580156117cd57506001600160a01b03831660009081526009602052604090205460ff16155b80156117f257506001600160a01b03841660009081526007602052604090205460ff16155b801561181757506001600160a01b03831660009081526007602052604090205460ff16155b15611880576019548211156118805760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865205f6d61786044820152682a3c20b6b7bab73a1760b91b6064820152608401610b81565b30600090815260056020526040902054801580159081906118ab5750601d54600160a01b900460ff16155b80156118d057506001600160a01b0386166000908152600a602052604090205460ff16155b80156118e55750601d54600160a81b900460ff165b801561190a57506001600160a01b03861660009081526007602052604090205460ff16155b801561192f57506001600160a01b03851660009081526007602052604090205460ff16155b1561195557601d54600160b01b900460ff161561194c57601b5491505b61195582611d39565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600590915291909120546119a7918690611b8f565b6001600160a01b038716600090815260056020908152604080832093909355600790529081205460ff16806119f457506001600160a01b03861660009081526007602052604090205460ff165b15611a445750836001600160a01b0387163014801590611a1d57506001600160a01b0386163014155b15611a3f5761deac196001600160a01b03871601611a3f57611a3d611d83565b505b611a52565b611a4f878787611e5b565b90505b601d54600160b81b900460ff168015611a8457506001600160a01b03861660009081526008602052604090205460ff16155b8015611aa957506001600160a01b03871660009081526007602052604090205460ff16155b8015611ace57506001600160a01b03861660009081526007602052604090205460ff16155b15611b0457601a54611af9826112d9896001600160a01b031660009081526005602052604090205490565b1115611b0457600080fd5b6001600160a01b038616600090815260056020526040902054611b279082611bc9565b6001600160a01b0380881660008181526005602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b7b9085815260200190565b60405180910390a360019350505050610c19565b60008184841115611bb35760405162461bcd60e51b8152600401610b81919061224e565b506000611bc084866124ee565b95945050505050565b600080611bd68385612501565b905083811015610c195760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b81565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054611ca4918490611b8f565b6001600160a01b038086166000908152600560205260408082209390935590851681522054611cd39083611bc9565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d279086815260200190565b60405180910390a35060019392505050565b601d805460ff60a01b1916600160a01b179055611d5581611f67565b6004544790611d729061010090046001600160a01b0316826120e4565b5050601d805460ff60a01b19169055565b601d546001600160a01b0316600090815260056020526040812054601b548290611dae90839061211f565b90508015611def57601d54611ded906001600160a01b03167f000000000000000000000000000000000000000000000000000000000000dead83611c53565b505b601d546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b158015611e3957600080fd5b505af1158015611e4d573d6000803e3d6000fd5b505050506001935050505090565b6001600160a01b0383166000908152600a6020526040812054819060ff1615611ea557611e9e6064611e986015548661216190919063ffffffff16565b906121e3565b9050611ee3565b6001600160a01b0384166000908152600a602052604090205460ff1615611ee357611ee06064611e986016548661216190919063ffffffff16565b90505b8015611f5d5730600090815260056020526040902054611f039082611bc9565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f549085815260200190565b60405180910390a35b611bc0838261211f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611f9c57611f9c612514565b60200260200101906001600160a01b031690816001600160a01b031681525050601c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561200f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612033919061248d565b8160018151811061204657612046612514565b6001600160a01b039283166020918202929092010152601c54612071913091610100900416846114fd565b601c5460405163791ac94760e01b81526101009091046001600160a01b03169063791ac947906120ae90859060009086903090429060040161252a565b600060405180830381600087803b1580156120c857600080fd5b505af11580156120dc573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561211a573d6000803e3d6000fd5b505050565b6000610c1983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b8f565b60008260000361217357506000610b51565b600061217f838561259b565b90508261218c85836125b2565b14610c195760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b81565b6000610c1983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836122415760405162461bcd60e51b8152600401610b81919061224e565b506000611bc084866125b2565b600060208083528351808285015260005b8181101561227b5785810183015185820160400152820161225f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d6257600080fd5b600080604083850312156122c457600080fd5b82356122cf8161229c565b946020939093013593505050565b803580151581146122ed57600080fd5b919050565b6000806040838503121561230557600080fd5b82356123108161229c565b915061231e602084016122dd565b90509250929050565b60008060006060848603121561233c57600080fd5b83356123478161229c565b925060208401356123578161229c565b929592945050506040919091013590565b60006020828403121561237a57600080fd5b610c19826122dd565b60006020828403121561239557600080fd5b5035919050565b6000602082840312156123ae57600080fd5b8135610c198161229c565b6000806000606084860312156123ce57600080fd5b505081359360208301359350604090920135919050565b600080604083850312156123f857600080fd5b82356124038161229c565b915060208301356124138161229c565b809150509250929050565b600181811c9082168061243257607f821691505b60208210810361245257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561249f57600080fd5b8151610c198161229c565b6000806000606084860312156124bf57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b5157610b516124d8565b80820180821115610b5157610b516124d8565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561257a5784516001600160a01b031683529383019391830191600101612555565b50506001600160a01b03969096166060850152505050608001529392505050565b8082028115828204841417610b5157610b516124d8565b6000826125cf57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204109e3822e8c7a464859e08261e34cf4e1a516f3f409f8f3c1a048539d3da38e64736f6c63430008130033
Deployed Bytecode Sourcemap
14833:14499:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18674:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20860:186;;;;;;;;;;-1:-1:-1;20860:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;20860:186:0;1023:187:1;16485:41:0;;;;;;;;;;-1:-1:-1;16485:41:0;;;;;;;-1:-1:-1;;;;;16485:41:0;;;;;;-1:-1:-1;;;;;1406:32:1;;;1388:51;;1376:2;1361:18;16485:41:0;1215:230:1;18951:100:0;;;;;;;;;;-1:-1:-1;19031:12:0;;18951:100;;;1596:25:1;;;1584:2;1569:18;18951:100:0;1450:177:1;22609:158:0;;;;;;;;;;-1:-1:-1;22609:158:0;;;;;:::i;:::-;;:::i;:::-;;16571:28;;;;;;;;;;-1:-1:-1;16571:28:0;;;;-1:-1:-1;;;16571:28:0;;;;;;24221:446;;;;;;;;;;-1:-1:-1;24221:446:0;;;;;:::i;:::-;;:::i;22487:114::-;;;;;;;;;;-1:-1:-1;22487:114:0;;;;;:::i;:::-;;:::i;15189:90::-;;;;;;;;;;;;;;;22886:115;;;;;;;;;;-1:-1:-1;22886:115:0;;;;;:::i;:::-;;:::i;18860:83::-;;;;;;;;;;-1:-1:-1;18926:9:0;;18860:83;;18926:9;;;;3298:36:1;;3286:2;3271:18;18860:83:0;3156:184:1;20040:293:0;;;;;;;;;;-1:-1:-1;20040:293:0;;;;;:::i;:::-;;:::i;16197:61::-;;;;;;;;;;;;;;;;19186:99;;;;;;;;;;-1:-1:-1;19186:99:0;;;;;:::i;:::-;;:::i;22283:196::-;;;;;;;;;;-1:-1:-1;22283:196:0;;;;;:::i;:::-;;:::i;16606:40::-;;;;;;;;;;-1:-1:-1;16606:40:0;;;;-1:-1:-1;;;16606:40:0;;;;;;15416:49;;;;;;;;;;-1:-1:-1;15416:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15898:34;;;;;;;;;;;;;;;;15086:96;;;;;;;;;;-1:-1:-1;15086:96:0;;;;;;;-1:-1:-1;;;;;15086:96:0;;;15939:35;;;;;;;;;;;;;;;;19059:119;;;;;;;;;;-1:-1:-1;19059:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;19152:18:0;19125:7;19152:18;;;:9;:18;;;;;;;19059:119;23414:127;;;;;;;;;;;;;:::i;16265:52::-;;;;;;;;;;;;;;;;16324:50;;;;;;;;;;;;;;;;16098:37;;;;;;;;;;;;;;;;15772:36;;;;;;;;;;;;;;;;23325:81;;;;;;;;;;;;;:::i;15530:47::-;;;;;;;;;;-1:-1:-1;15530:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8166:79;;;;;;;;;;-1:-1:-1;8204:7:0;8231:6;-1:-1:-1;;;;;8231:6:0;8166:79;;15584:56;;;;;;;;;;-1:-1:-1;15584:56:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8380:145;;;;;;;;;;;;;:::i;18765:87::-;;;;;;;;;;;;;:::i;23549:290::-;;;;;;;;;;-1:-1:-1;23549:290:0;;;;;:::i;:::-;;:::i;17930:736::-;;;:::i;20742:110::-;;;;;;;;;;-1:-1:-1;20831:13:0;;20742:110;;16144:44;;;;;;;;;;;;;;;;20341:393;;;;;;;;;;-1:-1:-1;20341:393:0;;;;;:::i;:::-;;:::i;23192:125::-;;;;;;;;;;-1:-1:-1;23192:125:0;;;;;:::i;:::-;;:::i;15981:29::-;;;;;;;;;;;;;;;;24021:192;;;;;;;;;;-1:-1:-1;24021:192:0;;;;;:::i;:::-;;:::i;16443:33::-;;;;;;;;;;-1:-1:-1;16443:33:0;;;;;;;;16019:27;;;;;;;;;;;;;;;;15733:30;;;;;;;;;;;;;;;;15691:35;;;;;;;;;;;;;;;;15815:36;;;;;;;;;;;;;;;;15472:51;;;;;;;;;;-1:-1:-1;15472:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22775:103;;;;;;;;;;-1:-1:-1;22775:103:0;;;;;:::i;:::-;;:::i;15858:31::-;;;;;;;;;;;;;;;;16653:45;;;;;;;;;;-1:-1:-1;16653:45:0;;;;-1:-1:-1;;;16653:45:0;;;;;;21859:416;;;;;;;;;;-1:-1:-1;21859:416:0;;;;;:::i;:::-;;:::i;15649:35::-;;;;;;;;;;;;;;;;19864:168;;;;;;;;;;-1:-1:-1;19864:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;19997:18:0;;;19970:7;19997:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19864:168;21691:160;;;;;;;;;;-1:-1:-1;21691:160:0;;;;;:::i;:::-;;:::i;16055:36::-;;;;;;;;;;;;;;;;8533:281;;;;;;;;;;-1:-1:-1;8533:281:0;;;;;:::i;:::-;;:::i;23009:175::-;;;;;;;;;;-1:-1:-1;23009:175:0;;;;;:::i;:::-;;:::i;21558:125::-;;;;;;;;;;-1:-1:-1;21558:125:0;;;;;:::i;:::-;;:::i;16705:35::-;;;;;;;;;;-1:-1:-1;16705:35:0;;;;-1:-1:-1;;;16705:35:0;;;;;;18674:83;18711:13;18744:5;18737:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18674:83;:::o;20860:186::-;20960:4;20977:39;391:10;21000:7;21009:6;20977:8;:39::i;:::-;-1:-1:-1;21034:4:0;20860:186;;;;;:::o;22609:158::-;8293:6;;-1:-1:-1;;;;;8293:6:0;391:10;8293:22;8285:67;;;;-1:-1:-1;;;8285:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;22723:27:0;;;::::1;;::::0;;;:19:::1;:27;::::0;;;;:36;;-1:-1:-1;;22723:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22609:158::o;24221:446::-;24353:4;24370:36;24380:6;24388:9;24399:6;24370:9;:36::i;:::-;-1:-1:-1;24417:220:0;24440:6;391:10;24488:138;24544:6;24488:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24488:19:0;;;;;;:11;:19;;;;;;;;391:10;24488:33;;;;;;;;;;:37;:138::i;:::-;24417:8;:220::i;:::-;-1:-1:-1;24655:4:0;24221:446;;;;;;:::o;22487:114::-;8293:6;;-1:-1:-1;;;;;8293:6:0;391:10;8293:22;8285:67;;;;-1:-1:-1;;;8285:67:0;;;;;;;:::i;:::-;22566:16:::1;:27:::0;;;::::1;;-1:-1:-1::0;;;22566:27:0::1;-1:-1:-1::0;;;;22566:27:0;;::::1;::::0;;;::::1;::::0;;22487:114::o;22886:115::-;8293:6;;-1:-1:-1;;;;;8293:6:0;391:10;8293:22;8285:67;;;;-1:-1:-1;;;8285:67:0;;;;;;;:::i;:::-;22969:13:::1;:24:::0;22886:115::o;20040:293::-;391:10;20153:4;20242:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;20242:34:0;;;;;;;;;;20153:4;;20170:133;;20220:7;;20242:50;;20281:10;20242:38;:50::i;19186:99::-;19235:42;19245:10;19265:1;19269:7;19235:9;:42::i;:::-;;19186:99;:::o;22283:196::-;8293:6;;-1:-1:-1;;;;;8293:6:0;391:10;8293:22;8285:67;;;;-1:-1:-1;;;8285:67:0;;;;;;;:::i;:::-;22364:12:::1;:29:::0;;;22428:14:::1;22412:30:::0;::::1;;22404:67;;;::::0;-1:-1:-1;;;22404:67:0;;5483:2:1;22404:67:0::1;::::0;::::1;5465:21:1::0;5522:2;5502:18;;;5495:30;5561:26;5541:18;;;5534:54;5605:18;;22404:67:0::1;5281:348:1::0;22404:67:0::1;22283:196:::0;:::o;23414:127::-;8293:6;;-1:-1:-1;;;;;8293:6:0;391:10;8293:22;8285:67;;;;-1:-1:-1;;;8285:67:0;;;;;;;:::i;:::-;-1:-1:-1;;23466:10:0::1;:27:::0;;;23504:12:::1;:29:::0;23414:127::o;23325:81::-;8293:6;;-1:-1:-1;;;;;8293:6:0;391:10;8293:22;8285:67;;;;-1:-1:-1;;;8285:67:0;;;;;;;:::i;:::-;23378:13:::1;:20:::0;;-1:-1:-1;;23378:20:0::1;23394:4;23378:20;::::0;;23325:81::o;8380:145::-;8293:6;;-1:-1:-1;;;;;8293:6:0;391:10;8293:22;8285:67;;;;-1:-1:-1;;;8285:67:0;;;;;;;:::i;:::-;8484:1:::1;8468:6:::0;;8447:40:::1;::::0;-1:-1:-1;;;;;8468:6:0;;::::1;::::0;8447:40:::1;::::0;8484:1;;8447:40:::1;8515:1;8498:19:::0;;-1:-1:-1;;;;;;8498:19:0::1;::::0;;8380:145::o;18765:87::-;18804:13;18837:7;18830:14;;;;;:::i;23549:290::-;8293:6;;-1:-1:-1;;;;;8293:6:0;391:10;8293:22;8285:67;;;;-1:-1:-1;;;8285:67:0;;;;;;;:::i;:::-;23695:13:::1;::::0;-1:-1:-1;;;;;23695:13:0;;::::1;23687:21:::0;;::::1;::::0;23665:112:::1;;;::::0;-1:-1:-1;;;23665:112:0;;5836:2:1;23665:112:0::1;::::0;::::1;5818:21:1::0;5875:2;5855:18;;;5848:30;5914:34;5894:18;;;5887:62;-1:-1:-1;;;5965:18:1;;;5958:39;6014:19;;23665:112:0::1;5634:405:1::0;23665:112:0::1;23790:41;23819:4;23825:5;23790:28;:41::i;17930:736::-:0;8293:6;;-1:-1:-1;;;;;8293:6:0;391:10;8293:22;8285:67;;;;-1:-1:-1;;;8285:67:0;;;;;;;:::i;:::-;17989:35:::1;18060:42;17989:124;;18160:16;-1:-1:-1::0;;;;;18160:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18142:70:0::1;;18221:4;18228:16;-1:-1:-1::0;;;;;18228:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18142:110;::::0;-1:-1:-1;;;;;;18142:110:0::1;::::0;;;;;;-1:-1:-1;;;;;6530:15:1;;;18142:110:0::1;::::0;::::1;6512:34:1::0;6582:15;;6562:18;;;6555:43;6447:18;;18142:110:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18126:13;:126:::0;;-1:-1:-1;;;;;18126:126:0;;::::1;-1:-1:-1::0;;;;;;18126:126:0;;::::1;::::0;::::1;::::0;;;18265:15:::1;:34:::0;;;;::::1;18126:126;18265:34;-1:-1:-1::0;;;;;;18265:34:0;;::::1;::::0;;;::::1;::::0;;;18312:49:::1;::::0;18126:126;18312:28:::1;:49::i;:::-;18404:15;::::0;18372:62:::1;::::0;18389:4:::1;::::0;18404:15:::1;::::0;::::1;-1:-1:-1::0;;;;;18404:15:0::1;-1:-1:-1::0;;18372:8:0::1;:62::i;:::-;18447:15;::::0;18519:4:::1;19125:7:::0;19152:18;;;:9;:18;;;;;;18447:15:::1;::::0;;::::1;-1:-1:-1::0;;;;;18447:15:0::1;::::0;:31:::1;::::0;18486:9:::1;::::0;18578:1:::1;18594::::0;18610:7:::1;8204::::0;8231:6;-1:-1:-1;;;;;8231:6:0;;8166:79;18610:7:::1;18447:211;::::0;::::1;::::0;;;-1:-1:-1;;;;;;18447:211:0;;;-1:-1:-1;;;;;6968:15:1;;;18447:211:0::1;::::0;::::1;6950:34:1::0;7000:18;;;6993:34;;;;7043:18;;;7036:34;;;;7086:18;;;7079:34;7150:15;;;7129:19;;;7122:44;18632:15:0::1;7182:19:1::0;;;7175:35;6884:19;;18447:211:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17978:688;17930:736::o:0;20341:393::-;20459:4;20476:228;391:10;20526:7;20548:145;20605:15;20548:145;;;;;;;;;;;;;;;;;391:10;20548:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;20548:34:0;;;;;;;;;;;;:38;:145::i;23192:125::-;8293:6;;-1:-1:-1;;;;;8293:6:0;391:10;8293:22;8285:67;;;;-1:-1:-1;;;8285:67:0;;;;;;;:::i;:::-;23273:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;23273:36:0::1;-1:-1:-1::0;;;;23273:36:0;;::::1;::::0;;;::::1;::::0;;23192:125::o;24021:192::-;24124:4;24141:42;391:10;24165:9;24176:6;24141:9;:42::i;22775:103::-;8293:6;;-1:-1:-1;;;;;8293:6:0;391:10;8293:22;8285:67;;;;-1:-1:-1;;;8285:67:0;;;;;;;:::i;:::-;22849:10:::1;:21:::0;22775:103::o;21859:416::-;8293:6;;-1:-1:-1;;;;;8293:6:0;391:10;8293:22;8285:67;;;;-1:-1:-1;;;8285:67:0;;;;;;;:::i;:::-;22034:15:::1;:35:::0;;;22080:15:::1;:35:::0;;;22126:10:::1;:25:::0;;;22191:76:::1;22139:12:::0;22191:36:::1;22052:17:::0;22098;22191:19:::1;:36::i;:::-;:40:::0;::::1;:76::i;:::-;22164:24;:103:::0;-1:-1:-1;;;21859:416:0:o;21691:160::-;8293:6;;-1:-1:-1;;;;;8293:6:0;391:10;8293:22;8285:67;;;;-1:-1:-1;;;8285:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21806:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;21806:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21691:160::o;8533:281::-;8293:6;;-1:-1:-1;;;;;8293:6:0;391:10;8293:22;8285:67;;;;-1:-1:-1;;;8285:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8636:22:0;::::1;8614:110;;;::::0;-1:-1:-1;;;8614:110:0;;7734:2:1;8614:110:0::1;::::0;::::1;7716:21:1::0;7773:2;7753:18;;;7746:30;7812:34;7792:18;;;7785:62;-1:-1:-1;;;7863:18:1;;;7856:36;7909:19;;8614:110:0::1;7532:402:1::0;8614:110:0::1;8761:6;::::0;;8740:38:::1;::::0;-1:-1:-1;;;;;8740:38:0;;::::1;::::0;8761:6;::::1;::::0;8740:38:::1;::::0;::::1;8789:6;:17:::0;;-1:-1:-1;;;;;;8789:17:0::1;-1:-1:-1::0;;;;;8789:17:0;;;::::1;::::0;;;::::1;::::0;;8533:281::o;23009:175::-;8293:6;;-1:-1:-1;;;;;8293:6:0;391:10;8293:22;8285:67;;;;-1:-1:-1;;;8285:67:0;;;;;;;:::i;:::-;23090:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;23090:32:0::1;-1:-1:-1::0;;;;23090:32:0;;::::1;;::::0;;23138:38:::1;::::0;::::1;::::0;::::1;::::0;23114:8;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;23138:38:0::1;;;;;;;;23009:175:::0;:::o;21558:125::-;8293:6;;-1:-1:-1;;;;;8293:6:0;391:10;8293:22;8285:67;;;;-1:-1:-1;;;8285:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21643:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;21643:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21558:125::o;21054:333::-;-1:-1:-1;;;;;21147:19:0;;21139:66;;;;-1:-1:-1;;;21139:66:0;;8141:2:1;21139:66:0;;;8123:21:1;8180:2;8160:18;;;8153:30;8219:34;8199:18;;;8192:62;-1:-1:-1;;;8270:18:1;;;8263:32;8312:19;;21139:66:0;7939:398:1;21139:66:0;-1:-1:-1;;;;;21224:21:0;;21216:66;;;;-1:-1:-1;;;21216:66:0;;8544:2:1;21216:66:0;;;8526:21:1;;;8563:18;;;8556:30;8622:34;8602:18;;;8595:62;8674:18;;21216:66:0;8342:356:1;21216:66:0;-1:-1:-1;;;;;21295:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;21347:32;;1596:25:1;;;21347:32:0;;1569:18:1;21347:32:0;;;;;;;21054:333;;;:::o;24675:2696::-;24796:4;-1:-1:-1;;;;;24821:20:0;;24813:68;;;;-1:-1:-1;;;24813:68:0;;8905:2:1;24813:68:0;;;8887:21:1;8944:2;8924:18;;;8917:30;8983:34;8963:18;;;8956:62;-1:-1:-1;;;9034:18:1;;;9027:33;9077:19;;24813:68:0;8703:399:1;24813:68:0;-1:-1:-1;;;;;24900:23:0;;24892:69;;;;-1:-1:-1;;;24892:69:0;;9309:2:1;24892:69:0;;;9291:21:1;9348:2;9328:18;;;9321:30;9387:34;9367:18;;;9360:62;-1:-1:-1;;;9438:18:1;;;9431:31;9479:19;;24892:69:0;9107:397:1;24892:69:0;24979:13;;;;24974:188;;-1:-1:-1;;;;;25035:25:0;;;;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;25064:28:0;;;;;;:17;:28;;;;;;;;25035:57;25009:141;;;;-1:-1:-1;;;25009:141:0;;9711:2:1;25009:141:0;;;9693:21:1;9750:2;9730:18;;;9723:30;-1:-1:-1;;;9769:18:1;;;9762:52;9831:18;;25009:141:0;9509:346:1;25009:141:0;25178:16;;-1:-1:-1;;;25178:16:0;;;;25174:2190;;;25218:41;25233:6;25241:9;25252:6;25218:14;:41::i;:::-;25211:48;;;;25174:2190;-1:-1:-1;;;;;25315:23:0;;;;;;:15;:23;;;;;;;;25314:24;:73;;;;-1:-1:-1;;;;;;25361:26:0;;;;;;:15;:26;;;;;;;;25360:27;25314:73;:122;;;;-1:-1:-1;;;;;;25411:25:0;;;;;;:17;:25;;;;;;;;25410:26;25314:122;:173;;;;-1:-1:-1;;;;;;25459:28:0;;;;;;:17;:28;;;;;;;;25458:29;25314:173;25292:383;;;25562:12;;25552:6;:22;;25522:137;;;;-1:-1:-1;;;25522:137:0;;10062:2:1;25522:137:0;;;10044:21:1;10101:2;10081:18;;;10074:30;10140:34;10120:18;;;10113:62;-1:-1:-1;;;10191:18:1;;;10184:39;10240:19;;25522:137:0;9860:405:1;25522:137:0;25740:4;25691:28;19152:18;;;:9;:18;;;;;;25792:24;;;;;;;25855:61;;-1:-1:-1;25900:16:0;;-1:-1:-1;;;25900:16:0;;;;25899:17;25855:61;:115;;;;-1:-1:-1;;;;;;25938:32:0;;;;;;:24;:32;;;;;;;;25937:33;25855:115;:157;;;;-1:-1:-1;25991:21:0;;-1:-1:-1;;;25991:21:0;;;;25855:157;:204;;;;-1:-1:-1;;;;;;26034:25:0;;;;;;:17;:25;;;;;;;;26033:26;25855:204;:254;;;;-1:-1:-1;;;;;;26081:28:0;;;;;;:17;:28;;;;;;;;26080:29;25855:254;25833:470;;;26148:25;;-1:-1:-1;;;26148:25:0;;;;26144:88;;;26219:13;;26196:36;;26144:88;26251:36;26266:20;26251:14;:36::i;:::-;26339:102;;;;;;;;;;;-1:-1:-1;;;26339:102:0;;;;;;;;-1:-1:-1;;;;;26339:17:0;;-1:-1:-1;26339:17:0;;;:9;:17;;;;;;;;:102;;26379:6;;26339:21;:102::i;:::-;-1:-1:-1;;;;;26319:17:0;;;;;;:9;:17;;;;;;;;:122;;;;26502:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;26531:28:0;;;;;;:17;:28;;;;;;;;26502:57;26498:375;;;-1:-1:-1;26594:6:0;-1:-1:-1;;;;;26623:23:0;;26641:4;26623:23;;;;:53;;-1:-1:-1;;;;;;26650:26:0;;26671:4;26650:26;;26623:53;26619:147;;;-1:-1:-1;;;;;;;26705:28:0;;;26701:45;;26735:11;:9;:11::i;:::-;;26701:45;26498:375;;;26820:37;26831:6;26839:9;26850:6;26820:10;:37::i;:::-;26806:51;;26498:375;26911:16;;-1:-1:-1;;;26911:16:0;;;;:69;;;;-1:-1:-1;;;;;;26950:30:0;;;;;;:19;:30;;;;;;;;26949:31;26911:69;:117;;;;-1:-1:-1;;;;;;27003:25:0;;;;;;:17;:25;;;;;;;;27002:26;26911:117;:167;;;;-1:-1:-1;;;;;;27050:28:0;;;;;;:17;:28;;;;;;;;27049:29;26911:167;26889:299;;;27161:10;;27120:37;27145:11;27120:20;27130:9;-1:-1:-1;;;;;19152:18:0;19125:7;19152:18;;;:9;:18;;;;;;;19059:119;27120:37;:51;;27112:60;;;;;;-1:-1:-1;;;;;27227:20:0;;;;;;:9;:20;;;;;;:37;;27252:11;27227:24;:37::i;:::-;-1:-1:-1;;;;;27204:20:0;;;;;;;:9;:20;;;;;;;:60;;;;27286:40;;;;;;;;;;27314:11;1596:25:1;;1584:2;1569:18;;1450:177;27286:40:0;;;;;;;;27348:4;27341:11;;;;;;;1688:226;1808:7;1844:12;1836:6;;;;1828:29;;;;-1:-1:-1;;;1828:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1868:9:0;1880:5;1884:1;1880;:5;:::i;:::-;1868:17;1688:226;-1:-1:-1;;;;;1688:226:0:o;1355:181::-;1413:7;;1445:5;1449:1;1445;:5;:::i;:::-;1433:17;;1474:1;1469;:6;;1461:46;;;;-1:-1:-1;;;1461:46:0;;10867:2:1;1461:46:0;;;10849:21:1;10906:2;10886:18;;;10879:30;10945:29;10925:18;;;10918:57;10992:18;;1461:46:0;10665:351:1;23847:129:0;-1:-1:-1;;;;;23930:30:0;;;;;;;;:24;:30;;;;;:38;;-1:-1:-1;;23930:38:0;;;;;;;;;;23847:129::o;27379:401::-;27543:90;;;;;;;;;;;-1:-1:-1;;;27543:90:0;;;;;;;;-1:-1:-1;;;;;27543:17:0;;27506:4;27543:17;;;:9;:17;;;;;;;:90;;27579:6;;27543:21;:90::i;:::-;-1:-1:-1;;;;;27523:17:0;;;;;;;:9;:17;;;;;;:110;;;;27667:20;;;;;;;:32;;27692:6;27667:24;:32::i;:::-;-1:-1:-1;;;;;27644:20:0;;;;;;;:9;:20;;;;;;;:55;;;;27715:35;;;;;;;;;;27743:6;1596:25:1;;1584:2;1569:18;;1450:177;27715:35:0;;;;;;;;-1:-1:-1;27768:4:0;27379:401;;;;;:::o;28643:207::-;16973:16;:23;;-1:-1:-1;;;;16973:23:0;-1:-1:-1;;;16973:23:0;;;28715:25:::1;28732:7:::0;28715:16:::1;:25::i;:::-;28818:10;::::0;28773:21:::1;::::0;28805:37:::1;::::0;28818:10:::1;::::0;::::1;-1:-1:-1::0;;;;;28818:10:0::1;28773:21:::0;28805:12:::1;:37::i;:::-;-1:-1:-1::0;;17019:16:0;:24;;-1:-1:-1;;;;17019:24:0;;;28643:207::o;19293:563::-;19432:13;;-1:-1:-1;;;;;19432:13:0;19332:4;19422:24;;;:9;:24;;;;;;19544:13;;19332:4;;19519:39;;19422:24;;19519;:39::i;:::-;19496:62;-1:-1:-1;19575:16:0;;19571:105;;19623:13;;19608:56;;-1:-1:-1;;;;;19623:13:0;19638:11;19651:12;19608:14;:56::i;:::-;;19571:105;19788:13;;19813:11;;;-1:-1:-1;;;;;;19813:11:0;;;;-1:-1:-1;;;;;19788:13:0;;;;;;19813:9;;:11;;;;;19751:19;;19813:11;;;;;;;19751:19;19788:13;19813:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19844:4;19837:11;;;;;19293:563;:::o;27944:651::-;-1:-1:-1;;;;;28125:32:0;;28067:7;28125:32;;;:24;:32;;;;;;28067:7;;28125:32;;28121:240;;;28186:38;28220:3;28186:29;28197:17;;28186:6;:10;;:29;;;;:::i;:::-;:33;;:38::i;:::-;28174:50;;28121:240;;;-1:-1:-1;;;;;28246:35:0;;;;;;:24;:35;;;;;;;;28242:119;;;28310:39;28345:3;28310:30;28321:18;;28310:6;:10;;:30;;;;:::i;:39::-;28298:51;;28242:119;28377:13;;28373:174;;28452:4;28434:24;;;;:9;:24;;;;;;:39;;28463:9;28434:28;:39::i;:::-;28425:4;28407:24;;;;:9;:24;;;;;;;:66;;;;28493:42;;-1:-1:-1;;;;;28493:42:0;;;;;;;28525:9;1596:25:1;;1584:2;1569:18;;1450:177;28493:42:0;;;;;;;;28373:174;28566:21;:6;28577:9;28566:10;:21::i;28858:471::-;28948:16;;;28962:1;28948:16;;;;;;;;28924:21;;28948:16;;;;;;;;;;-1:-1:-1;28948:16:0;28924:40;;28993:4;28975;28980:1;28975:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;28975:23:0;;;-1:-1:-1;;;;;28975:23:0;;;;;29019:15;;;;;;;;;-1:-1:-1;;;;;29019:15:0;-1:-1:-1;;;;;29019:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29009:4;29014:1;29009:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;29009:32:0;;;:7;;;;;;;;;:32;29084:15;;29052:62;;29069:4;;29084:15;;;;29102:11;29052:8;:62::i;:::-;29125:15;;:196;;-1:-1:-1;;;29125:196:0;;:15;;;;-1:-1:-1;;;;;29125:15:0;;:66;;:196;;29206:11;;29232:1;;29248:4;;29275;;29295:15;;29125:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28913:416;28858:471;:::o;27824:112::-;27905:23;;-1:-1:-1;;;;;27905:15:0;;;:23;;;;;27921:6;;27905:23;;;;27921:6;27905:15;:23;;;;;;;;;;;;;;;;;;;;;27824:112;;:::o;1544:136::-;1602:7;1629:43;1633:1;1636;1629:43;;;;;;;;;;;;;;;;;:3;:43::i;1922:250::-;1980:7;2004:1;2009;2004:6;2000:47;;-1:-1:-1;2034:1:0;2027:8;;2000:47;2059:9;2071:5;2075:1;2071;:5;:::i;:::-;2059:17;-1:-1:-1;2104:1:0;2095:5;2099:1;2059:17;2095:5;:::i;:::-;:10;2087:56;;;;-1:-1:-1;;;2087:56:0;;12867:2:1;2087:56:0;;;12849:21:1;12906:2;12886:18;;;12879:30;12945:34;12925:18;;;12918:62;-1:-1:-1;;;12996:18:1;;;12989:31;13037:19;;2087:56:0;12665:397:1;2180:132:0;2238:7;2265:39;2269:1;2272;2265:39;;;;;;;;;;;;;;;;;2440:7;2475:12;2468:5;2460:28;;;;-1:-1:-1;;;2460:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2499:9:0;2511:5;2515:1;2511;:5;:::i;14:548:1:-;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;1632:160::-;1697:20;;1753:13;;1746:21;1736:32;;1726:60;;1782:1;1779;1772:12;1726:60;1632:160;;;:::o;1797:315::-;1862:6;1870;1923:2;1911:9;1902:7;1898:23;1894:32;1891:52;;;1939:1;1936;1929:12;1891:52;1978:9;1965:23;1997:31;2022:5;1997:31;:::i;:::-;2047:5;-1:-1:-1;2071:35:1;2102:2;2087:18;;2071:35;:::i;:::-;2061:45;;1797:315;;;;;:::o;2117:456::-;2194:6;2202;2210;2263:2;2251:9;2242:7;2238:23;2234:32;2231:52;;;2279:1;2276;2269:12;2231:52;2318:9;2305:23;2337:31;2362:5;2337:31;:::i;:::-;2387:5;-1:-1:-1;2444:2:1;2429:18;;2416:32;2457:33;2416:32;2457:33;:::i;:::-;2117:456;;2509:7;;-1:-1:-1;;;2563:2:1;2548:18;;;;2535:32;;2117:456::o;2578:180::-;2634:6;2687:2;2675:9;2666:7;2662:23;2658:32;2655:52;;;2703:1;2700;2693:12;2655:52;2726:26;2742:9;2726:26;:::i;2971:180::-;3030:6;3083:2;3071:9;3062:7;3058:23;3054:32;3051:52;;;3099:1;3096;3089:12;3051:52;-1:-1:-1;3122:23:1;;2971:180;-1:-1:-1;2971:180:1:o;3345:247::-;3404:6;3457:2;3445:9;3436:7;3432:23;3428:32;3425:52;;;3473:1;3470;3463:12;3425:52;3512:9;3499:23;3531:31;3556:5;3531:31;:::i;3821:316::-;3898:6;3906;3914;3967:2;3955:9;3946:7;3942:23;3938:32;3935:52;;;3983:1;3980;3973:12;3935:52;-1:-1:-1;;4006:23:1;;;4076:2;4061:18;;4048:32;;-1:-1:-1;4127:2:1;4112:18;;;4099:32;;3821:316;-1:-1:-1;3821:316:1:o;4142:388::-;4210:6;4218;4271:2;4259:9;4250:7;4246:23;4242:32;4239:52;;;4287:1;4284;4277:12;4239:52;4326:9;4313:23;4345:31;4370:5;4345:31;:::i;:::-;4395:5;-1:-1:-1;4452:2:1;4437:18;;4424:32;4465:33;4424:32;4465:33;:::i;:::-;4517:7;4507:17;;;4142:388;;;;;:::o;4535:380::-;4614:1;4610:12;;;;4657;;;4678:61;;4732:4;4724:6;4720:17;4710:27;;4678:61;4785:2;4777:6;4774:14;4754:18;4751:38;4748:161;;4831:10;4826:3;4822:20;4819:1;4812:31;4866:4;4863:1;4856:15;4894:4;4891:1;4884:15;4748:161;;4535:380;;;:::o;4920:356::-;5122:2;5104:21;;;5141:18;;;5134:30;5200:34;5195:2;5180:18;;5173:62;5267:2;5252:18;;4920:356::o;6044:251::-;6114:6;6167:2;6155:9;6146:7;6142:23;6138:32;6135:52;;;6183:1;6180;6173:12;6135:52;6215:9;6209:16;6234:31;6259:5;6234:31;:::i;7221:306::-;7309:6;7317;7325;7378:2;7366:9;7357:7;7353:23;7349:32;7346:52;;;7394:1;7391;7384:12;7346:52;7423:9;7417:16;7407:26;;7473:2;7462:9;7458:18;7452:25;7442:35;;7517:2;7506:9;7502:18;7496:25;7486:35;;7221:306;;;;;:::o;10270:127::-;10331:10;10326:3;10322:20;10319:1;10312:31;10362:4;10359:1;10352:15;10386:4;10383:1;10376:15;10402:128;10469:9;;;10490:11;;;10487:37;;;10504:18;;:::i;10535:125::-;10600:9;;;10621:10;;;10618:36;;;10634:18;;:::i;11153:127::-;11214:10;11209:3;11205:20;11202:1;11195:31;11245:4;11242:1;11235:15;11269:4;11266:1;11259:15;11285:980;11547:4;11595:3;11584:9;11580:19;11626:6;11615:9;11608:25;11652:2;11690:6;11685:2;11674:9;11670:18;11663:34;11733:3;11728:2;11717:9;11713:18;11706:31;11757:6;11792;11786:13;11823:6;11815;11808:22;11861:3;11850:9;11846:19;11839:26;;11900:2;11892:6;11888:15;11874:29;;11921:1;11931:195;11945:6;11942:1;11939:13;11931:195;;;12010:13;;-1:-1:-1;;;;;12006:39:1;11994:52;;12101:15;;;;12066:12;;;;12042:1;11960:9;11931:195;;;-1:-1:-1;;;;;;;12182:32:1;;;;12177:2;12162:18;;12155:60;-1:-1:-1;;;12246:3:1;12231:19;12224:35;12143:3;11285:980;-1:-1:-1;;;11285:980:1:o;12270:168::-;12343:9;;;12374;;12391:15;;;12385:22;;12371:37;12361:71;;12412:18;;:::i;12443:217::-;12483:1;12509;12499:132;;12553:10;12548:3;12544:20;12541:1;12534:31;12588:4;12585:1;12578:15;12616:4;12613:1;12606:15;12499:132;-1:-1:-1;12645:9:1;;12443:217::o
Swarm Source
ipfs://4109e3822e8c7a464859e08261e34cf4e1a516f3f409f8f3c1a048539d3da38e
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.