ERC-20
Overview
Max Total Supply
100,000,000 COGG
Holders
69
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
COGG
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-06 */ //SPDX-License-Identifier: MIT pragma solidity 0.8.21; interface IERC20 { function totalSupply() external view returns (uint); function balanceOf(address account) external view returns (uint); function transfer(address recipient, uint amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint amount) external returns (bool); function transferFrom(address sender, address recipient, uint amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); } // UPDATED SAFEMATH // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks and uses unchecked expressions to bypass built in checks. library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } contract Context { constructor () { } // solhint-disable-previous-line no-empty-blocks function _msgSender() internal view returns (address) { return msg.sender; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { _owner = msg.sender ; emit OwnershipTransferred(address(0), _owner); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender() , "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = 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; } } contract ERC20Detailed { string private _name; string private _symbol; uint8 private _decimals; constructor (string memory tname, string memory tsymbol, uint8 tdecimals) { _name = tname; _symbol = tsymbol; _decimals = tdecimals; } 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; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != 0x0 && codehash != accountHash); } } library SafeERC20 { using SafeMath for uint; using Address for address; function safeTransfer(IERC20 token, address to, uint value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove(IERC20 token, address spender, uint value) internal { require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function callOptionalReturn(IERC20 token, bytes memory data) private { require(address(token).isContract(), "SafeERC20: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = address(token).call(data); require(success, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } 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 Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap(address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface 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 COGG is Context, Ownable, IERC20, ERC20Detailed { using SafeERC20 for IERC20; using Address for address; using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; mapping (address => uint) internal _balances; mapping (address => mapping (address => uint)) internal _allowances; mapping (address => bool) private _isExcludedFromFee; uint256 internal _totalSupply; uint256 public sellMarketingFee = 2; uint256 public buyMarketingFee = 1; uint256 private marketingFee; address payable public marketingAddress = payable(0xA1d1C867548d925Bf4F2e3C846F8Eb1B5816766d); bool inSwapAndLiquify; bool private swapAndLiquifyEnabled = true; uint256 public numTokensSellToFee = 100000 * 10**18; event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } address private _owner; constructor () ERC20Detailed("CocksGG", "COGG", 18) { _owner = msg.sender ; _totalSupply = 100000000 * (10**18); _balances[_owner] = _totalSupply; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //MAIN TEST ETH //IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E); //MAIN BSC //IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); //TEST BSC // Create a uniswap pair for this new token uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); // set the rest of the contract variables uniswapV2Router = _uniswapV2Router; //exclude owner and this contract from fee _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[marketingAddress] = true; emit Transfer(address(0), _msgSender(), _totalSupply); } function totalSupply() public view override returns (uint) { return _totalSupply; } function balanceOf(address account) public view override returns (uint) { return _balances[account]; } function transfer(address recipient, uint amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address towner, address spender) public view override returns (uint) { return _allowances[towner][spender]; } function approve(address spender, uint amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint 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 increaseAllowance(address spender, uint addedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint subtractedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function _approve(address towner, address spender, uint amount) internal { require(towner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[towner][spender] = amount; emit Approval(towner, spender, amount); } function isContract(address account) internal view returns (bool) { return account.code.length > 0; } function setBuyMarketingFeePercent(uint256 updatedBuyMarketingFee) external onlyOwner { require(updatedBuyMarketingFee <= 3, "Buy fee should be less than 3%"); buyMarketingFee = updatedBuyMarketingFee; } function setSellMarketingFeePercent(uint256 updatedSellMarketingFee) external onlyOwner { require(updatedSellMarketingFee <= 3, "Sell fee should be less than 3%"); sellMarketingFee = updatedSellMarketingFee; } function setMarketingAddress(address payable wallet) external onlyOwner { require(wallet != marketingAddress,"Marketing address is already that address"); require(wallet != address(0), "Marketing address cannot be dead address"); require(!isContract(wallet), "Marketing address cannot be contract"); marketingAddress = wallet; } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function changeNumTokensSellToFee(uint256 _numTokensSellToFee) external onlyOwner { require(_numTokensSellToFee >= 10000 * 10**18 && _numTokensSellToFee <= 1000000 * 10**18, "Swap to fee threshold must be set within 10,000 to 1,000,000 tokens"); numTokensSellToFee = _numTokensSellToFee; emit MinTokensBeforeSwapUpdated(_numTokensSellToFee); } function clearETH(uint256 weiAmount) external onlyOwner { require(address(this).balance >= weiAmount, "Insufficient ETH balance"); payable(msg.sender).transfer(weiAmount); } function clearERC20(address _tokenAddr,address _to, uint256 _amount) external onlyOwner { require(_tokenAddr != address(this), "Owner can't claim native tokens"); IERC20(_tokenAddr).transfer(_to, _amount); } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function isExcludedFromFee(address account) public view returns (bool) { return _isExcludedFromFee[account]; } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function _transfer(address sender, address recipient, uint amount) internal{ require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); // is the token balance of this contract address over the min number of // tokens that we need to initiate a swap + liquidity lock? // also, don't get caught in a circular liquidity event. // also, don't swap & liquify if sender is uniswap pair. uint256 contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = contractTokenBalance >= numTokensSellToFee; if ( overMinTokenBalance && !inSwapAndLiquify && sender != uniswapV2Pair && swapAndLiquifyEnabled ) { contractTokenBalance = numTokensSellToFee; //add liquidity swapAndLiquify(contractTokenBalance); } //indicates if fee should be deducted from transfer bool takeFee = true; //if any account belongs to _isExcludedFromFee account then remove the fee if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]){ takeFee = false; } if(sender != uniswapV2Pair && recipient != uniswapV2Pair) {takeFee = false;} if(takeFee) { if(sender == uniswapV2Pair){marketingFee = buyMarketingFee;} else{marketingFee = sellMarketingFee;} uint256 taxAmount = amount.mul(marketingFee).div(100); uint256 TotalSent = amount.sub(taxAmount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(TotalSent); _balances[address(this)] = _balances[address(this)].add(taxAmount); emit Transfer(sender, recipient, TotalSent); emit Transfer(sender, address(this), taxAmount); } else { _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { // swap tokens for ETH swapTokensForEth(contractTokenBalance); // <- this breaks the ETH -> Token swap when swap+liquify is triggered payable(marketingAddress).transfer(address(this).balance); emit SwapAndLiquify(contractTokenBalance, address(this).balance); } 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), block.timestamp ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","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"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"towner","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":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_numTokensSellToFee","type":"uint256"}],"name":"changeNumTokensSellToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"clearERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"clearETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","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":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numTokensSellToFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"updatedBuyMarketingFee","type":"uint256"}],"name":"setBuyMarketingFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"wallet","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"updatedSellMarketingFee","type":"uint256"}],"name":"setSellMarketingFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c060405260026008556001600955600b8054600161ff0160a01b031916750100a1d1c867548d925bf4f2e3c846f8eb1b5816766d17905569152d02c7e14af6800000600c5534801562000051575f80fd5b506040805180820182526007815266436f636b73474760c81b602080830191909152825180840184526004815263434f474760e01b918101919091525f80546001600160a01b03191633908117825593519293919260129291907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36001620000de848262000411565b506002620000ed838262000411565b506003805460ff90921660ff199092169190911790555050600d80546001600160a01b031916339081179091556a52b7d2dcc80cd2e400000060078190555f9182526004602081815260409384902092909255825163c45a015560e01b81529251737a250d5630b4cf539739df2c5dacb4c659f2488d93849363c45a0155938281019391928290030181865afa1580156200018a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b09190620004d9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002229190620004d9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200026d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002939190620004d9565b6001600160a01b0390811660a0528116608052600160065f620002bd5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526006909352818320805485166001908117909155600b549091168352912080549092161790556200031b3390565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6007546040516200036291815260200190565b60405180910390a35062000508565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200039a57607f821691505b602082108103620003b957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200040c575f81815260208120601f850160051c81016020861015620003e75750805b601f850160051c820191505b818110156200040857828155600101620003f3565b5050505b505050565b81516001600160401b038111156200042d576200042d62000371565b62000445816200043e845462000385565b84620003bf565b602080601f8311600181146200047b575f8415620004635750858301515b5f19600386901b1c1916600185901b17855562000408565b5f85815260208120601f198616915b82811015620004ab578886015182559484019460019091019084016200048a565b5085821015620004c957878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60208284031215620004ea575f80fd5b81516001600160a01b038116811462000501575f80fd5b9392505050565b60805160a051611b2e6200055b5f395f81816103640152818161114c015281816111f301528181611230015261127501525f818161025e0152818161163b015281816116f2015261172e0152611b2e5ff3fe6080604052600436106101c8575f3560e01c806384956ca9116100f2578063a9059cbb11610092578063e1d2fa7611610062578063e1d2fa7614610572578063ea2f0b3714610591578063ead5c027146105b0578063f2fde38b146105cf575f80fd5b8063a9059cbb146104d1578063a928681c146104f0578063c49b9a801461050f578063dd62ed3e1461052e575f80fd5b806392136913116100cd578063921369131461046a57806395d89b411461047f578063a457c2d714610493578063a5ece941146104b2575f80fd5b806384956ca91461041a5780638da5cb5b1461042f578063906e9dd01461044b575f80fd5b8063333b9730116101685780635342acb4116101385780635342acb41461038657806370a08231146103bd578063715018a6146103f15780637bce5a0414610405575f80fd5b8063333b9730146102f65780633950935114610315578063437823ec1461033457806349bd5a5e14610353575f80fd5b80631694505e116101a35780631694505e1461024d57806318160ddd1461029857806323b872dd146102b6578063313ce567146102d5575f80fd5b806306fdde03146101d35780630844af26146101fd578063095ea7b31461021e575f80fd5b366101cf57005b5f80fd5b3480156101de575f80fd5b506101e76105ee565b6040516101f49190611794565b60405180910390f35b348015610208575f80fd5b5061021c6102173660046117df565b61067e565b005b348015610229575f80fd5b5061023d61023836600461180d565b610706565b60405190151581526020016101f4565b348015610258575f80fd5b506102807f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101f4565b3480156102a3575f80fd5b506007545b6040519081526020016101f4565b3480156102c1575f80fd5b5061023d6102d0366004611837565b61071c565b3480156102e0575f80fd5b5060035460405160ff90911681526020016101f4565b348015610301575f80fd5b5061021c6103103660046117df565b610783565b348015610320575f80fd5b5061023d61032f36600461180d565b61088a565b34801561033f575f80fd5b5061021c61034e366004611875565b6108bf565b34801561035e575f80fd5b506102807f000000000000000000000000000000000000000000000000000000000000000081565b348015610391575f80fd5b5061023d6103a0366004611875565b6001600160a01b03165f9081526006602052604090205460ff1690565b3480156103c8575f80fd5b506102a86103d7366004611875565b6001600160a01b03165f9081526004602052604090205490565b3480156103fc575f80fd5b5061021c61090b565b348015610410575f80fd5b506102a860095481565b348015610425575f80fd5b506102a8600c5481565b34801561043a575f80fd5b505f546001600160a01b0316610280565b348015610456575f80fd5b5061021c610465366004611875565b61097c565b348015610475575f80fd5b506102a860085481565b34801561048a575f80fd5b506101e7610b02565b34801561049e575f80fd5b5061023d6104ad36600461180d565b610b11565b3480156104bd575f80fd5b50600b54610280906001600160a01b031681565b3480156104dc575f80fd5b5061023d6104eb36600461180d565b610b5e565b3480156104fb575f80fd5b5061021c61050a3660046117df565b610b6a565b34801561051a575f80fd5b5061021c61052936600461189d565b610be9565b348015610539575f80fd5b506102a86105483660046118b8565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b34801561057d575f80fd5b5061021c61058c366004611837565b610c5f565b34801561059c575f80fd5b5061021c6105ab366004611875565b610d56565b3480156105bb575f80fd5b5061021c6105ca3660046117df565b610d9f565b3480156105da575f80fd5b5061021c6105e9366004611875565b610e46565b6060600180546105fd906118ef565b80601f0160208091040260200160405190810160405280929190818152602001828054610629906118ef565b80156106745780601f1061064b57610100808354040283529160200191610674565b820191905f5260205f20905b81548152906001019060200180831161065757829003601f168201915b5050505050905090565b5f546001600160a01b031633146106b05760405162461bcd60e51b81526004016106a790611927565b60405180910390fd5b60038111156107015760405162461bcd60e51b815260206004820152601e60248201527f427579206665652073686f756c64206265206c657373207468616e203325000060448201526064016106a7565b600955565b5f610712338484610f2d565b5060015b92915050565b5f610728848484611050565b610779843361077485604051806060016040528060288152602001611aac602891396001600160a01b038a165f90815260056020908152604080832033845290915290205491906114ed565b610f2d565b5060019392505050565b5f546001600160a01b031633146107ac5760405162461bcd60e51b81526004016106a790611927565b69021e19e0c9bab240000081101580156107d0575069d3c21bcecceda10000008111155b61084e5760405162461bcd60e51b815260206004820152604360248201527f5377617020746f20666565207468726573686f6c64206d75737420626520736560448201527f742077697468696e2031302c30303020746f20312c3030302c30303020746f6b606482015262656e7360e81b608482015260a4016106a7565b600c8190556040518181527f5948780118f41f7c4577ae4619d5cbd064057bd8562d9f7b7e60324053375c00906020015b60405180910390a150565b335f8181526005602090815260408083206001600160a01b038716845290915281205490916107129185906107749086611518565b5f546001600160a01b031633146108e85760405162461bcd60e51b81526004016106a790611927565b6001600160a01b03165f908152600660205260409020805460ff19166001179055565b5f546001600160a01b031633146109345760405162461bcd60e51b81526004016106a790611927565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109a55760405162461bcd60e51b81526004016106a790611927565b600b546001600160a01b0390811690821603610a155760405162461bcd60e51b815260206004820152602960248201527f4d61726b6574696e67206164647265737320697320616c72656164792074686160448201526874206164647265737360b81b60648201526084016106a7565b6001600160a01b038116610a7c5760405162461bcd60e51b815260206004820152602860248201527f4d61726b6574696e6720616464726573732063616e6e6f742062652064656164604482015267206164647265737360c01b60648201526084016106a7565b6001600160a01b0381163b15610ae05760405162461bcd60e51b8152602060048201526024808201527f4d61726b6574696e6720616464726573732063616e6e6f7420626520636f6e746044820152631c9858dd60e21b60648201526084016106a7565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600280546105fd906118ef565b5f610712338461077485604051806060016040528060258152602001611ad460259139335f9081526005602090815260408083206001600160a01b038d16845290915290205491906114ed565b5f610712338484611050565b5f546001600160a01b03163314610b935760405162461bcd60e51b81526004016106a790611927565b6003811115610be45760405162461bcd60e51b815260206004820152601f60248201527f53656c6c206665652073686f756c64206265206c657373207468616e2033250060448201526064016106a7565b600855565b5f546001600160a01b03163314610c125760405162461bcd60e51b81526004016106a790611927565b600b8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061087f90831515815260200190565b5f546001600160a01b03163314610c885760405162461bcd60e51b81526004016106a790611927565b306001600160a01b03841603610ce05760405162461bcd60e51b815260206004820152601f60248201527f4f776e65722063616e277420636c61696d206e617469766520746f6b656e730060448201526064016106a7565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af1158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d50919061195c565b50505050565b5f546001600160a01b03163314610d7f5760405162461bcd60e51b81526004016106a790611927565b6001600160a01b03165f908152600660205260409020805460ff19169055565b5f546001600160a01b03163314610dc85760405162461bcd60e51b81526004016106a790611927565b80471015610e185760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e6365000000000000000060448201526064016106a7565b604051339082156108fc029083905f818181858888f19350505050158015610e42573d5f803e3d5ffd5b5050565b5f546001600160a01b03163314610e6f5760405162461bcd60e51b81526004016106a790611927565b6001600160a01b038116610ed45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a7565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610f8f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a7565b6001600160a01b038216610ff05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a7565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110b45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a7565b6001600160a01b0382166111165760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a7565b305f90815260046020526040902054600c54811080159081906111435750600b54600160a01b900460ff16155b801561118157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b80156111965750600b54600160a81b900460ff165b156111a957600c5491506111a98261152a565b6001600160a01b0385165f9081526006602052604090205460019060ff16806111e957506001600160a01b0385165f9081526006602052604090205460ff165b156111f157505f5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b03161415801561126557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b1561126d57505f5b801561141f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b0316036112b757600954600a556112be565b600854600a555b5f6112df60646112d9600a54886115c590919063ffffffff16565b906115d0565b90505f6112ec86836115db565b905061132a86604051806060016040528060268152602001611a86602691396001600160a01b038b165f9081526004602052604090205491906114ed565b6001600160a01b03808a165f9081526004602052604080822093909355908916815220546113589082611518565b6001600160a01b0388165f908152600460205260408082209290925530815220546113839083611518565b305f9081526004602090815260409182902092909255518281526001600160a01b0389811692908b16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a360405182815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350506114e5565b61145b84604051806060016040528060268152602001611a86602691396001600160a01b0389165f9081526004602052604090205491906114ed565b6001600160a01b038088165f9081526004602052604080822093909355908716815220546114899085611518565b6001600160a01b038087165f8181526004602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114dc9088815260200190565b60405180910390a35b505050505050565b5f81848411156115105760405162461bcd60e51b81526004016106a79190611794565b505050900390565b5f611523828461198b565b9392505050565b600b805460ff60a01b1916600160a01b179055611546816115e6565b600b546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561157c573d5f803e3d5ffd5b50604080518281524760208201527f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486910160405180910390a150600b805460ff60a01b19169055565b5f611523828461199e565b5f61152382846119b5565b5f61152382846119d4565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611619576116196119e7565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611695573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116b991906119fb565b816001815181106116cc576116cc6119e7565b60200260200101906001600160a01b031690816001600160a01b031681525050611717307f000000000000000000000000000000000000000000000000000000000000000084610f2d565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061176b9085905f90869030904290600401611a16565b5f604051808303815f87803b158015611782575f80fd5b505af11580156114e5573d5f803e3d5ffd5b5f6020808352835180828501525f5b818110156117bf578581018301518582016040015282016117a3565b505f604082860101526040601f19601f8301168501019250505092915050565b5f602082840312156117ef575f80fd5b5035919050565b6001600160a01b038116811461180a575f80fd5b50565b5f806040838503121561181e575f80fd5b8235611829816117f6565b946020939093013593505050565b5f805f60608486031215611849575f80fd5b8335611854816117f6565b92506020840135611864816117f6565b929592945050506040919091013590565b5f60208284031215611885575f80fd5b8135611523816117f6565b801515811461180a575f80fd5b5f602082840312156118ad575f80fd5b813561152381611890565b5f80604083850312156118c9575f80fd5b82356118d4816117f6565b915060208301356118e4816117f6565b809150509250929050565b600181811c9082168061190357607f821691505b60208210810361192157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561196c575f80fd5b815161152381611890565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561071657610716611977565b808202811582820484141761071657610716611977565b5f826119cf57634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561071657610716611977565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611a0b575f80fd5b8151611523816117f6565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a645784516001600160a01b031683529383019391830191600101611a3f565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122055f75c6dcaef0e89eb054d9decca00aeec88b11d89d1382efdd0946c70240ef564736f6c63430008150033
Deployed Bytecode
0x6080604052600436106101c8575f3560e01c806384956ca9116100f2578063a9059cbb11610092578063e1d2fa7611610062578063e1d2fa7614610572578063ea2f0b3714610591578063ead5c027146105b0578063f2fde38b146105cf575f80fd5b8063a9059cbb146104d1578063a928681c146104f0578063c49b9a801461050f578063dd62ed3e1461052e575f80fd5b806392136913116100cd578063921369131461046a57806395d89b411461047f578063a457c2d714610493578063a5ece941146104b2575f80fd5b806384956ca91461041a5780638da5cb5b1461042f578063906e9dd01461044b575f80fd5b8063333b9730116101685780635342acb4116101385780635342acb41461038657806370a08231146103bd578063715018a6146103f15780637bce5a0414610405575f80fd5b8063333b9730146102f65780633950935114610315578063437823ec1461033457806349bd5a5e14610353575f80fd5b80631694505e116101a35780631694505e1461024d57806318160ddd1461029857806323b872dd146102b6578063313ce567146102d5575f80fd5b806306fdde03146101d35780630844af26146101fd578063095ea7b31461021e575f80fd5b366101cf57005b5f80fd5b3480156101de575f80fd5b506101e76105ee565b6040516101f49190611794565b60405180910390f35b348015610208575f80fd5b5061021c6102173660046117df565b61067e565b005b348015610229575f80fd5b5061023d61023836600461180d565b610706565b60405190151581526020016101f4565b348015610258575f80fd5b506102807f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016101f4565b3480156102a3575f80fd5b506007545b6040519081526020016101f4565b3480156102c1575f80fd5b5061023d6102d0366004611837565b61071c565b3480156102e0575f80fd5b5060035460405160ff90911681526020016101f4565b348015610301575f80fd5b5061021c6103103660046117df565b610783565b348015610320575f80fd5b5061023d61032f36600461180d565b61088a565b34801561033f575f80fd5b5061021c61034e366004611875565b6108bf565b34801561035e575f80fd5b506102807f000000000000000000000000d01baeb80f58da9869ca7952abce06cca5e35cd181565b348015610391575f80fd5b5061023d6103a0366004611875565b6001600160a01b03165f9081526006602052604090205460ff1690565b3480156103c8575f80fd5b506102a86103d7366004611875565b6001600160a01b03165f9081526004602052604090205490565b3480156103fc575f80fd5b5061021c61090b565b348015610410575f80fd5b506102a860095481565b348015610425575f80fd5b506102a8600c5481565b34801561043a575f80fd5b505f546001600160a01b0316610280565b348015610456575f80fd5b5061021c610465366004611875565b61097c565b348015610475575f80fd5b506102a860085481565b34801561048a575f80fd5b506101e7610b02565b34801561049e575f80fd5b5061023d6104ad36600461180d565b610b11565b3480156104bd575f80fd5b50600b54610280906001600160a01b031681565b3480156104dc575f80fd5b5061023d6104eb36600461180d565b610b5e565b3480156104fb575f80fd5b5061021c61050a3660046117df565b610b6a565b34801561051a575f80fd5b5061021c61052936600461189d565b610be9565b348015610539575f80fd5b506102a86105483660046118b8565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b34801561057d575f80fd5b5061021c61058c366004611837565b610c5f565b34801561059c575f80fd5b5061021c6105ab366004611875565b610d56565b3480156105bb575f80fd5b5061021c6105ca3660046117df565b610d9f565b3480156105da575f80fd5b5061021c6105e9366004611875565b610e46565b6060600180546105fd906118ef565b80601f0160208091040260200160405190810160405280929190818152602001828054610629906118ef565b80156106745780601f1061064b57610100808354040283529160200191610674565b820191905f5260205f20905b81548152906001019060200180831161065757829003601f168201915b5050505050905090565b5f546001600160a01b031633146106b05760405162461bcd60e51b81526004016106a790611927565b60405180910390fd5b60038111156107015760405162461bcd60e51b815260206004820152601e60248201527f427579206665652073686f756c64206265206c657373207468616e203325000060448201526064016106a7565b600955565b5f610712338484610f2d565b5060015b92915050565b5f610728848484611050565b610779843361077485604051806060016040528060288152602001611aac602891396001600160a01b038a165f90815260056020908152604080832033845290915290205491906114ed565b610f2d565b5060019392505050565b5f546001600160a01b031633146107ac5760405162461bcd60e51b81526004016106a790611927565b69021e19e0c9bab240000081101580156107d0575069d3c21bcecceda10000008111155b61084e5760405162461bcd60e51b815260206004820152604360248201527f5377617020746f20666565207468726573686f6c64206d75737420626520736560448201527f742077697468696e2031302c30303020746f20312c3030302c30303020746f6b606482015262656e7360e81b608482015260a4016106a7565b600c8190556040518181527f5948780118f41f7c4577ae4619d5cbd064057bd8562d9f7b7e60324053375c00906020015b60405180910390a150565b335f8181526005602090815260408083206001600160a01b038716845290915281205490916107129185906107749086611518565b5f546001600160a01b031633146108e85760405162461bcd60e51b81526004016106a790611927565b6001600160a01b03165f908152600660205260409020805460ff19166001179055565b5f546001600160a01b031633146109345760405162461bcd60e51b81526004016106a790611927565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109a55760405162461bcd60e51b81526004016106a790611927565b600b546001600160a01b0390811690821603610a155760405162461bcd60e51b815260206004820152602960248201527f4d61726b6574696e67206164647265737320697320616c72656164792074686160448201526874206164647265737360b81b60648201526084016106a7565b6001600160a01b038116610a7c5760405162461bcd60e51b815260206004820152602860248201527f4d61726b6574696e6720616464726573732063616e6e6f742062652064656164604482015267206164647265737360c01b60648201526084016106a7565b6001600160a01b0381163b15610ae05760405162461bcd60e51b8152602060048201526024808201527f4d61726b6574696e6720616464726573732063616e6e6f7420626520636f6e746044820152631c9858dd60e21b60648201526084016106a7565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600280546105fd906118ef565b5f610712338461077485604051806060016040528060258152602001611ad460259139335f9081526005602090815260408083206001600160a01b038d16845290915290205491906114ed565b5f610712338484611050565b5f546001600160a01b03163314610b935760405162461bcd60e51b81526004016106a790611927565b6003811115610be45760405162461bcd60e51b815260206004820152601f60248201527f53656c6c206665652073686f756c64206265206c657373207468616e2033250060448201526064016106a7565b600855565b5f546001600160a01b03163314610c125760405162461bcd60e51b81526004016106a790611927565b600b8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061087f90831515815260200190565b5f546001600160a01b03163314610c885760405162461bcd60e51b81526004016106a790611927565b306001600160a01b03841603610ce05760405162461bcd60e51b815260206004820152601f60248201527f4f776e65722063616e277420636c61696d206e617469766520746f6b656e730060448201526064016106a7565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af1158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d50919061195c565b50505050565b5f546001600160a01b03163314610d7f5760405162461bcd60e51b81526004016106a790611927565b6001600160a01b03165f908152600660205260409020805460ff19169055565b5f546001600160a01b03163314610dc85760405162461bcd60e51b81526004016106a790611927565b80471015610e185760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e6365000000000000000060448201526064016106a7565b604051339082156108fc029083905f818181858888f19350505050158015610e42573d5f803e3d5ffd5b5050565b5f546001600160a01b03163314610e6f5760405162461bcd60e51b81526004016106a790611927565b6001600160a01b038116610ed45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a7565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610f8f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a7565b6001600160a01b038216610ff05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a7565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110b45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a7565b6001600160a01b0382166111165760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a7565b305f90815260046020526040902054600c54811080159081906111435750600b54600160a01b900460ff16155b801561118157507f000000000000000000000000d01baeb80f58da9869ca7952abce06cca5e35cd16001600160a01b0316856001600160a01b031614155b80156111965750600b54600160a81b900460ff165b156111a957600c5491506111a98261152a565b6001600160a01b0385165f9081526006602052604090205460019060ff16806111e957506001600160a01b0385165f9081526006602052604090205460ff165b156111f157505f5b7f000000000000000000000000d01baeb80f58da9869ca7952abce06cca5e35cd16001600160a01b0316866001600160a01b03161415801561126557507f000000000000000000000000d01baeb80f58da9869ca7952abce06cca5e35cd16001600160a01b0316856001600160a01b031614155b1561126d57505f5b801561141f577f000000000000000000000000d01baeb80f58da9869ca7952abce06cca5e35cd16001600160a01b0316866001600160a01b0316036112b757600954600a556112be565b600854600a555b5f6112df60646112d9600a54886115c590919063ffffffff16565b906115d0565b90505f6112ec86836115db565b905061132a86604051806060016040528060268152602001611a86602691396001600160a01b038b165f9081526004602052604090205491906114ed565b6001600160a01b03808a165f9081526004602052604080822093909355908916815220546113589082611518565b6001600160a01b0388165f908152600460205260408082209290925530815220546113839083611518565b305f9081526004602090815260409182902092909255518281526001600160a01b0389811692908b16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a360405182815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350506114e5565b61145b84604051806060016040528060268152602001611a86602691396001600160a01b0389165f9081526004602052604090205491906114ed565b6001600160a01b038088165f9081526004602052604080822093909355908716815220546114899085611518565b6001600160a01b038087165f8181526004602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114dc9088815260200190565b60405180910390a35b505050505050565b5f81848411156115105760405162461bcd60e51b81526004016106a79190611794565b505050900390565b5f611523828461198b565b9392505050565b600b805460ff60a01b1916600160a01b179055611546816115e6565b600b546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561157c573d5f803e3d5ffd5b50604080518281524760208201527f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486910160405180910390a150600b805460ff60a01b19169055565b5f611523828461199e565b5f61152382846119b5565b5f61152382846119d4565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611619576116196119e7565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611695573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116b991906119fb565b816001815181106116cc576116cc6119e7565b60200260200101906001600160a01b031690816001600160a01b031681525050611717307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610f2d565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061176b9085905f90869030904290600401611a16565b5f604051808303815f87803b158015611782575f80fd5b505af11580156114e5573d5f803e3d5ffd5b5f6020808352835180828501525f5b818110156117bf578581018301518582016040015282016117a3565b505f604082860101526040601f19601f8301168501019250505092915050565b5f602082840312156117ef575f80fd5b5035919050565b6001600160a01b038116811461180a575f80fd5b50565b5f806040838503121561181e575f80fd5b8235611829816117f6565b946020939093013593505050565b5f805f60608486031215611849575f80fd5b8335611854816117f6565b92506020840135611864816117f6565b929592945050506040919091013590565b5f60208284031215611885575f80fd5b8135611523816117f6565b801515811461180a575f80fd5b5f602082840312156118ad575f80fd5b813561152381611890565b5f80604083850312156118c9575f80fd5b82356118d4816117f6565b915060208301356118e4816117f6565b809150509250929050565b600181811c9082168061190357607f821691505b60208210810361192157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561196c575f80fd5b815161152381611890565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561071657610716611977565b808202811582820484141761071657610716611977565b5f826119cf57634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561071657610716611977565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611a0b575f80fd5b8151611523816117f6565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a645784516001600160a01b031683529383019391830191600101611a3f565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122055f75c6dcaef0e89eb054d9decca00aeec88b11d89d1382efdd0946c70240ef564736f6c63430008150033
Deployed Bytecode Sourcemap
14894:10037:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4898:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19197:233;;;;;;;;;;-1:-1:-1;19197:233:0;;;;;:::i;:::-;;:::i;:::-;;17770:158;;;;;;;;;;-1:-1:-1;17770:158:0;;;;;:::i;:::-;;:::i;:::-;;;1373:14:1;;1366:22;1348:41;;1336:2;1321:18;17770:158:0;1208:187:1;15054:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1591:32:1;;;1573:51;;1561:2;1546:18;15054:51:0;1400:230:1;17226:97:0;;;;;;;;;;-1:-1:-1;17303:12:0;;17226:97;;;1781:25:1;;;1769:2;1754:18;17226:97:0;1635:177:1;17934:310:0;;;;;;;;;;-1:-1:-1;17934:310:0;;;;;:::i;:::-;;:::i;5080:83::-;;;;;;;;;;-1:-1:-1;5146:9:0;;5080:83;;5146:9;;;;2420:36:1;;2408:2;2393:18;5080:83:0;2278:184:1;20243:375:0;;;;;;;;;;-1:-1:-1;20243:375:0;;;;;:::i;:::-;;:::i;18250:207::-;;;;;;;;;;-1:-1:-1;18250:207:0;;;;;:::i;:::-;;:::i;21074:111::-;;;;;;;;;;-1:-1:-1;21074:111:0;;;;;:::i;:::-;;:::i;15112:38::-;;;;;;;;;;;;;;;21315:124;;;;;;;;;;-1:-1:-1;21315:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;21404:27:0;21380:4;21404:27;;;:18;:27;;;;;;;;;21315:124;17329:116;;;;;;;;;;-1:-1:-1;17329:116:0;;;;;:::i;:::-;-1:-1:-1;;;;;17419:18:0;17395:4;17419:18;;;:9;:18;;;;;;;17329:116;4191:148;;;;;;;;;;;;;:::i;15430:34::-;;;;;;;;;;;;;;;;15692:51;;;;;;;;;;;;;;;;3976:79;;;;;;;;;;-1:-1:-1;4014:7:0;4041:6;-1:-1:-1;;;;;4041:6:0;3976:79;;19685:369;;;;;;;;;;-1:-1:-1;19685:369:0;;;;;:::i;:::-;;:::i;15388:35::-;;;;;;;;;;;;;;;;4987:87;;;;;;;;;;;;;:::i;18463:258::-;;;;;;;;;;-1:-1:-1;18463:258:0;;;;;:::i;:::-;;:::i;15510:93::-;;;;;;;;;;-1:-1:-1;15510:93:0;;;;-1:-1:-1;;;;;15510:93:0;;;17451:165;;;;;;;;;;-1:-1:-1;17451:165:0;;;;;:::i;:::-;;:::i;19438:239::-;;;;;;;;;;-1:-1:-1;19438:239:0;;;;;:::i;:::-;;:::i;20064:171::-;;;;;;;;;;-1:-1:-1;20064:171:0;;;;;:::i;:::-;;:::i;17622:142::-;;;;;;;;;;-1:-1:-1;17622:142:0;;;;;:::i;:::-;-1:-1:-1;;;;;17728:19:0;;;17704:4;17728:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;17622:142;20833:233;;;;;;;;;;-1:-1:-1;20833:233:0;;;;;:::i;:::-;;:::i;21197:110::-;;;;;;;;;;-1:-1:-1;21197:110:0;;;;;:::i;:::-;;:::i;20623:202::-;;;;;;;;;;-1:-1:-1;20623:202:0;;;;;:::i;:::-;;:::i;4347:244::-;;;;;;;;;;-1:-1:-1;4347:244:0;;;;;:::i;:::-;;:::i;4898:83::-;4935:13;4968:5;4961:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4898:83;:::o;19197:233::-;4103:6;;-1:-1:-1;;;;;4103:6:0;3657:10;4103:22;4095:68;;;;-1:-1:-1;;;4095:68:0;;;;;;;:::i;:::-;;;;;;;;;19328:1:::1;19302:22;:27;;19294:70;;;::::0;-1:-1:-1;;;19294:70:0;;5121:2:1;19294:70:0::1;::::0;::::1;5103:21:1::0;5160:2;5140:18;;;5133:30;5199:32;5179:18;;;5172:60;5249:18;;19294:70:0::1;4919:354:1::0;19294:70:0::1;19375:15;:40:::0;19197:233::o;17770:158::-;17842:4;17859:39;3657:10;17882:7;17891:6;17859:8;:39::i;:::-;-1:-1:-1;17916:4:0;17770:158;;;;;:::o;17934:310::-;18029:4;18046:36;18056:6;18064:9;18075:6;18046:9;:36::i;:::-;18093:121;18102:6;3657:10;18124:89;18162:6;18124:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18124:19:0;;;;;;:11;:19;;;;;;;;3657:10;18124:33;;;;;;;;;;:37;:89::i;:::-;18093:8;:121::i;:::-;-1:-1:-1;18232:4:0;17934:310;;;;;:::o;20243:375::-;4103:6;;-1:-1:-1;;;;;4103:6:0;3657:10;4103:22;4095:68;;;;-1:-1:-1;;;4095:68:0;;;;;;;:::i;:::-;20367:14:::1;20344:19;:37;;:80;;;;;20408:16;20385:19;:39;;20344:80;20336:160;;;::::0;-1:-1:-1;;;20336:160:0;;5480:2:1;20336:160:0::1;::::0;::::1;5462:21:1::0;5519:2;5499:18;;;5492:30;5558:34;5538:18;;;5531:62;5629:34;5609:18;;;5602:62;-1:-1:-1;;;5680:19:1;;;5673:34;5724:19;;20336:160:0::1;5278:471:1::0;20336:160:0::1;20507:18;:40:::0;;;20563:47:::1;::::0;1781:25:1;;;20563:47:0::1;::::0;1769:2:1;1754:18;20563:47:0::1;;;;;;;;20243:375:::0;:::o;18250:207::-;3657:10;18327:4;18376:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18376:34:0;;;;;;;;;;18327:4;;18344:83;;18367:7;;18376:50;;18415:10;18376:38;:50::i;21074:111::-;4103:6;;-1:-1:-1;;;;;4103:6:0;3657:10;4103:22;4095:68;;;;-1:-1:-1;;;4095:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21143:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;21143:34:0::1;21173:4;21143:34;::::0;;21074:111::o;4191:148::-;4103:6;;-1:-1:-1;;;;;4103:6:0;3657:10;4103:22;4095:68;;;;-1:-1:-1;;;4095:68:0;;;;;;;:::i;:::-;4298:1:::1;4282:6:::0;;4261:40:::1;::::0;-1:-1:-1;;;;;4282:6:0;;::::1;::::0;4261:40:::1;::::0;4298:1;;4261:40:::1;4329:1;4312:19:::0;;-1:-1:-1;;;;;;4312:19:0::1;::::0;;4191:148::o;19685:369::-;4103:6;;-1:-1:-1;;;;;4103:6:0;3657:10;4103:22;4095:68;;;;-1:-1:-1;;;4095:68:0;;;;;;;:::i;:::-;19786:16:::1;::::0;-1:-1:-1;;;;;19786:16:0;;::::1;19776:26:::0;;::::1;::::0;19768:79:::1;;;::::0;-1:-1:-1;;;19768:79:0;;5956:2:1;19768:79:0::1;::::0;::::1;5938:21:1::0;5995:2;5975:18;;;5968:30;6034:34;6014:18;;;6007:62;-1:-1:-1;;;6085:18:1;;;6078:39;6134:19;;19768:79:0::1;5754:405:1::0;19768:79:0::1;-1:-1:-1::0;;;;;19866:20:0;::::1;19858:73;;;::::0;-1:-1:-1;;;19858:73:0;;6366:2:1;19858:73:0::1;::::0;::::1;6348:21:1::0;6405:2;6385:18;;;6378:30;6444:34;6424:18;;;6417:62;-1:-1:-1;;;6495:18:1;;;6488:38;6543:19;;19858:73:0::1;6164:404:1::0;19858:73:0::1;-1:-1:-1::0;;;;;19158:19:0;;;:23;19942:68:::1;;;::::0;-1:-1:-1;;;19942:68:0;;6775:2:1;19942:68:0::1;::::0;::::1;6757:21:1::0;6814:2;6794:18;;;6787:30;6853:34;6833:18;;;6826:62;-1:-1:-1;;;6904:18:1;;;6897:34;6948:19;;19942:68:0::1;6573:400:1::0;19942:68:0::1;20021:16;:25:::0;;-1:-1:-1;;;;;;20021:25:0::1;-1:-1:-1::0;;;;;20021:25:0;;;::::1;::::0;;;::::1;::::0;;19685:369::o;4987:87::-;5026:13;5059:7;5052:14;;;;;:::i;18463:258::-;18545:4;18562:129;3657:10;18585:7;18594:96;18633:15;18594:96;;;;;;;;;;;;;;;;;3657:10;18594:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18594:34:0;;;;;;;;;;;;:38;:96::i;17451:165::-;17527:4;17544:42;3657:10;17568:9;17579:6;17544:9;:42::i;19438:239::-;4103:6;;-1:-1:-1;;;;;4103:6:0;3657:10;4103:22;4095:68;;;;-1:-1:-1;;;4095:68:0;;;;;;;:::i;:::-;19572:1:::1;19545:23;:28;;19537:72;;;::::0;-1:-1:-1;;;19537:72:0;;7180:2:1;19537:72:0::1;::::0;::::1;7162:21:1::0;7219:2;7199:18;;;7192:30;7258:33;7238:18;;;7231:61;7309:18;;19537:72:0::1;6978:355:1::0;19537:72:0::1;19620:16;:42:::0;19438:239::o;20064:171::-;4103:6;;-1:-1:-1;;;;;4103:6:0;3657:10;4103:22;4095:68;;;;-1:-1:-1;;;4095:68:0;;;;;;;:::i;:::-;20141:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;20141:32:0::1;-1:-1:-1::0;;;;20141:32:0;;::::1;;::::0;;20189:38:::1;::::0;::::1;::::0;::::1;::::0;20165:8;1373:14:1;1366:22;1348:41;;1336:2;1321:18;;1208:187;20833:233:0;4103:6;;-1:-1:-1;;;;;4103:6:0;3657:10;4103:22;4095:68;;;;-1:-1:-1;;;4095:68:0;;;;;;;:::i;:::-;20963:4:::1;-1:-1:-1::0;;;;;20941:27:0;::::1;::::0;20933:71:::1;;;::::0;-1:-1:-1;;;20933:71:0;;7540:2:1;20933:71:0::1;::::0;::::1;7522:21:1::0;7579:2;7559:18;;;7552:30;7618:33;7598:18;;;7591:61;7669:18;;20933:71:0::1;7338:355:1::0;20933:71:0::1;21016:41;::::0;-1:-1:-1;;;21016:41:0;;-1:-1:-1;;;;;7890:32:1;;;21016:41:0::1;::::0;::::1;7872:51:1::0;7939:18;;;7932:34;;;21016:27:0;::::1;::::0;::::1;::::0;7845:18:1;;21016:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20833:233:::0;;;:::o;21197:110::-;4103:6;;-1:-1:-1;;;;;4103:6:0;3657:10;4103:22;4095:68;;;;-1:-1:-1;;;4095:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21264:27:0::1;21294:5;21264:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;21264:35:0::1;::::0;;21197:110::o;20623:202::-;4103:6;;-1:-1:-1;;;;;4103:6:0;3657:10;4103:22;4095:68;;;;-1:-1:-1;;;4095:68:0;;;;;;;:::i;:::-;20725:9:::1;20700:21;:34;;20692:71;;;::::0;-1:-1:-1;;;20692:71:0;;8429:2:1;20692:71:0::1;::::0;::::1;8411:21:1::0;8468:2;8448:18;;;8441:30;8507:26;8487:18;;;8480:54;8551:18;;20692:71:0::1;8227:348:1::0;20692:71:0::1;20776:39;::::0;20784:10:::1;::::0;20776:39;::::1;;;::::0;20805:9;;20776:39:::1;::::0;;;20805:9;20784:10;20776:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20623:202:::0;:::o;4347:244::-;4103:6;;-1:-1:-1;;;;;4103:6:0;3657:10;4103:22;4095:68;;;;-1:-1:-1;;;4095:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4436:22:0;::::1;4428:73;;;::::0;-1:-1:-1;;;4428:73:0;;8782:2:1;4428:73:0::1;::::0;::::1;8764:21:1::0;8821:2;8801:18;;;8794:30;8860:34;8840:18;;;8833:62;-1:-1:-1;;;8911:18:1;;;8904:36;8957:19;;4428:73:0::1;8580:402:1::0;4428:73:0::1;4538:6;::::0;;4517:38:::1;::::0;-1:-1:-1;;;;;4517:38:0;;::::1;::::0;4538:6;::::1;::::0;4517:38:::1;::::0;::::1;4566:6;:17:::0;;-1:-1:-1;;;;;;4566:17:0::1;-1:-1:-1::0;;;;;4566:17:0;;;::::1;::::0;;;::::1;::::0;;4347:244::o;18729:337::-;-1:-1:-1;;;;;18821:20:0;;18813:69;;;;-1:-1:-1;;;18813:69:0;;9189:2:1;18813:69:0;;;9171:21:1;9228:2;9208:18;;;9201:30;9267:34;9247:18;;;9240:62;-1:-1:-1;;;9318:18:1;;;9311:34;9362:19;;18813:69:0;8987:400:1;18813:69:0;-1:-1:-1;;;;;18901:21:0;;18893:68;;;;-1:-1:-1;;;18893:68:0;;9594:2:1;18893:68:0;;;9576:21:1;9633:2;9613:18;;;9606:30;9672:34;9652:18;;;9645:62;-1:-1:-1;;;9723:18:1;;;9716:32;9765:19;;18893:68:0;9392:398:1;18893:68:0;-1:-1:-1;;;;;18972:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;19025:33;;1781:25:1;;;19025:33:0;;1754:18:1;19025:33:0;;;;;;;18729:337;;;:::o;21540:2385::-;-1:-1:-1;;;;;21636:20:0;;21628:70;;;;-1:-1:-1;;;21628:70:0;;9997:2:1;21628:70:0;;;9979:21:1;10036:2;10016:18;;;10009:30;10075:34;10055:18;;;10048:62;-1:-1:-1;;;10126:18:1;;;10119:35;10171:19;;21628:70:0;9795:401:1;21628:70:0;-1:-1:-1;;;;;21717:23:0;;21709:71;;;;-1:-1:-1;;;21709:71:0;;10403:2:1;21709:71:0;;;10385:21:1;10442:2;10422:18;;;10415:30;10481:34;10461:18;;;10454:62;-1:-1:-1;;;10532:18:1;;;10525:33;10575:19;;21709:71:0;10201:399:1;21709:71:0;22126:4;22077:28;17419:18;;;:9;:18;;;;;;22214;;22190:42;;;;;;;22261:53;;-1:-1:-1;22298:16:0;;-1:-1:-1;;;22298:16:0;;;;22297:17;22261:53;:93;;;;;22341:13;-1:-1:-1;;;;;22331:23:0;:6;-1:-1:-1;;;;;22331:23:0;;;22261:93;:131;;;;-1:-1:-1;22371:21:0;;-1:-1:-1;;;22371:21:0;;;;22261:131;22243:309;;;22442:18;;22419:41;;22504:36;22519:20;22504:14;:36::i;:::-;-1:-1:-1;;;;;22753:26:0;;22626:12;22753:26;;;:18;:26;;;;;;22641:4;;22753:26;;;:59;;-1:-1:-1;;;;;;22783:29:0;;;;;;:18;:29;;;;;;;;22753:59;22750:105;;;-1:-1:-1;22838:5:0;22750:105;22887:13;-1:-1:-1;;;;;22877:23:0;:6;-1:-1:-1;;;;;22877:23:0;;;:53;;;;;22917:13;-1:-1:-1;;;;;22904:26:0;:9;-1:-1:-1;;;;;22904:26:0;;;22877:53;22874:85;;;-1:-1:-1;22952:5:0;22874:85;22982:7;22979:930;;;23028:13;-1:-1:-1;;;;;23018:23:0;:6;-1:-1:-1;;;;;23018:23:0;;23015:112;;23058:15;;23043:12;:30;23015:112;;;23109:16;;23094:12;:31;23015:112;23141:17;23161:33;23190:3;23161:24;23172:12;;23161:6;:10;;:24;;;;:::i;:::-;:28;;:33::i;:::-;23141:53;-1:-1:-1;23209:17:0;23229:21;:6;23141:53;23229:10;:21::i;:::-;23209:41;;23285:71;23307:6;23285:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23285:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;23265:17:0;;;;;;;:9;:17;;;;;;:91;;;;23394:20;;;;;;;:35;;23419:9;23394:24;:35::i;:::-;-1:-1:-1;;;;;23371:20:0;;;;;;:9;:20;;;;;;:58;;;;23489:4;23471:24;;;;:39;;23500:9;23471:28;:39::i;:::-;23462:4;23444:24;;;;:9;:24;;;;;;;;;:66;;;;23530:38;1781:25:1;;;-1:-1:-1;;;;;23530:38:0;;;;;;;;;;1754:18:1;23530:38:0;;;;;;;23588:42;;1781:25:1;;;23613:4:0;;-1:-1:-1;;;;;23588:42:0;;;;;1769:2:1;1754:18;23588:42:0;;;;;;;23000:642;;22979:930;;;23701:71;23723:6;23701:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23701:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;23681:17:0;;;;;;;:9;:17;;;;;;:91;;;;23810:20;;;;;;;:32;;23835:6;23810:24;:32::i;:::-;-1:-1:-1;;;;;23787:20:0;;;;;;;:9;:20;;;;;;;:55;;;;23862:35;;;;;;;;;;23890:6;1781:25:1;;1769:2;1754:18;;1635:177;23862:35:0;;;;;;;;22979:930;21615:2310;;;21540:2385;;;:::o;2842:206::-;2928:7;2989:12;2981:6;;;;2973:29;;;;-1:-1:-1;;;2973:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;3024:5:0;;;2842:206::o;2312:98::-;2370:7;2397:5;2401:1;2397;:5;:::i;:::-;2390:12;2312:98;-1:-1:-1;;;2312:98:0:o;23934:395::-;16007:16;:23;;-1:-1:-1;;;;16007:23:0;-1:-1:-1;;;16007:23:0;;;24057:38:::1;24074:20:::0;24057:16:::1;:38::i;:::-;24187:16;::::0;24179:57:::1;::::0;-1:-1:-1;;;;;24187:16:0;;::::1;::::0;24214:21:::1;24179:57:::0;::::1;;;::::0;24187:16:::1;24179:57:::0;24187:16;24179:57;24214:21;24187:16;24179:57;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;24262:59:0::1;::::0;;11041:25:1;;;24299:21:0::1;11097:2:1::0;11082:18;;11075:34;24262:59:0::1;::::0;11014:18:1;24262:59:0::1;;;;;;;-1:-1:-1::0;16053:16:0;:24;;-1:-1:-1;;;;16053:24:0;;;23934:395::o;2524:98::-;2582:7;2609:5;2613:1;2609;:5;:::i;2630:98::-;2688:7;2715:5;2719:1;2715;:5;:::i;2418:98::-;2476:7;2503:5;2507:1;2503;:5;:::i;24337:589::-;24487:16;;;24501:1;24487:16;;;;;;;;24463:21;;24487:16;;;;;;;;;;-1:-1:-1;24487:16:0;24463:40;;24532:4;24514;24519:1;24514:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;24514:23:0;;;-1:-1:-1;;;;;24514:23:0;;;;;24558:15;-1:-1:-1;;;;;24558:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24548:4;24553:1;24548:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;24548:32:0;;;-1:-1:-1;;;;;24548:32:0;;;;;24593:62;24610:4;24625:15;24643:11;24593:8;:62::i;:::-;24694:224;;-1:-1:-1;;;24694:224:0;;-1:-1:-1;;;;;24694:15:0;:66;;;;:224;;24775:11;;24801:1;;24845:4;;24872;;24892:15;;24694:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:548:1;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:180::-;626:6;679:2;667:9;658:7;654:23;650:32;647:52;;;695:1;692;685:12;647:52;-1:-1:-1;718:23:1;;567:180;-1:-1:-1;567:180:1:o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;807:70;752:131;:::o;888:315::-;956:6;964;1017:2;1005:9;996:7;992:23;988:32;985:52;;;1033:1;1030;1023:12;985:52;1072:9;1059:23;1091:31;1116:5;1091:31;:::i;:::-;1141:5;1193:2;1178:18;;;;1165:32;;-1:-1:-1;;;888:315:1:o;1817:456::-;1894:6;1902;1910;1963:2;1951:9;1942:7;1938:23;1934:32;1931:52;;;1979:1;1976;1969:12;1931:52;2018:9;2005:23;2037:31;2062:5;2037:31;:::i;:::-;2087:5;-1:-1:-1;2144:2:1;2129:18;;2116:32;2157:33;2116:32;2157:33;:::i;:::-;1817:456;;2209:7;;-1:-1:-1;;;2263:2:1;2248:18;;;;2235:32;;1817:456::o;2467:247::-;2526:6;2579:2;2567:9;2558:7;2554:23;2550:32;2547:52;;;2595:1;2592;2585:12;2547:52;2634:9;2621:23;2653:31;2678:5;2653:31;:::i;3411:118::-;3497:5;3490:13;3483:21;3476:5;3473:32;3463:60;;3519:1;3516;3509:12;3534:241;3590:6;3643:2;3631:9;3622:7;3618:23;3614:32;3611:52;;;3659:1;3656;3649:12;3611:52;3698:9;3685:23;3717:28;3739:5;3717:28;:::i;3780:388::-;3848:6;3856;3909:2;3897:9;3888:7;3884:23;3880:32;3877:52;;;3925:1;3922;3915:12;3877:52;3964:9;3951:23;3983:31;4008:5;3983:31;:::i;:::-;4033:5;-1:-1:-1;4090:2:1;4075:18;;4062:32;4103:33;4062:32;4103:33;:::i;:::-;4155:7;4145:17;;;3780:388;;;;;:::o;4173:380::-;4252:1;4248:12;;;;4295;;;4316:61;;4370:4;4362:6;4358:17;4348:27;;4316:61;4423:2;4415:6;4412:14;4392:18;4389:38;4386:161;;4469:10;4464:3;4460:20;4457:1;4450:31;4504:4;4501:1;4494:15;4532:4;4529:1;4522:15;4386:161;;4173:380;;;:::o;4558:356::-;4760:2;4742:21;;;4779:18;;;4772:30;4838:34;4833:2;4818:18;;4811:62;4905:2;4890:18;;4558:356::o;7977:245::-;8044:6;8097:2;8085:9;8076:7;8072:23;8068:32;8065:52;;;8113:1;8110;8103:12;8065:52;8145:9;8139:16;8164:28;8186:5;8164:28;:::i;10605:127::-;10666:10;10661:3;10657:20;10654:1;10647:31;10697:4;10694:1;10687:15;10721:4;10718:1;10711:15;10737:125;10802:9;;;10823:10;;;10820:36;;;10836:18;;:::i;11120:168::-;11193:9;;;11224;;11241:15;;;11235:22;;11221:37;11211:71;;11262:18;;:::i;11293:217::-;11333:1;11359;11349:132;;11403:10;11398:3;11394:20;11391:1;11384:31;11438:4;11435:1;11428:15;11466:4;11463:1;11456:15;11349:132;-1:-1:-1;11495:9:1;;11293:217::o;11515:128::-;11582:9;;;11603:11;;;11600:37;;;11617:18;;:::i;11780:127::-;11841:10;11836:3;11832:20;11829:1;11822:31;11872:4;11869:1;11862:15;11896:4;11893:1;11886:15;11912:251;11982:6;12035:2;12023:9;12014:7;12010:23;12006:32;12003:52;;;12051:1;12048;12041:12;12003:52;12083:9;12077:16;12102:31;12127:5;12102:31;:::i;12168:980::-;12430:4;12478:3;12467:9;12463:19;12509:6;12498:9;12491:25;12535:2;12573:6;12568:2;12557:9;12553:18;12546:34;12616:3;12611:2;12600:9;12596:18;12589:31;12640:6;12675;12669:13;12706:6;12698;12691:22;12744:3;12733:9;12729:19;12722:26;;12783:2;12775:6;12771:15;12757:29;;12804:1;12814:195;12828:6;12825:1;12822:13;12814:195;;;12893:13;;-1:-1:-1;;;;;12889:39:1;12877:52;;12984:15;;;;12949:12;;;;12925:1;12843:9;12814:195;;;-1:-1:-1;;;;;;;13065:32:1;;;;13060:2;13045:18;;13038:60;-1:-1:-1;;;13129:3:1;13114:19;13107:35;13026:3;12168:980;-1:-1:-1;;;12168:980:1:o
Swarm Source
ipfs://55f75c6dcaef0e89eb054d9decca00aeec88b11d89d1382efdd0946c70240ef5
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.