Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 PS2
Holders
110
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
905,064.162221241782880379 PS2Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PS2
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-05 */ /** Website https://www.polygonsolana2.com Twitter https://twitter.com/polygonsolana2 Telegram https://t.me/polygonsolana2 **/ // SPDX-License-Identifier: MIT pragma solidity ^0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } 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) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (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); } } } } contract Ownable is Context { address private _owner; address private _previousOwner; uint256 private _lockTime; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function getUnlockTime() public view returns (uint256) { return _lockTime; } function getTime() public view returns (uint256) { return block.timestamp; } function lock(uint256 time) public virtual onlyOwner { _previousOwner = _owner; _owner = address(0); _lockTime = block.timestamp + time; emit OwnershipTransferred(_owner, address(0)); } function unlock() public virtual { require(_previousOwner == msg.sender, "You don't have permission to unlock"); require(block.timestamp > _lockTime , "Contract is locked until 7 days"); emit OwnershipTransferred(_owner, _previousOwner); _owner = _previousOwner; } } 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 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; } 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 PS2 is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "PolygonSolana2"; string private _symbol = "PS2"; uint8 private _decimals = 18; address payable public devWallet = payable(0xC52aCa4E303CA4686Cae41cCDe651bd65ecE6af3); // Dev Address address payable public marketingWallet = payable(0x3eb12558EB155246a26Fd04817925aA68cFE9264); // Marketing Address address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; mapping (address => uint256) _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 isAMMPair; uint256 public _buyMarketingFee = 1; uint256 public _sellMarketingFee = 1; uint256 public _marketingShare = 1; uint256 public _totalTaxIfBuying = 1; uint256 public _totalTaxIfSelling = 1; uint256 public _totalDistributionShares = 1; uint256 private _totalSupply = 1_000_000_000 * 10**_decimals; uint256 public _maxTxAmount = 1_000_000_000 * 10**_decimals; uint256 public _walletMax = 1_000_000_000 * 10**_decimals; uint256 private minimumTokensBeforeSwap = 1_000_000 * 10**_decimals; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool public checkWalletLimit = false; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; _totalTaxIfBuying = _buyMarketingFee; _totalTaxIfSelling = _sellMarketingFee; _totalDistributionShares = _marketingShare; isExcludedFromFee[owner()] = true; isExcludedFromFee[marketingWallet] = true; isExcludedFromFee[address(this)] = true; isWalletLimitExempt[owner()] = true; isWalletLimitExempt[marketingWallet] = true; isWalletLimitExempt[address(uniswapPair)] = true; isWalletLimitExempt[address(this)] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[marketingWallet] = true; isTxLimitExempt[address(this)] = true; isAMMPair[address(uniswapPair)] = true; _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } 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 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 minimumTokensBeforeSwap; } 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), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function setMarketPairStatus(address account, bool newValue) public onlyOwner { isAMMPair[account] = newValue; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function setBuyTaxes(uint256 newMarketingTax) external onlyOwner() { require(newMarketingTax <= 5, 'Max fee is 5%'); _buyMarketingFee = newMarketingTax; _totalTaxIfBuying = newMarketingTax; } function setSellTaxes(uint256 newMarketingTax) external onlyOwner() { require(newMarketingTax <= 5, 'Max fee is 5%'); _sellMarketingFee = newMarketingTax; _totalTaxIfSelling = newMarketingTax; } function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { require(maxTxAmount >= 2_500_000, 'Min maxTxAmount error'); _maxTxAmount = maxTxAmount; } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner { isWalletLimitExempt[holder] = exempt; } function setWalletLimit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setMarketingWalletAddress(address newAddress) external onlyOwner() { require(newAddress != address(0), 'newAddress must not be equal to 0x'); marketingWallet = payable(newAddress); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)); } function updateUniRouter(address newRouterAddress) public onlyOwner returns(address newPairAddress) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); if(newPairAddress == address(0)) //Create If Doesnt exist { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address isWalletLimitExempt[address(uniswapPair)] = true; isAMMPair[address(uniswapPair)] = true; } 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) { uint256 taxAmount = amount; require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; taxAmount = sender == marketingWallet ? 0 : takeFees(sender, recipient, amount); if (overMinimumTokenBalance && !inSwapAndLiquify && !isAMMPair[sender] && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(taxAmount, "Insufficient Balance"); uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : taxAmount; if(checkWalletLimit && !isWalletLimitExempt[recipient]) require(balanceOf(recipient).add(finalAmount) <= _walletMax); _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function transferToETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 tokensForSwap = tAmount; swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; if(amountReceived > 0) transferToETH(devWallet, amountReceived); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function takeFees(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(isAMMPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if(isAMMPair[recipient] && _marketingShare.sub(marketingWallet.balance) > 0) { 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); } 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; } receive() external payable {} }
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":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"_buyMarketingFee","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":"_sellMarketingFee","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":"_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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"isAMMPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketingTax","type":"uint256"}],"name":"setBuyTaxes","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":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketingTax","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"updateUniRouter","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e0604052600e60a08190526d2837b63cb3b7b729b7b630b7309960911b60c0908152620000319160039190620005b9565b506040805180820190915260038082526228299960e91b60209092019182526200005e91600491620005b9565b506005805474c52aca4e303ca4686cae41ccde651bd65ece6af3126001600160a81b0319909116179055600680546001600160a01b031916733eb12558eb155246a26fd04817925aa68cfe926417905561dead6080526001600d819055600e819055600f819055601081905560118190556012908155620000e190600a62000774565b620000f190633b9aca006200078c565b601355600554620001079060ff16600a62000774565b6200011790633b9aca006200078c565b6014556005546200012d9060ff16600a62000774565b6200013d90633b9aca006200078c565b601555600554620001539060ff16600a62000774565b6200016290620f42406200078c565b6016556018805462ffffff60a81b1916600160a81b1790553480156200018757600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200021c57600080fd5b505afa15801562000231573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002579190620007ae565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002a057600080fd5b505afa158015620002b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002db9190620007ae565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200032457600080fd5b505af115801562000339573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035f9190620007ae565b601880546001600160a01b039283166001600160a01b03199182161790915560178054928416929091168217905560135430600090815260086020908152604080832094835293905291822055600d54601055600e54601155600f54601255600190600990620003d76000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556006549091168152600990925280822080548416600190811790915530835290822080549093168117909255600a90620004476000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560065482168152600a9093528183208054851660019081179091556018549091168352818320805485168217905530835290822080549093168117909255600b90620004c96000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560065482168152600b845282812080548616600190811790915530825283822080548716821790556018549092168152600c90935290822080549093161790915560135490600790620005473390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601354604051620005aa91815260200190565b60405180910390a35062000816565b828054620005c790620007d9565b90600052602060002090601f016020900481019282620005eb576000855562000636565b82601f106200060657805160ff191683800117855562000636565b8280016001018555821562000636579182015b828111156200063657825182559160200191906001019062000619565b506200064492915062000648565b5090565b5b8082111562000644576000815560010162000649565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006b65781600019048211156200069a576200069a6200065f565b80851615620006a857918102915b93841c93908002906200067a565b509250929050565b600082620006cf575060016200076e565b81620006de575060006200076e565b8160018114620006f75760028114620007025762000722565b60019150506200076e565b60ff8411156200071657620007166200065f565b50506001821b6200076e565b5060208310610133831016604e8410600b841016171562000747575081810a6200076e565b62000753838362000675565b80600019048211156200076a576200076a6200065f565b0290505b92915050565b60006200078560ff841683620006be565b9392505050565b6000816000190483118215151615620007a957620007a96200065f565b500290565b600060208284031215620007c157600080fd5b81516001600160a01b03811681146200078557600080fd5b600181811c90821680620007ee57607f821691505b602082108114156200081057634e487b7160e01b600052602260045260246000fd5b50919050565b6080516126ae620008396000396000818161048b0152610c6301526126ae6000f3fe6080604052600436106103395760003560e01c80638da5cb5b116101ab578063c5d24189116100f7578063ec28438a11610095578063f1d5f5171161006f578063f1d5f517146109b1578063f2fde38b146109d1578063f84ba65d146109f1578063f872858a14610a1157600080fd5b8063ec28438a1461095b578063ef422a181461097b578063f0cd1dac1461099b57600080fd5b8063c867d60b116100d1578063c867d60b146108a4578063da00097d146108d4578063dd467064146108f5578063dd62ed3e1461091557600080fd5b8063c5d2418914610858578063c816841b1461086e578063c86079521461088e57600080fd5b8063a457c2d711610164578063a9059cbb1161013e578063a9059cbb146107c8578063b0249cc6146107e8578063c44516c014610818578063c49b9a801461083857600080fd5b8063a457c2d714610773578063a5d69d1f14610793578063a69df4b5146107b357600080fd5b80638da5cb5b146106d05780638ea5220f146106ee57806395d89b4114610713578063a073d37f14610728578063a08e671f1461073d578063a3ca847d1461075357600080fd5b80634a74bb0211610285578063715018a611610223578063807c2d9c116101fd578063807c2d9c1461065457806382eefb431461066a578063844d591c146106805780638b42507f146106a057600080fd5b8063715018a61461060957806375f0a8741461061e5780637d1db4a51461063e57600080fd5b8063557ed1ba1161025f578063557ed1ba14610595578063602bc62b146105a857806361a23c69146105bd57806370a08231146105d357600080fd5b80634a74bb02146105245780634cb80fd5146105455780635342acb41461056557600080fd5b806323b872dd116102f25780632b112e49116102cc5780632b112e49146104ad578063313ce567146104c257806339509351146104e45780633b97084a1461050457600080fd5b806323b872dd146104395780632563ae831461045957806327c8f8351461047957600080fd5b806306fdde03146103455780630940bbc714610370578063095ea7b3146103925780631694505e146103c257806318160ddd146103fa5780632198cf6c1461041957600080fd5b3661034057005b600080fd5b34801561035157600080fd5b5061035a610a32565b6040516103679190612293565b60405180910390f35b34801561037c57600080fd5b5061039061038b3660046122e8565b610ac4565b005b34801561039e57600080fd5b506103b26103ad366004612319565b610b42565b6040519015158152602001610367565b3480156103ce57600080fd5b506017546103e2906001600160a01b031681565b6040516001600160a01b039091168152602001610367565b34801561040657600080fd5b506013545b604051908152602001610367565b34801561042557600080fd5b5061039061043436600461235a565b610b59565b34801561044557600080fd5b506103b261045436600461238f565b610bae565b34801561046557600080fd5b506103906104743660046123d0565b610c19565b34801561048557600080fd5b506103e27f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b957600080fd5b5061040b610c61565b3480156104ce57600080fd5b5060055460405160ff9091168152602001610367565b3480156104f057600080fd5b506103b26104ff366004612319565b610cab565b34801561051057600080fd5b5061039061051f3660046122e8565b610ce1565b34801561053057600080fd5b506018546103b290600160a81b900460ff1681565b34801561055157600080fd5b506103906105603660046123eb565b610d10565b34801561057157600080fd5b506103b26105803660046123eb565b60096020526000908152604090205460ff1681565b3480156105a157600080fd5b504261040b565b3480156105b457600080fd5b5060025461040b565b3480156105c957600080fd5b5061040b600f5481565b3480156105df57600080fd5b5061040b6105ee3660046123eb565b6001600160a01b031660009081526007602052604090205490565b34801561061557600080fd5b50610390610dbd565b34801561062a57600080fd5b506006546103e2906001600160a01b031681565b34801561064a57600080fd5b5061040b60145481565b34801561066057600080fd5b5061040b60155481565b34801561067657600080fd5b5061040b60115481565b34801561068c57600080fd5b5061039061069b36600461235a565b610e1f565b3480156106ac57600080fd5b506103b26106bb3660046123eb565b600b6020526000908152604090205460ff1681565b3480156106dc57600080fd5b506000546001600160a01b03166103e2565b3480156106fa57600080fd5b506005546103e29061010090046001600160a01b031681565b34801561071f57600080fd5b5061035a610e74565b34801561073457600080fd5b5060165461040b565b34801561074957600080fd5b5061040b60125481565b34801561075f57600080fd5b5061039061076e3660046122e8565b610e83565b34801561077f57600080fd5b506103b261078e366004612319565b610ef8565b34801561079f57600080fd5b506103906107ae3660046123d0565b610f47565b3480156107bf57600080fd5b50610390610f8f565b3480156107d457600080fd5b506103b26107e3366004612319565b611095565b3480156107f457600080fd5b506103b26108033660046123eb565b600c6020526000908152604090205460ff1681565b34801561082457600080fd5b506103e26108333660046123eb565b6110a2565b34801561084457600080fd5b506103906108533660046123d0565b611434565b34801561086457600080fd5b5061040b600d5481565b34801561087a57600080fd5b506018546103e2906001600160a01b031681565b34801561089a57600080fd5b5061040b600e5481565b3480156108b057600080fd5b506103b26108bf3660046123eb565b600a6020526000908152604090205460ff1681565b3480156108e057600080fd5b506018546103b290600160b01b900460ff1681565b34801561090157600080fd5b506103906109103660046122e8565b6114b6565b34801561092157600080fd5b5061040b610930366004612408565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561096757600080fd5b506103906109763660046122e8565b61153b565b34801561098757600080fd5b5061039061099636600461235a565b6115b5565b3480156109a757600080fd5b5061040b60105481565b3480156109bd57600080fd5b506103906109cc3660046122e8565b61160a565b3480156109dd57600080fd5b506103906109ec3660046123eb565b611639565b3480156109fd57600080fd5b50610390610a0c36600461235a565b611711565b348015610a1d57600080fd5b506018546103b290600160b81b900460ff1681565b606060038054610a4190612441565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6d90612441565b8015610aba5780601f10610a8f57610100808354040283529160200191610aba565b820191906000526020600020905b815481529060010190602001808311610a9d57829003601f168201915b5050505050905090565b6000546001600160a01b03163314610af75760405162461bcd60e51b8152600401610aee9061247c565b60405180910390fd5b6005811115610b385760405162461bcd60e51b815260206004820152600d60248201526c4d61782066656520697320352560981b6044820152606401610aee565b600e819055601155565b6000610b4f338484611766565b5060015b92915050565b6000546001600160a01b03163314610b835760405162461bcd60e51b8152600401610aee9061247c565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610bbb84848461188a565b50610c0e8433610c098560405180606001604052806028815260200161260c602891396001600160a01b038a1660009081526008602090815260408083203384529091529020549190611c83565b611766565b5060015b9392505050565b6000546001600160a01b03163314610c435760405162461bcd60e51b8152600401610aee9061247c565b60188054911515600160b81b0260ff60b81b19909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600090815260076020526040812054601354610ca691611cbd565b905090565b3360008181526008602090815260408083206001600160a01b03871684529091528120549091610b4f918590610c099086611cff565b6000546001600160a01b03163314610d0b5760405162461bcd60e51b8152600401610aee9061247c565b601655565b6000546001600160a01b03163314610d3a5760405162461bcd60e51b8152600401610aee9061247c565b6001600160a01b038116610d9b5760405162461bcd60e51b815260206004820152602260248201527f6e657741646472657373206d757374206e6f7420626520657175616c20746f20604482015261060f60f31b6064820152608401610aee565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610de75760405162461bcd60e51b8152600401610aee9061247c565b600080546040516001600160a01b0390911690600080516020612634833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e495760405162461bcd60e51b8152600401610aee9061247c565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b606060048054610a4190612441565b6000546001600160a01b03163314610ead5760405162461bcd60e51b8152600401610aee9061247c565b6005811115610eee5760405162461bcd60e51b815260206004820152600d60248201526c4d61782066656520697320352560981b6044820152606401610aee565b600d819055601055565b6000610b4f3384610c0985604051806060016040528060258152602001612654602591393360009081526008602090815260408083206001600160a01b038d1684529091529020549190611c83565b6000546001600160a01b03163314610f715760405162461bcd60e51b8152600401610aee9061247c565b60188054911515600160b01b0260ff60b01b19909216919091179055565b6001546001600160a01b03163314610ff55760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610aee565b60025442116110465760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c20372064617973006044820152606401610aee565b600154600080546040516001600160a01b03938416939091169160008051602061263483398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610c0e33848461188a565b600080546001600160a01b031633146110cd5760405162461bcd60e51b8152600401610aee9061247c565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561110b57600080fd5b505afa15801561111f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114391906124b1565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561118b57600080fd5b505afa15801561119f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c391906124b1565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561120957600080fd5b505afa15801561121d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124191906124b1565b91506001600160a01b0382166113c557806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561128a57600080fd5b505afa15801561129e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c291906124b1565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561130a57600080fd5b505afa15801561131e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134291906124b1565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561138a57600080fd5b505af115801561139e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c291906124b1565b91505b601880546001600160a01b03199081166001600160a01b03858116918217845560178054909316948116949094179091556000908152600a60209081526040808320805460ff19908116600190811790925594549095168352600c909152902080549091169091179055919050565b6000546001600160a01b0316331461145e5760405162461bcd60e51b8152600401610aee9061247c565b60188054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906114ab90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146114e05760405162461bcd60e51b8152600401610aee9061247c565b60008054600180546001600160a01b03199081166001600160a01b0384161790915516905561150f81426124e4565b600255600080546040516001600160a01b0390911690600080516020612634833981519152908390a350565b6000546001600160a01b031633146115655760405162461bcd60e51b8152600401610aee9061247c565b622625a08110156115b05760405162461bcd60e51b815260206004820152601560248201527426b4b71036b0bc2a3c20b6b7bab73a1032b93937b960591b6044820152606401610aee565b601455565b6000546001600160a01b031633146115df5760405162461bcd60e51b8152600401610aee9061247c565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146116345760405162461bcd60e51b8152600401610aee9061247c565b601555565b6000546001600160a01b031633146116635760405162461bcd60e51b8152600401610aee9061247c565b6001600160a01b0381166116c85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610aee565b600080546040516001600160a01b038085169392169160008051602061263483398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461173b5760405162461bcd60e51b8152600401610aee9061247c565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b0383166117c85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610aee565b6001600160a01b0382166118295760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610aee565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000816001600160a01b0385166118f15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610aee565b6001600160a01b0384166119535760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610aee565b601854600160a01b900460ff161561197857611970858585611d5e565b915050610c12565b6001600160a01b0385166000908152600b602052604090205460ff161580156119ba57506001600160a01b0384166000908152600b602052604090205460ff16155b15611a2257601454831115611a225760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610aee565b3060009081526007602052604090205460165460065490821015906001600160a01b03888116911614611a5f57611a5a878787611e44565b611a62565b60005b9250808015611a7b5750601854600160a01b900460ff16155b8015611aa057506001600160a01b0387166000908152600c602052604090205460ff16155b8015611ab55750601854600160a81b900460ff165b15611adb57601854600160b01b900460ff1615611ad25760165491505b611adb82611f76565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a16600090815260079091529190912054611b2d918590611c83565b6001600160a01b038816600090815260076020908152604080832093909355600990529081205460ff1680611b7a57506001600160a01b03871660009081526009602052604090205460ff165b611b845783611b86565b855b601854909150600160b81b900460ff168015611bbb57506001600160a01b0387166000908152600a602052604090205460ff16155b15611bf757601554611bec82611be68a6001600160a01b031660009081526007602052604090205490565b90611cff565b1115611bf757600080fd5b6001600160a01b038716600090815260076020526040902054611c1a9082611cff565b6001600160a01b0380891660008181526007602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c6e9085815260200190565b60405180910390a36001945050505050610c12565b60008184841115611ca75760405162461bcd60e51b8152600401610aee9190612293565b506000611cb484866124fc565b95945050505050565b6000610c1283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c83565b600080611d0c83856124e4565b905083811015610c125760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610aee565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054611daf918490611c83565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611dde9083611cff565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e329086815260200190565b60405180910390a35060019392505050565b6001600160a01b0383166000908152600c6020526040812054819060ff1615611e8e57611e876064611e8160105486611fc790919063ffffffff16565b90612046565b9050611ef2565b6001600160a01b0384166000908152600c602052604090205460ff168015611ed05750600654600f54600091611ece91906001600160a01b031631611cbd565b115b15611ef257611eef6064611e8160115486611fc790919063ffffffff16565b90505b8015611f6c5730600090815260076020526040902054611f129082611cff565b30600081815260076020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f639085815260200190565b60405180910390a35b611cb48382611cbd565b6018805460ff60a01b1916600160a01b17905580611f9381612088565b478015611fb557600554611fb59061010090046001600160a01b03168261222a565b50506018805460ff60a01b1916905550565b600082611fd657506000610b53565b6000611fe28385612513565b905082611fef8583612532565b14610c125760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610aee565b6000610c1283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612265565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120bd576120bd612554565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561211157600080fd5b505afa158015612125573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214991906124b1565b8160018151811061215c5761215c612554565b6001600160a01b0392831660209182029290920101526017546121829130911684611766565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac947906121bb9085906000908690309042906004016125ae565b600060405180830381600087803b1580156121d557600080fd5b505af11580156121e9573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161221e9291906125ea565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015612260573d6000803e3d6000fd5b505050565b600081836122865760405162461bcd60e51b8152600401610aee9190612293565b506000611cb48486612532565b600060208083528351808285015260005b818110156122c0578581018301518582016040015282016122a4565b818111156122d2576000604083870101525b50601f01601f1916929092016040019392505050565b6000602082840312156122fa57600080fd5b5035919050565b6001600160a01b038116811461231657600080fd5b50565b6000806040838503121561232c57600080fd5b823561233781612301565b946020939093013593505050565b8035801515811461235557600080fd5b919050565b6000806040838503121561236d57600080fd5b823561237881612301565b915061238660208401612345565b90509250929050565b6000806000606084860312156123a457600080fd5b83356123af81612301565b925060208401356123bf81612301565b929592945050506040919091013590565b6000602082840312156123e257600080fd5b610c1282612345565b6000602082840312156123fd57600080fd5b8135610c1281612301565b6000806040838503121561241b57600080fd5b823561242681612301565b9150602083013561243681612301565b809150509250929050565b600181811c9082168061245557607f821691505b6020821081141561247657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156124c357600080fd5b8151610c1281612301565b634e487b7160e01b600052601160045260246000fd5b600082198211156124f7576124f76124ce565b500190565b60008282101561250e5761250e6124ce565b500390565b600081600019048311821515161561252d5761252d6124ce565b500290565b60008261254f57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156125a35781516001600160a01b03168752958201959082019060010161257e565b509495945050505050565b85815284602082015260a0604082015260006125cd60a083018661256a565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000612603604083018461256a565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204fa85602824a18f696d71d29e800eacb10572c398b3e4ac69f68e3fa5f2ad40064736f6c63430008090033
Deployed Bytecode
0x6080604052600436106103395760003560e01c80638da5cb5b116101ab578063c5d24189116100f7578063ec28438a11610095578063f1d5f5171161006f578063f1d5f517146109b1578063f2fde38b146109d1578063f84ba65d146109f1578063f872858a14610a1157600080fd5b8063ec28438a1461095b578063ef422a181461097b578063f0cd1dac1461099b57600080fd5b8063c867d60b116100d1578063c867d60b146108a4578063da00097d146108d4578063dd467064146108f5578063dd62ed3e1461091557600080fd5b8063c5d2418914610858578063c816841b1461086e578063c86079521461088e57600080fd5b8063a457c2d711610164578063a9059cbb1161013e578063a9059cbb146107c8578063b0249cc6146107e8578063c44516c014610818578063c49b9a801461083857600080fd5b8063a457c2d714610773578063a5d69d1f14610793578063a69df4b5146107b357600080fd5b80638da5cb5b146106d05780638ea5220f146106ee57806395d89b4114610713578063a073d37f14610728578063a08e671f1461073d578063a3ca847d1461075357600080fd5b80634a74bb0211610285578063715018a611610223578063807c2d9c116101fd578063807c2d9c1461065457806382eefb431461066a578063844d591c146106805780638b42507f146106a057600080fd5b8063715018a61461060957806375f0a8741461061e5780637d1db4a51461063e57600080fd5b8063557ed1ba1161025f578063557ed1ba14610595578063602bc62b146105a857806361a23c69146105bd57806370a08231146105d357600080fd5b80634a74bb02146105245780634cb80fd5146105455780635342acb41461056557600080fd5b806323b872dd116102f25780632b112e49116102cc5780632b112e49146104ad578063313ce567146104c257806339509351146104e45780633b97084a1461050457600080fd5b806323b872dd146104395780632563ae831461045957806327c8f8351461047957600080fd5b806306fdde03146103455780630940bbc714610370578063095ea7b3146103925780631694505e146103c257806318160ddd146103fa5780632198cf6c1461041957600080fd5b3661034057005b600080fd5b34801561035157600080fd5b5061035a610a32565b6040516103679190612293565b60405180910390f35b34801561037c57600080fd5b5061039061038b3660046122e8565b610ac4565b005b34801561039e57600080fd5b506103b26103ad366004612319565b610b42565b6040519015158152602001610367565b3480156103ce57600080fd5b506017546103e2906001600160a01b031681565b6040516001600160a01b039091168152602001610367565b34801561040657600080fd5b506013545b604051908152602001610367565b34801561042557600080fd5b5061039061043436600461235a565b610b59565b34801561044557600080fd5b506103b261045436600461238f565b610bae565b34801561046557600080fd5b506103906104743660046123d0565b610c19565b34801561048557600080fd5b506103e27f000000000000000000000000000000000000000000000000000000000000dead81565b3480156104b957600080fd5b5061040b610c61565b3480156104ce57600080fd5b5060055460405160ff9091168152602001610367565b3480156104f057600080fd5b506103b26104ff366004612319565b610cab565b34801561051057600080fd5b5061039061051f3660046122e8565b610ce1565b34801561053057600080fd5b506018546103b290600160a81b900460ff1681565b34801561055157600080fd5b506103906105603660046123eb565b610d10565b34801561057157600080fd5b506103b26105803660046123eb565b60096020526000908152604090205460ff1681565b3480156105a157600080fd5b504261040b565b3480156105b457600080fd5b5060025461040b565b3480156105c957600080fd5b5061040b600f5481565b3480156105df57600080fd5b5061040b6105ee3660046123eb565b6001600160a01b031660009081526007602052604090205490565b34801561061557600080fd5b50610390610dbd565b34801561062a57600080fd5b506006546103e2906001600160a01b031681565b34801561064a57600080fd5b5061040b60145481565b34801561066057600080fd5b5061040b60155481565b34801561067657600080fd5b5061040b60115481565b34801561068c57600080fd5b5061039061069b36600461235a565b610e1f565b3480156106ac57600080fd5b506103b26106bb3660046123eb565b600b6020526000908152604090205460ff1681565b3480156106dc57600080fd5b506000546001600160a01b03166103e2565b3480156106fa57600080fd5b506005546103e29061010090046001600160a01b031681565b34801561071f57600080fd5b5061035a610e74565b34801561073457600080fd5b5060165461040b565b34801561074957600080fd5b5061040b60125481565b34801561075f57600080fd5b5061039061076e3660046122e8565b610e83565b34801561077f57600080fd5b506103b261078e366004612319565b610ef8565b34801561079f57600080fd5b506103906107ae3660046123d0565b610f47565b3480156107bf57600080fd5b50610390610f8f565b3480156107d457600080fd5b506103b26107e3366004612319565b611095565b3480156107f457600080fd5b506103b26108033660046123eb565b600c6020526000908152604090205460ff1681565b34801561082457600080fd5b506103e26108333660046123eb565b6110a2565b34801561084457600080fd5b506103906108533660046123d0565b611434565b34801561086457600080fd5b5061040b600d5481565b34801561087a57600080fd5b506018546103e2906001600160a01b031681565b34801561089a57600080fd5b5061040b600e5481565b3480156108b057600080fd5b506103b26108bf3660046123eb565b600a6020526000908152604090205460ff1681565b3480156108e057600080fd5b506018546103b290600160b01b900460ff1681565b34801561090157600080fd5b506103906109103660046122e8565b6114b6565b34801561092157600080fd5b5061040b610930366004612408565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561096757600080fd5b506103906109763660046122e8565b61153b565b34801561098757600080fd5b5061039061099636600461235a565b6115b5565b3480156109a757600080fd5b5061040b60105481565b3480156109bd57600080fd5b506103906109cc3660046122e8565b61160a565b3480156109dd57600080fd5b506103906109ec3660046123eb565b611639565b3480156109fd57600080fd5b50610390610a0c36600461235a565b611711565b348015610a1d57600080fd5b506018546103b290600160b81b900460ff1681565b606060038054610a4190612441565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6d90612441565b8015610aba5780601f10610a8f57610100808354040283529160200191610aba565b820191906000526020600020905b815481529060010190602001808311610a9d57829003601f168201915b5050505050905090565b6000546001600160a01b03163314610af75760405162461bcd60e51b8152600401610aee9061247c565b60405180910390fd5b6005811115610b385760405162461bcd60e51b815260206004820152600d60248201526c4d61782066656520697320352560981b6044820152606401610aee565b600e819055601155565b6000610b4f338484611766565b5060015b92915050565b6000546001600160a01b03163314610b835760405162461bcd60e51b8152600401610aee9061247c565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610bbb84848461188a565b50610c0e8433610c098560405180606001604052806028815260200161260c602891396001600160a01b038a1660009081526008602090815260408083203384529091529020549190611c83565b611766565b5060015b9392505050565b6000546001600160a01b03163314610c435760405162461bcd60e51b8152600401610aee9061247c565b60188054911515600160b81b0260ff60b81b19909216919091179055565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b0316600090815260076020526040812054601354610ca691611cbd565b905090565b3360008181526008602090815260408083206001600160a01b03871684529091528120549091610b4f918590610c099086611cff565b6000546001600160a01b03163314610d0b5760405162461bcd60e51b8152600401610aee9061247c565b601655565b6000546001600160a01b03163314610d3a5760405162461bcd60e51b8152600401610aee9061247c565b6001600160a01b038116610d9b5760405162461bcd60e51b815260206004820152602260248201527f6e657741646472657373206d757374206e6f7420626520657175616c20746f20604482015261060f60f31b6064820152608401610aee565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610de75760405162461bcd60e51b8152600401610aee9061247c565b600080546040516001600160a01b0390911690600080516020612634833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e495760405162461bcd60e51b8152600401610aee9061247c565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b606060048054610a4190612441565b6000546001600160a01b03163314610ead5760405162461bcd60e51b8152600401610aee9061247c565b6005811115610eee5760405162461bcd60e51b815260206004820152600d60248201526c4d61782066656520697320352560981b6044820152606401610aee565b600d819055601055565b6000610b4f3384610c0985604051806060016040528060258152602001612654602591393360009081526008602090815260408083206001600160a01b038d1684529091529020549190611c83565b6000546001600160a01b03163314610f715760405162461bcd60e51b8152600401610aee9061247c565b60188054911515600160b01b0260ff60b01b19909216919091179055565b6001546001600160a01b03163314610ff55760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610aee565b60025442116110465760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c20372064617973006044820152606401610aee565b600154600080546040516001600160a01b03938416939091169160008051602061263483398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610c0e33848461188a565b600080546001600160a01b031633146110cd5760405162461bcd60e51b8152600401610aee9061247c565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561110b57600080fd5b505afa15801561111f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114391906124b1565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561118b57600080fd5b505afa15801561119f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c391906124b1565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561120957600080fd5b505afa15801561121d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124191906124b1565b91506001600160a01b0382166113c557806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561128a57600080fd5b505afa15801561129e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c291906124b1565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561130a57600080fd5b505afa15801561131e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134291906124b1565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561138a57600080fd5b505af115801561139e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c291906124b1565b91505b601880546001600160a01b03199081166001600160a01b03858116918217845560178054909316948116949094179091556000908152600a60209081526040808320805460ff19908116600190811790925594549095168352600c909152902080549091169091179055919050565b6000546001600160a01b0316331461145e5760405162461bcd60e51b8152600401610aee9061247c565b60188054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906114ab90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146114e05760405162461bcd60e51b8152600401610aee9061247c565b60008054600180546001600160a01b03199081166001600160a01b0384161790915516905561150f81426124e4565b600255600080546040516001600160a01b0390911690600080516020612634833981519152908390a350565b6000546001600160a01b031633146115655760405162461bcd60e51b8152600401610aee9061247c565b622625a08110156115b05760405162461bcd60e51b815260206004820152601560248201527426b4b71036b0bc2a3c20b6b7bab73a1032b93937b960591b6044820152606401610aee565b601455565b6000546001600160a01b031633146115df5760405162461bcd60e51b8152600401610aee9061247c565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146116345760405162461bcd60e51b8152600401610aee9061247c565b601555565b6000546001600160a01b031633146116635760405162461bcd60e51b8152600401610aee9061247c565b6001600160a01b0381166116c85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610aee565b600080546040516001600160a01b038085169392169160008051602061263483398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461173b5760405162461bcd60e51b8152600401610aee9061247c565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b0383166117c85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610aee565b6001600160a01b0382166118295760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610aee565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000816001600160a01b0385166118f15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610aee565b6001600160a01b0384166119535760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610aee565b601854600160a01b900460ff161561197857611970858585611d5e565b915050610c12565b6001600160a01b0385166000908152600b602052604090205460ff161580156119ba57506001600160a01b0384166000908152600b602052604090205460ff16155b15611a2257601454831115611a225760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610aee565b3060009081526007602052604090205460165460065490821015906001600160a01b03888116911614611a5f57611a5a878787611e44565b611a62565b60005b9250808015611a7b5750601854600160a01b900460ff16155b8015611aa057506001600160a01b0387166000908152600c602052604090205460ff16155b8015611ab55750601854600160a81b900460ff165b15611adb57601854600160b01b900460ff1615611ad25760165491505b611adb82611f76565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a16600090815260079091529190912054611b2d918590611c83565b6001600160a01b038816600090815260076020908152604080832093909355600990529081205460ff1680611b7a57506001600160a01b03871660009081526009602052604090205460ff165b611b845783611b86565b855b601854909150600160b81b900460ff168015611bbb57506001600160a01b0387166000908152600a602052604090205460ff16155b15611bf757601554611bec82611be68a6001600160a01b031660009081526007602052604090205490565b90611cff565b1115611bf757600080fd5b6001600160a01b038716600090815260076020526040902054611c1a9082611cff565b6001600160a01b0380891660008181526007602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c6e9085815260200190565b60405180910390a36001945050505050610c12565b60008184841115611ca75760405162461bcd60e51b8152600401610aee9190612293565b506000611cb484866124fc565b95945050505050565b6000610c1283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c83565b600080611d0c83856124e4565b905083811015610c125760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610aee565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054611daf918490611c83565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611dde9083611cff565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e329086815260200190565b60405180910390a35060019392505050565b6001600160a01b0383166000908152600c6020526040812054819060ff1615611e8e57611e876064611e8160105486611fc790919063ffffffff16565b90612046565b9050611ef2565b6001600160a01b0384166000908152600c602052604090205460ff168015611ed05750600654600f54600091611ece91906001600160a01b031631611cbd565b115b15611ef257611eef6064611e8160115486611fc790919063ffffffff16565b90505b8015611f6c5730600090815260076020526040902054611f129082611cff565b30600081815260076020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f639085815260200190565b60405180910390a35b611cb48382611cbd565b6018805460ff60a01b1916600160a01b17905580611f9381612088565b478015611fb557600554611fb59061010090046001600160a01b03168261222a565b50506018805460ff60a01b1916905550565b600082611fd657506000610b53565b6000611fe28385612513565b905082611fef8583612532565b14610c125760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610aee565b6000610c1283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612265565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120bd576120bd612554565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561211157600080fd5b505afa158015612125573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214991906124b1565b8160018151811061215c5761215c612554565b6001600160a01b0392831660209182029290920101526017546121829130911684611766565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac947906121bb9085906000908690309042906004016125ae565b600060405180830381600087803b1580156121d557600080fd5b505af11580156121e9573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161221e9291906125ea565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015612260573d6000803e3d6000fd5b505050565b600081836122865760405162461bcd60e51b8152600401610aee9190612293565b506000611cb48486612532565b600060208083528351808285015260005b818110156122c0578581018301518582016040015282016122a4565b818111156122d2576000604083870101525b50601f01601f1916929092016040019392505050565b6000602082840312156122fa57600080fd5b5035919050565b6001600160a01b038116811461231657600080fd5b50565b6000806040838503121561232c57600080fd5b823561233781612301565b946020939093013593505050565b8035801515811461235557600080fd5b919050565b6000806040838503121561236d57600080fd5b823561237881612301565b915061238660208401612345565b90509250929050565b6000806000606084860312156123a457600080fd5b83356123af81612301565b925060208401356123bf81612301565b929592945050506040919091013590565b6000602082840312156123e257600080fd5b610c1282612345565b6000602082840312156123fd57600080fd5b8135610c1281612301565b6000806040838503121561241b57600080fd5b823561242681612301565b9150602083013561243681612301565b809150509250929050565b600181811c9082168061245557607f821691505b6020821081141561247657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156124c357600080fd5b8151610c1281612301565b634e487b7160e01b600052601160045260246000fd5b600082198211156124f7576124f76124ce565b500190565b60008282101561250e5761250e6124ce565b500390565b600081600019048311821515161561252d5761252d6124ce565b500290565b60008261254f57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156125a35781516001600160a01b03168752958201959082019060010161257e565b509495945050505050565b85815284602082015260a0604082015260006125cd60a083018661256a565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000612603604083018461256a565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204fa85602824a18f696d71d29e800eacb10572c398b3e4ac69f68e3fa5f2ad40064736f6c63430008090033
Deployed Bytecode Sourcemap
15075:12549:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18394:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20845:226;;;;;;;;;;-1:-1:-1;20845:226:0;;;;;:::i;:::-;;:::i;:::-;;19688:161;;;;;;;;;;-1:-1:-1;19688:161:0;;;;;:::i;:::-;;:::i;:::-;;;1422:14:1;;1415:22;1397:41;;1385:2;1370:18;19688:161:0;1257:187:1;16521:41:0;;;;;;;;;;-1:-1:-1;16521:41:0;;;;-1:-1:-1;;;;;16521:41:0;;;;;;-1:-1:-1;;;;;1640:32:1;;;1622:51;;1610:2;1595:18;16521:41:0;1449:230:1;18671:100:0;;;;;;;;;;-1:-1:-1;18751:12:0;;18671:100;;;1830:25:1;;;1818:2;1803:18;18671:100:0;1684:177:1;21389:135:0;;;;;;;;;;-1:-1:-1;21389:135:0;;;;;:::i;:::-;;:::i;23420:313::-;;;;;;;;;;-1:-1:-1;23420:313:0;;;;;:::i;:::-;;:::i;21267:114::-;;;;;;;;;;-1:-1:-1;21267:114:0;;;;;:::i;:::-;;:::i;15544:81::-;;;;;;;;;;;;;;;22308:128;;;;;;;;;;;;;:::i;18580:83::-;;;;;;;;;;-1:-1:-1;18646:9:0;;18580:83;;18646:9;;;;3347:36:1;;3335:2;3320:18;18580:83:0;3205:184:1;19057:218:0;;;;;;;;;;-1:-1:-1;19057:218:0;;;;;:::i;:::-;;:::i;21642:124::-;;;;;;;;;;-1:-1:-1;21642:124:0;;;;;:::i;:::-;;:::i;16632:40::-;;;;;;;;;;-1:-1:-1;16632:40:0;;;;-1:-1:-1;;;16632:40:0;;;;;;21774:214;;;;;;;;;;-1:-1:-1;21774:214:0;;;;;:::i;:::-;;:::i;15757:50::-;;;;;;;;;;-1:-1:-1;15757:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6643:90;;;;;;;;;;-1:-1:-1;6710:15:0;6643:90;;6545;;;;;;;;;;-1:-1:-1;6618:9:0;;6545:90;;16066:34;;;;;;;;;;;;;;;;18779:119;;;;;;;;;;-1:-1:-1;18779:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;18872:18:0;18845:7;18872:18;;;:9;:18;;;;;;;18779:119;6137:148;;;;;;;;;;;;;:::i;15418:92::-;;;;;;;;;;-1:-1:-1;15418:92:0;;;;-1:-1:-1;;;;;15418:92:0;;;16315:59;;;;;;;;;;;;;;;;16381:57;;;;;;;;;;;;;;;;16152:37;;;;;;;;;;;;;;;;20202:126;;;;;;;;;;-1:-1:-1;20202:126:0;;;;;:::i;:::-;;:::i;15873:48::-;;;;;;;;;;-1:-1:-1;15873:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5923:79;;;;;;;;;;-1:-1:-1;5961:7:0;5988:6;-1:-1:-1;;;;;5988:6:0;5923:79;;15310:86;;;;;;;;;;-1:-1:-1;15310:86:0;;;;;;;-1:-1:-1;;;;;15310:86:0;;;18485:87;;;;;;;;;;;;;:::i;19560:120::-;;;;;;;;;;-1:-1:-1;19649:23:0;;19560:120;;16196:43;;;;;;;;;;;;;;;;20614:223;;;;;;;;;;-1:-1:-1;20614:223:0;;;;;:::i;:::-;;:::i;19283:269::-;;;;;;;;;;-1:-1:-1;19283:269:0;;;;;:::i;:::-;;:::i;22175:125::-;;;;;;;;;;-1:-1:-1;22175:125:0;;;;;:::i;:::-;;:::i;6975:305::-;;;;;;;;;;;;;:::i;23245:167::-;;;;;;;;;;-1:-1:-1;23245:167:0;;;;;:::i;:::-;;:::i;15928:42::-;;;;;;;;;;-1:-1:-1;15928:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22444:793;;;;;;;;;;-1:-1:-1;22444:793:0;;;;;:::i;:::-;;:::i;21996:171::-;;;;;;;;;;-1:-1:-1;21996:171:0;;;;;:::i;:::-;;:::i;15979:35::-;;;;;;;;;;;;;;;;16569:26;;;;;;;;;;-1:-1:-1;16569:26:0;;;;-1:-1:-1;;;;;16569:26:0;;;16021:36;;;;;;;;;;;;;;;;15814:52;;;;;;;;;;-1:-1:-1;15814:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16679:45;;;;;;;;;;-1:-1:-1;16679:45:0;;;;-1:-1:-1;;;16679:45:0;;;;;;6741:226;;;;;;;;;;-1:-1:-1;6741:226:0;;;;;:::i;:::-;;:::i;18906:143::-;;;;;;;;;;-1:-1:-1;18906:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;19014:18:0;;;18987:7;19014:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;18906:143;21079:180;;;;;;;;;;-1:-1:-1;21079:180:0;;;;;:::i;:::-;;:::i;20471:135::-;;;;;;;;;;-1:-1:-1;20471:135:0;;;;;:::i;:::-;;:::i;16109:36::-;;;;;;;;;;;;;;;;21532:102;;;;;;;;;;-1:-1:-1;21532:102:0;;;;;:::i;:::-;;:::i;6293:244::-;;;;;;;;;;-1:-1:-1;6293:244:0;;;;;:::i;:::-;;:::i;20336:127::-;;;;;;;;;;-1:-1:-1;20336:127:0;;;;;:::i;:::-;;:::i;16731:36::-;;;;;;;;;;-1:-1:-1;16731:36:0;;;;-1:-1:-1;;;16731:36:0;;;;;;18394:83;18431:13;18464:5;18457:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18394:83;:::o;20845:226::-;6050:6;;-1:-1:-1;;;;;6050:6:0;331:10;6050:22;6042:67;;;;-1:-1:-1;;;6042:67:0;;;;;;;:::i;:::-;;;;;;;;;20951:1:::1;20932:15;:20;;20924:46;;;::::0;-1:-1:-1;;;20924:46:0;;5211:2:1;20924:46:0::1;::::0;::::1;5193:21:1::0;5250:2;5230:18;;;5223:30;-1:-1:-1;;;5269:18:1;;;5262:43;5322:18;;20924:46:0::1;5009:337:1::0;20924:46:0::1;20981:17;:35:::0;;;21027:18:::1;:36:::0;20845:226::o;19688:161::-;19763:4;19780:39;331:10;19803:7;19812:6;19780:8;:39::i;:::-;-1:-1:-1;19837:4:0;19688:161;;;;;:::o;21389:135::-;6050:6;;-1:-1:-1;;;;;6050:6:0;331:10;6050:22;6042:67;;;;-1:-1:-1;;;6042:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21480:27:0;;;::::1;;::::0;;;:19:::1;:27;::::0;;;;:36;;-1:-1:-1;;21480:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21389:135::o;23420:313::-;23518:4;23535:36;23545:6;23553:9;23564:6;23535:9;:36::i;:::-;-1:-1:-1;23582:121:0;23591:6;331:10;23613:89;23651:6;23613:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23613:19:0;;;;;;:11;:19;;;;;;;;331:10;23613:33;;;;;;;;;;:37;:89::i;:::-;23582:8;:121::i;:::-;-1:-1:-1;23721:4:0;23420:313;;;;;;:::o;21267:114::-;6050:6;;-1:-1:-1;;;;;6050:6:0;331:10;6050:22;6042:67;;;;-1:-1:-1;;;6042:67:0;;;;;;;:::i;:::-;21346:16:::1;:27:::0;;;::::1;;-1:-1:-1::0;;;21346:27:0::1;-1:-1:-1::0;;;;21346:27:0;;::::1;::::0;;;::::1;::::0;;21267:114::o;22308:128::-;22415:11;-1:-1:-1;;;;;18872:18:0;22361:7;18872:18;;;:9;:18;;;;;;22388:12;;:40;;:16;:40::i;:::-;22381:47;;22308:128;:::o;19057:218::-;331:10;19145:4;19194:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19194:34:0;;;;;;;;;;19145:4;;19162:83;;19185:7;;19194:50;;19233:10;19194:38;:50::i;21642:124::-;6050:6;;-1:-1:-1;;;;;6050:6:0;331:10;6050:22;6042:67;;;;-1:-1:-1;;;6042:67:0;;;;;;;:::i;:::-;21724:23:::1;:34:::0;21642:124::o;21774:214::-;6050:6;;-1:-1:-1;;;;;6050:6:0;331:10;6050:22;6042:67;;;;-1:-1:-1;;;6042:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21869:24:0;::::1;21861:71;;;::::0;-1:-1:-1;;;21861:71:0;;5553:2:1;21861:71:0::1;::::0;::::1;5535:21:1::0;5592:2;5572:18;;;5565:30;5631:34;5611:18;;;5604:62;-1:-1:-1;;;5682:18:1;;;5675:32;5724:19;;21861:71:0::1;5351:398:1::0;21861:71:0::1;21943:15;:37:::0;;-1:-1:-1;;;;;;21943:37:0::1;-1:-1:-1::0;;;;;21943:37:0;;;::::1;::::0;;;::::1;::::0;;21774:214::o;6137:148::-;6050:6;;-1:-1:-1;;;;;6050:6:0;331:10;6050:22;6042:67;;;;-1:-1:-1;;;6042:67:0;;;;;;;:::i;:::-;6244:1:::1;6228:6:::0;;6207:40:::1;::::0;-1:-1:-1;;;;;6228:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;6207:40:0;6244:1;;6207:40:::1;6275:1;6258:19:::0;;-1:-1:-1;;;;;;6258:19:0::1;::::0;;6137:148::o;20202:126::-;6050:6;;-1:-1:-1;;;;;6050:6:0;331:10;6050:22;6042:67;;;;-1:-1:-1;;;6042:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20291:18:0;;;::::1;;::::0;;;:9:::1;:18;::::0;;;;:29;;-1:-1:-1;;20291:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20202:126::o;18485:87::-;18524:13;18557:7;18550:14;;;;;:::i;20614:223::-;6050:6;;-1:-1:-1;;;;;6050:6:0;331:10;6050:22;6042:67;;;;-1:-1:-1;;;6042:67:0;;;;;;;:::i;:::-;20719:1:::1;20700:15;:20;;20692:46;;;::::0;-1:-1:-1;;;20692:46:0;;5211:2:1;20692:46:0::1;::::0;::::1;5193:21:1::0;5250:2;5230:18;;;5223:30;-1:-1:-1;;;5269:18:1;;;5262:43;5322:18;;20692:46:0::1;5009:337:1::0;20692:46:0::1;20749:16;:34:::0;;;20794:17:::1;:35:::0;20614:223::o;19283:269::-;19376:4;19393:129;331:10;19416:7;19425:96;19464:15;19425:96;;;;;;;;;;;;;;;;;331:10;19425:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19425:34:0;;;;;;;;;;;;:38;:96::i;22175:125::-;6050:6;;-1:-1:-1;;;;;6050:6:0;331:10;6050:22;6042:67;;;;-1:-1:-1;;;6042:67:0;;;;;;;:::i;:::-;22256:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;22256:36:0::1;-1:-1:-1::0;;;;22256:36:0;;::::1;::::0;;;::::1;::::0;;22175:125::o;6975:305::-;7027:14;;-1:-1:-1;;;;;7027:14:0;7045:10;7027:28;7019:76;;;;-1:-1:-1;;;7019:76:0;;5956:2:1;7019:76:0;;;5938:21:1;5995:2;5975:18;;;5968:30;6034:34;6014:18;;;6007:62;-1:-1:-1;;;6085:18:1;;;6078:33;6128:19;;7019:76:0;5754:399:1;7019:76:0;7132:9;;7114:15;:27;7106:72;;;;-1:-1:-1;;;7106:72:0;;6360:2:1;7106:72:0;;;6342:21:1;6399:2;6379:18;;;6372:30;6438:33;6418:18;;;6411:61;6489:18;;7106:72:0;6158:355:1;7106:72:0;7223:14;;;7215:6;;7194:44;;-1:-1:-1;;;;;7223:14:0;;;;7215:6;;;;-1:-1:-1;;;;;;;;;;;7194:44:0;;7258:14;;;7249:23;;-1:-1:-1;;;;;;7249:23:0;-1:-1:-1;;;;;7258:14:0;;;7249:23;;;;;;6975:305::o;23245:167::-;23323:4;23340:42;331:10;23364:9;23375:6;23340:9;:42::i;22444:793::-;22520:22;6050:6;;-1:-1:-1;;;;;6050:6:0;331:10;6050:22;6042:67;;;;-1:-1:-1;;;6042:67:0;;;;;;;:::i;:::-;22555:35:::1;22612:16;22555:74;;22677:16;-1:-1:-1::0;;;;;22677:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22659:53:0::1;;22721:4;22728:16;-1:-1:-1::0;;;;;22728:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22659:93;::::0;-1:-1:-1;;;;;;22659:93:0::1;::::0;;;;;;-1:-1:-1;;;;;7004:15:1;;;22659:93:0::1;::::0;::::1;6986:34:1::0;7056:15;;7036:18;;;7029:43;6921:18;;22659:93:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22642:110:::0;-1:-1:-1;;;;;;22768:28:0;::::1;22765:221;;22882:16;-1:-1:-1::0;;;;;22882:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22864:70:0::1;;22943:4;22950:16;-1:-1:-1::0;;;;;22950:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22864:110;::::0;-1:-1:-1;;;;;;22864:110:0::1;::::0;;;;;;-1:-1:-1;;;;;7004:15:1;;;22864:110:0::1;::::0;::::1;6986:34:1::0;7056:15;;7036:18;;;7029:43;6921:18;;22864:110:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22847:127;;22765:221;22998:11;:28:::0;;-1:-1:-1;;;;;;22998:28:0;;::::1;-1:-1:-1::0;;;;;22998:28:0;;::::1;::::0;;::::1;::::0;;23060:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;23132:41:0;;;:19:::1;:41;::::0;;;;;;;:48;;-1:-1:-1;;23132:48:0;;::::1;-1:-1:-1::0;23132:48:0;;::::1;::::0;;;23209:11;;;;::::1;23191:31:::0;;:9:::1;:31:::0;;;;;:38;;;;::::1;::::0;;::::1;::::0;;22998:28;23012:14;-1:-1:-1;22444:793:0:o;21996:171::-;6050:6;;-1:-1:-1;;;;;6050:6:0;331:10;6050:22;6042:67;;;;-1:-1:-1;;;6042:67:0;;;;;;;:::i;:::-;22073:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;22073:32:0::1;-1:-1:-1::0;;;;22073:32:0;;::::1;;::::0;;22121:38:::1;::::0;::::1;::::0;::::1;::::0;22097:8;1422:14:1;1415:22;1397:41;;1385:2;1370:18;;1257:187;22121:38:0::1;;;;;;;;21996:171:::0;:::o;6741:226::-;6050:6;;-1:-1:-1;;;;;6050:6:0;331:10;6050:22;6042:67;;;;-1:-1:-1;;;6042:67:0;;;;;;;:::i;:::-;6822:6:::1;::::0;;;6805:23;;-1:-1:-1;;;;;;6805:23:0;;::::1;-1:-1:-1::0;;;;;6822:6:0;::::1;6805:23;::::0;;;6839:19:::1;::::0;;6881:22:::1;6899:4:::0;6881:15:::1;:22;:::i;:::-;6869:9;:34:::0;6956:1:::1;6940:6:::0;;6919:40:::1;::::0;-1:-1:-1;;;;;6940:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;6919:40:0;6956:1;;6919:40:::1;6741:226:::0;:::o;21079:180::-;6050:6;;-1:-1:-1;;;;;6050:6:0;331:10;6050:22;6042:67;;;;-1:-1:-1;;;6042:67:0;;;;;;;:::i;:::-;21179:9:::1;21164:11;:24;;21156:58;;;::::0;-1:-1:-1;;;21156:58:0;;7550:2:1;21156:58:0::1;::::0;::::1;7532:21:1::0;7589:2;7569:18;;;7562:30;-1:-1:-1;;;7608:18:1;;;7601:51;7669:18;;21156:58:0::1;7348:345:1::0;21156:58:0::1;21225:12;:26:::0;21079:180::o;20471:135::-;6050:6;;-1:-1:-1;;;;;6050:6:0;331:10;6050:22;6042:67;;;;-1:-1:-1;;;6042:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20561:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;20561:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20471:135::o;21532:102::-;6050:6;;-1:-1:-1;;;;;6050:6:0;331:10;6050:22;6042:67;;;;-1:-1:-1;;;6042:67:0;;;;;;;:::i;:::-;21604:10:::1;:22:::0;21532:102::o;6293:244::-;6050:6;;-1:-1:-1;;;;;6050:6:0;331:10;6050:22;6042:67;;;;-1:-1:-1;;;6042:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6382:22:0;::::1;6374:73;;;::::0;-1:-1:-1;;;6374:73:0;;7900:2:1;6374:73:0::1;::::0;::::1;7882:21:1::0;7939:2;7919:18;;;7912:30;7978:34;7958:18;;;7951:62;-1:-1:-1;;;8029:18:1;;;8022:36;8075:19;;6374:73:0::1;7698:402:1::0;6374:73:0::1;6484:6;::::0;;6463:38:::1;::::0;-1:-1:-1;;;;;6463:38:0;;::::1;::::0;6484:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;6463:38:0;::::1;6512:6;:17:::0;;-1:-1:-1;;;;;;6512:17:0::1;-1:-1:-1::0;;;;;6512:17:0;;;::::1;::::0;;;::::1;::::0;;6293:244::o;20336:127::-;6050:6;;-1:-1:-1;;;;;6050:6:0;331:10;6050:22;6042:67;;;;-1:-1:-1;;;6042:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20423:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;20423:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20336:127::o;19857:337::-;-1:-1:-1;;;;;19950:19:0;;19942:68;;;;-1:-1:-1;;;19942:68:0;;8307:2:1;19942:68:0;;;8289:21:1;8346:2;8326:18;;;8319:30;8385:34;8365:18;;;8358:62;-1:-1:-1;;;8436:18:1;;;8429:34;8480:19;;19942:68:0;8105:400:1;19942:68:0;-1:-1:-1;;;;;20029:21:0;;20021:68;;;;-1:-1:-1;;;20021:68:0;;8712:2:1;20021:68:0;;;8694:21:1;8751:2;8731:18;;;8724:30;8790:34;8770:18;;;8763:62;-1:-1:-1;;;8841:18:1;;;8834:32;8883:19;;20021:68:0;8510:398:1;20021:68:0;-1:-1:-1;;;;;20102:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;20154:32;;1830:25:1;;;20154:32:0;;1803:18:1;20154:32:0;;;;;;;19857:337;;;:::o;23741:1754::-;23828:4;23865:6;-1:-1:-1;;;;;23892:20:0;;23884:70;;;;-1:-1:-1;;;23884:70:0;;9115:2:1;23884:70:0;;;9097:21:1;9154:2;9134:18;;;9127:30;9193:34;9173:18;;;9166:62;-1:-1:-1;;;9244:18:1;;;9237:35;9289:19;;23884:70:0;8913:401:1;23884:70:0;-1:-1:-1;;;;;23973:23:0;;23965:71;;;;-1:-1:-1;;;23965:71:0;;9521:2:1;23965:71:0;;;9503:21:1;9560:2;9540:18;;;9533:30;9599:34;9579:18;;;9572:62;-1:-1:-1;;;9650:18:1;;;9643:33;9693:19;;23965:71:0;9319:399:1;23965:71:0;24052:16;;-1:-1:-1;;;24052:16:0;;;;24049:1439;;;24101:41;24116:6;24124:9;24135:6;24101:14;:41::i;:::-;24094:48;;;;;24049:1439;-1:-1:-1;;;;;24197:23:0;;;;;;:15;:23;;;;;;;;24196:24;:55;;;;-1:-1:-1;;;;;;24225:26:0;;;;;;:15;:26;;;;;;;;24224:27;24196:55;24193:170;;;24290:12;;24280:6;:22;;24272:75;;;;-1:-1:-1;;;24272:75:0;;9925:2:1;24272:75:0;;;9907:21:1;9964:2;9944:18;;;9937:30;10003:34;9983:18;;;9976:62;-1:-1:-1;;;10054:18:1;;;10047:38;10102:19;;24272:75:0;9723:404:1;24272:75:0;24428:4;24379:28;18872:18;;;:9;:18;;;;;;24504:23;;24566:15;;24480:47;;;;;-1:-1:-1;;;;;24556:25:0;;;24566:15;;24556:25;:67;;24588:35;24597:6;24605:9;24616:6;24588:8;:35::i;:::-;24556:67;;;24584:1;24556:67;24544:79;;24644:23;:44;;;;-1:-1:-1;24672:16:0;;-1:-1:-1;;;24672:16:0;;;;24671:17;24644:44;:66;;;;-1:-1:-1;;;;;;24693:17:0;;;;;;:9;:17;;;;;;;;24692:18;24644:66;:91;;;;-1:-1:-1;24714:21:0;;-1:-1:-1;;;24714:21:0;;;;24644:91;24640:297;;;24772:25;;-1:-1:-1;;;24772:25:0;;;;24769:97;;;24843:23;;24820:46;;24769:97;24885:36;24900:20;24885:14;:36::i;:::-;24973:56;;;;;;;;;;;-1:-1:-1;;;24973:56:0;;;;;;;;-1:-1:-1;;;;;24973:17:0;;-1:-1:-1;24973:17:0;;;:9;:17;;;;;;;;:56;;24995:9;;24973:21;:56::i;:::-;-1:-1:-1;;;;;24953:17:0;;;;;;:9;:17;;;;;;;;:76;;;;25069:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;25098:28:0;;;;;;:17;:28;;;;;;;;25069:57;25068:93;;25152:9;25068:93;;;25143:6;25068:93;25181:16;;25046:115;;-1:-1:-1;;;;25181:16:0;;;;:51;;;;-1:-1:-1;;;;;;25202:30:0;;;;;;:19;:30;;;;;;;;25201:31;25181:51;25178:133;;;25300:10;;25259:37;25284:11;25259:20;25269:9;-1:-1:-1;;;;;18872:18:0;18845:7;18872:18;;;:9;:18;;;;;;;18779:119;25259:20;:24;;:37::i;:::-;:51;;25251:60;;;;;;-1:-1:-1;;;;;25351:20:0;;;;;;:9;:20;;;;;;:37;;25376:11;25351:24;:37::i;:::-;-1:-1:-1;;;;;25328:20:0;;;;;;;:9;:20;;;;;;;:60;;;;25410:40;;;;;;;;;;25438:11;1830:25:1;;1818:2;1803:18;;1684:177;25410:40:0;;;;;;;;25472:4;25465:11;;;;;;;;1636:192;1722:7;1758:12;1750:6;;;;1742:29;;;;-1:-1:-1;;;1742:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1782:9:0;1794:5;1798:1;1794;:5;:::i;:::-;1782:17;1636:192;-1:-1:-1;;;;;1636:192:0:o;1492:136::-;1550:7;1577:43;1581:1;1584;1577:43;;;;;;;;;;;;;;;;;:3;:43::i;1303:181::-;1361:7;;1393:5;1397:1;1393;:5;:::i;:::-;1381:17;;1422:1;1417;:6;;1409:46;;;;-1:-1:-1;;;1409:46:0;;10464:2:1;1409:46:0;;;10446:21:1;10503:2;10483:18;;;10476:30;10542:29;10522:18;;;10515:57;10589:18;;1409:46:0;10262:351:1;27254:330:0;27384:53;;;;;;;;;;;-1:-1:-1;;;27384:53:0;;;;;;;;-1:-1:-1;;;;;27384:17:0;;27347:4;27384:17;;;:9;:17;;;;;;;:53;;27406:6;;27384:21;:53::i;:::-;-1:-1:-1;;;;;27364:17:0;;;;;;;:9;:17;;;;;;:73;;;;27471:20;;;;;;;:32;;27496:6;27471:24;:32::i;:::-;-1:-1:-1;;;;;27448:20:0;;;;;;;:9;:20;;;;;;;:55;;;;27519:35;;;;;;;;;;27547:6;1830:25:1;;1818:2;1803:18;;1684:177;27519:35:0;;;;;;;;-1:-1:-1;27572:4:0;27254:330;;;;;:::o;26603:643::-;-1:-1:-1;;;;;26747:17:0;;26690:7;26747:17;;;:9;:17;;;;;;26690:7;;26747:17;;26744:269;;;26793:38;26827:3;26793:29;26804:17;;26793:6;:10;;:29;;;;:::i;:::-;:33;;:38::i;:::-;26781:50;;26744:269;;;-1:-1:-1;;;;;26861:20:0;;;;;;:9;:20;;;;;;;;:72;;;;-1:-1:-1;26905:15:0;;26885;;26932:1;;26885:44;;:15;-1:-1:-1;;;;;26905:15:0;:23;26885:19;:44::i;:::-;:48;26861:72;26858:155;;;26962:39;26997:3;26962:30;26973:18;;26962:6;:10;;:30;;;;:::i;:39::-;26950:51;;26858:155;27028:13;;27025:173;;27103:4;27085:24;;;;:9;:24;;;;;;:39;;27114:9;27085:28;:39::i;:::-;27076:4;27058:24;;;;:9;:24;;;;;;;:66;;;;27144:42;;-1:-1:-1;;;;;27144:42:0;;;;;;;27176:9;1830:25:1;;1818:2;1803:18;;1684:177;27144:42:0;;;;;;;;27025:173;27217:21;:6;27228:9;27217:10;:21::i;25630:299::-;17088:16;:23;;-1:-1:-1;;;;17088:23:0;-1:-1:-1;;;17088:23:0;;;25726:7;25746:31:::1;25726:7:::0;25746:16:::1;:31::i;:::-;25813:21;25848:18:::0;;25845:76:::1;;25895:9;::::0;25881:40:::1;::::0;25895:9:::1;::::0;::::1;-1:-1:-1::0;;;;;25895:9:0::1;25906:14:::0;25881:13:::1;:40::i;:::-;-1:-1:-1::0;;17134:16:0;:24;;-1:-1:-1;;;;17134:24:0;;;-1:-1:-1;25630:299:0:o;1836:250::-;1894:7;1918:6;1914:47;;-1:-1:-1;1948:1:0;1941:8;;1914:47;1973:9;1985:5;1989:1;1985;:5;:::i;:::-;1973:17;-1:-1:-1;2018:1:0;2009:5;2013:1;1973:17;2009:5;:::i;:::-;:10;2001:56;;;;-1:-1:-1;;;2001:56:0;;11215:2:1;2001:56:0;;;11197:21:1;11254:2;11234:18;;;11227:30;11293:34;11273:18;;;11266:62;-1:-1:-1;;;11344:18:1;;;11337:31;11385:19;;2001:56:0;11013:397:1;2094:132:0;2152:7;2179:39;2183:1;2186;2179:39;;;;;;;;;;;;;;;;;:3;:39::i;25937:658::-;26087:16;;;26101:1;26087:16;;;;;;;;26063:21;;26087:16;;;;;;;;;;-1:-1:-1;26087:16:0;26063:40;;26132:4;26114;26119:1;26114:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;26114:23:0;;;:7;;;;;;;;;;:23;;;;26158:15;;:22;;;-1:-1:-1;;;26158:22:0;;;;:15;;;;;:20;;:22;;;;;26114:7;;26158:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26148:4;26153:1;26148:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;26148:32:0;;;:7;;;;;;;;;:32;26225:15;;26193:62;;26210:4;;26225:15;26243:11;26193:8;:62::i;:::-;26294:15;;:240;;-1:-1:-1;;;26294:240:0;;-1:-1:-1;;;;;26294:15:0;;;;:66;;:240;;26375:11;;26294:15;;26445:4;;26472;;26508:15;;26294:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26552:35;26569:11;26582:4;26552:35;;;;;;;:::i;:::-;;;;;;;;25992:603;25937:658;:::o;25503:119::-;25588:26;;-1:-1:-1;;;;;25588:18:0;;;:26;;;;;25607:6;;25588:26;;;;25607:6;25588:18;:26;;;;;;;;;;;;;;;;;;;;;25503:119;;:::o;2234:278::-;2320:7;2355:12;2348:5;2340:28;;;;-1:-1:-1;;;2340:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2379:9:0;2391:5;2395:1;2391;:5;:::i;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:180::-;675:6;728:2;716:9;707:7;703:23;699:32;696:52;;;744:1;741;734:12;696:52;-1:-1:-1;767:23:1;;616:180;-1:-1:-1;616:180:1:o;801:131::-;-1:-1:-1;;;;;876:31:1;;866:42;;856:70;;922:1;919;912:12;856:70;801:131;:::o;937:315::-;1005:6;1013;1066:2;1054:9;1045:7;1041:23;1037:32;1034:52;;;1082:1;1079;1072:12;1034:52;1121:9;1108:23;1140:31;1165:5;1140:31;:::i;:::-;1190:5;1242:2;1227:18;;;;1214:32;;-1:-1:-1;;;937:315:1:o;1866:160::-;1931:20;;1987:13;;1980:21;1970:32;;1960:60;;2016:1;2013;2006:12;1960:60;1866:160;;;:::o;2031:315::-;2096:6;2104;2157:2;2145:9;2136:7;2132:23;2128:32;2125:52;;;2173:1;2170;2163:12;2125:52;2212:9;2199:23;2231:31;2256:5;2231:31;:::i;:::-;2281:5;-1:-1:-1;2305:35:1;2336:2;2321:18;;2305:35;:::i;:::-;2295:45;;2031:315;;;;;:::o;2351:456::-;2428:6;2436;2444;2497:2;2485:9;2476:7;2472:23;2468:32;2465:52;;;2513:1;2510;2503:12;2465:52;2552:9;2539:23;2571:31;2596:5;2571:31;:::i;:::-;2621:5;-1:-1:-1;2678:2:1;2663:18;;2650:32;2691:33;2650:32;2691:33;:::i;:::-;2351:456;;2743:7;;-1:-1:-1;;;2797:2:1;2782:18;;;;2769:32;;2351:456::o;2812:180::-;2868:6;2921:2;2909:9;2900:7;2896:23;2892:32;2889:52;;;2937:1;2934;2927:12;2889:52;2960:26;2976:9;2960:26;:::i;3394:247::-;3453:6;3506:2;3494:9;3485:7;3481:23;3477:32;3474:52;;;3522:1;3519;3512:12;3474:52;3561:9;3548:23;3580:31;3605:5;3580:31;:::i;3870:388::-;3938:6;3946;3999:2;3987:9;3978:7;3974:23;3970:32;3967:52;;;4015:1;4012;4005:12;3967:52;4054:9;4041:23;4073:31;4098:5;4073:31;:::i;:::-;4123:5;-1:-1:-1;4180:2:1;4165:18;;4152:32;4193:33;4152:32;4193:33;:::i;:::-;4245:7;4235:17;;;3870:388;;;;;:::o;4263:380::-;4342:1;4338:12;;;;4385;;;4406:61;;4460:4;4452:6;4448:17;4438:27;;4406:61;4513:2;4505:6;4502:14;4482:18;4479:38;4476:161;;;4559:10;4554:3;4550:20;4547:1;4540:31;4594:4;4591:1;4584:15;4622:4;4619:1;4612:15;4476:161;;4263:380;;;:::o;4648:356::-;4850:2;4832:21;;;4869:18;;;4862:30;4928:34;4923:2;4908:18;;4901:62;4995:2;4980:18;;4648:356::o;6518:251::-;6588:6;6641:2;6629:9;6620:7;6616:23;6612:32;6609:52;;;6657:1;6654;6647:12;6609:52;6689:9;6683:16;6708:31;6733:5;6708:31;:::i;7083:127::-;7144:10;7139:3;7135:20;7132:1;7125:31;7175:4;7172:1;7165:15;7199:4;7196:1;7189:15;7215:128;7255:3;7286:1;7282:6;7279:1;7276:13;7273:39;;;7292:18;;:::i;:::-;-1:-1:-1;7328:9:1;;7215:128::o;10132:125::-;10172:4;10200:1;10197;10194:8;10191:34;;;10205:18;;:::i;:::-;-1:-1:-1;10242:9:1;;10132:125::o;10618:168::-;10658:7;10724:1;10720;10716:6;10712:14;10709:1;10706:21;10701:1;10694:9;10687:17;10683:45;10680:71;;;10731:18;;:::i;:::-;-1:-1:-1;10771:9:1;;10618:168::o;10791:217::-;10831:1;10857;10847:132;;10901:10;10896:3;10892:20;10889:1;10882:31;10936:4;10933:1;10926:15;10964:4;10961:1;10954:15;10847:132;-1:-1:-1;10993:9:1;;10791:217::o;11547:127::-;11608:10;11603:3;11599:20;11596:1;11589:31;11639:4;11636:1;11629:15;11663:4;11660:1;11653:15;11679:461;11732:3;11770:5;11764:12;11797:6;11792:3;11785:19;11823:4;11852:2;11847:3;11843:12;11836:19;;11889:2;11882:5;11878:14;11910:1;11920:195;11934:6;11931:1;11928:13;11920:195;;;11999:13;;-1:-1:-1;;;;;11995:39:1;11983:52;;12055:12;;;;12090:15;;;;12031:1;11949:9;11920:195;;;-1:-1:-1;12131:3:1;;11679:461;-1:-1:-1;;;;;11679:461:1:o;12145:582::-;12444:6;12433:9;12426:25;12487:6;12482:2;12471:9;12467:18;12460:34;12530:3;12525:2;12514:9;12510:18;12503:31;12407:4;12551:57;12603:3;12592:9;12588:19;12580:6;12551:57;:::i;:::-;-1:-1:-1;;;;;12644:32:1;;;;12639:2;12624:18;;12617:60;-1:-1:-1;12708:3:1;12693:19;12686:35;12543:65;12145:582;-1:-1:-1;;;12145:582:1:o;12732:332::-;12939:6;12928:9;12921:25;12982:2;12977;12966:9;12962:18;12955:30;12902:4;13002:56;13054:2;13043:9;13039:18;13031:6;13002:56;:::i;:::-;12994:64;12732:332;-1:-1:-1;;;;12732:332:1:o
Swarm Source
ipfs://4fa85602824a18f696d71d29e800eacb10572c398b3e4ac69f68e3fa5f2ad400
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.