ETH Price: $2,988.31 (-0.82%)
Gas: 6 Gwei

Token

NOWAI ($NOWAI)
 

Overview

Max Total Supply

10,000,000,000 $NOWAI

Holders

211

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
NOWAI

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 2 of 2: eth.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.16;
import "comps.sol";
// ________   ________  ___       __   ________  ___     
//|\   ___  \|\   __  \|\  \     |\  \|\   __  \|\  \    
//\ \  \\ \  \ \  \|\  \ \  \    \ \  \ \  \|\  \ \  \   
// \ \  \\ \  \ \  \\\  \ \  \  __\ \  \ \   __  \ \  \  
//  \ \  \\ \  \ \  \\\  \ \  \|\__\_\  \ \  \ \  \ \  \ 
//   \ \__\\ \__\ \_______\ \____________\ \__\ \__\ \__\
//    \|__| \|__|\|_______|\|____________|\|__|\|__|\|__|

// Join Telegram : https://t.me/nowaiAI
// Website : https://www.nowai.ai/
// Twitter : https://twitter.com/nowaiAI


 contract NOWAI is ERC20, Ownable {
    string private _name = "NOWAI";
    string private _symbol = "$NOWAI";
    uint8 private _decimals = 18;
    uint256 private _supply = 10000000000;
    uint256 public taxForLiquidity = 1;
    uint256 public taxForMarketing = 2;
    uint256 public maxWalletAmount = 1;
    address public marketingWallet = 0x47726b6e98Ef99382359EFe87E14D826b57403A1;
    address private uniswapRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    uint256 private _marketingReserves = 0;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private _numTokensSellToAddToLiquidity = 200 * 10**_decimals;
    uint256 private _numTokensSellToAddToETH = 200 * 10**_decimals;
    bool inSwapAndLiquify;
    bool live;
    uint256 unlockMaxWallet;
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() ERC20(_name, _symbol, _decimals) {
        _mint(msg.sender, (_supply * 10**_decimals));

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(uniswapRouter);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _isExcludedFromFee[address(uniswapV2Router)] = true;
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[marketingWallet] = true;
        _approve(msg.sender, uniswapRouter, _supply * 10** _decimals);
    }

    function startTrade() public onlyOwner{
        require(!live, "Trade already live!");
        live = true;
        unlockMaxWallet = block.timestamp + 86400;
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(balanceOf(from) >= amount, "ERC20: transfer amount exceeds balance");

        if(from != owner() && to != owner()){
            require(live,"Trading not open yet");
        }

        if ((from == uniswapV2Pair || to == uniswapV2Pair) && !inSwapAndLiquify) {
            if (from != uniswapV2Pair) {
                uint256 contractLiquidityBalance = balanceOf(address(this)) - _marketingReserves;
                if (contractLiquidityBalance >= _numTokensSellToAddToLiquidity) {
                    _swapAndLiquify(_numTokensSellToAddToLiquidity);
                }
                if ((_marketingReserves) >= _numTokensSellToAddToETH) {
                    _swapTokensForEth(_numTokensSellToAddToETH);
                    _marketingReserves -= _numTokensSellToAddToETH;
                    bool sent = payable(marketingWallet).send(address(this).balance);
                    require(sent, "Failed to send ETH");
                }
            }

            uint256 transferAmount;
            if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
                transferAmount = amount;
            } 
            else {
                if(from == uniswapV2Pair && (unlockMaxWallet > block.timestamp)){
                        require((amount + balanceOf(to)) <= (_supply * 10** _decimals) * maxWalletAmount / 100, "ERC20: balance amount exceeded max wallet amount limit");
                }

                uint256 marketingShare = ((amount * taxForMarketing) / 100);
                uint256 liquidityShare = ((amount * taxForLiquidity) / 100);
                transferAmount = amount - (marketingShare + liquidityShare);
                _marketingReserves += marketingShare;

                super._transfer(from, address(this), (marketingShare + liquidityShare));
            }
            super._transfer(from, to, transferAmount);
        } 
        else {
            super._transfer(from, to, amount);
        }
    }

    function _swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        uint256 half = (contractTokenBalance / 2);
        uint256 otherHalf = (contractTokenBalance - half);

        uint256 initialBalance = address(this).balance;

        _swapTokensForEth(half);

        uint256 newBalance = (address(this).balance - initialBalance);

        _addLiquidity(otherHalf, newBalance);

        emit SwapAndLiquify(half, newBalance, otherHalf);
    }

    function _swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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 + 300)
        );
    }

    function _addLiquidity(uint256 tokenAmount, uint256 ethAmount)
        private
        lockTheSwap
    {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            address(0xdead),
            block.timestamp
        );
    }

    function changeMarketingWallet(address newWallet)
        public
        onlyOwner
        returns (bool)
    {
        marketingWallet = newWallet;
        return true;
    }

    function changeTaxForLiquidityAndMarketing(uint256 _taxForLiquidity, uint256 _taxForMarketing)
        public
        onlyOwner
        returns (bool)
    {
        require((_taxForLiquidity+_taxForMarketing) <= 100, "ERC20: total tax must not be greater than 100");
        taxForLiquidity = _taxForLiquidity;
        taxForMarketing = _taxForMarketing;

        return true;
    }

    function changeMaxWalletAmount(uint256 _maxWalletAmount)
        public
        onlyOwner
        returns (bool)
    {
        maxWalletAmount = _maxWalletAmount;

        return true;
    }

    receive() external payable {}
}

File 1 of 2: comps.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.16;

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


interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    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 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;
}


abstract contract Ownable  {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(msg.sender);
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }
    function _checkOwner() internal view virtual {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
}
contract ERC20 is IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor(string memory name_, string memory symbol_, uint8 decimals_) {
        _name = name_;
        _symbol = symbol_;
         _decimals = decimals_;
    }
    function symbol() external view virtual override returns (string memory) {
        return _symbol;
    }
    function name() external view virtual override returns (string memory) {
        return _name;
    }
    function balanceOf(address account)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _balances[account];
    }
    function decimals() public view virtual override returns (uint8) {
        return _decimals;
    }
    function totalSupply() external view virtual override returns (uint256) {
        return _totalSupply;
    }
    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
    function transfer(address to, uint256 amount)
        external
        virtual
        override
        returns (bool)
    {
        address owner = msg.sender;
        _transfer(owner, to, amount);
        return true;
    }
    function approve(address spender, uint256 amount)
        external
        virtual
        override
        returns (bool)
    {
        address owner = msg.sender;
        _approve(owner, spender, amount);
        return true;
    }
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external virtual override returns (bool) {
        address spender = msg.sender;
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue)
        external
        virtual
        returns (bool)
    {
        address owner = msg.sender;
        uint256 currentAllowance = allowance(owner, spender);
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue)
        external
        virtual
        returns (bool)
    {
        address owner = msg.sender;
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);
    }
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);
    }
}

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":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":"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":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"changeMarketingWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletAmount","type":"uint256"}],"name":"changeMaxWalletAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxForLiquidity","type":"uint256"},{"internalType":"uint256","name":"_taxForMarketing","type":"uint256"}],"name":"changeTaxForLiquidityAndMarketing","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"}]

610100604052600560c0908152644e4f57414960d81b60e05260069062000027908262000793565b50604080518082019091526006815265244e4f57414960d01b602082015260079062000054908262000793565b506008805460ff191660129081179091556402540be4006009556001600a8181556002600b55600c91909155600d80546001600160a01b03199081167347726b6e98ef99382359efe87e14d826b57403a117909155600e8054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790556000600f55620000d9919062000974565b620000e69060c86200098c565b601155600854620000fc9060ff16600a62000974565b620001099060c86200098c565b6012553480156200011957600080fd5b5060068054620001299062000704565b80601f0160208091040260200160405190810160405280929190818152602001828054620001579062000704565b8015620001a85780601f106200017c57610100808354040283529160200191620001a8565b820191906000526020600020905b8154815290600101906020018083116200018a57829003601f168201915b505050505060078054620001bc9062000704565b80601f0160208091040260200160405190810160405280929190818152602001828054620001ea9062000704565b80156200023b5780601f106200020f576101008083540402835291602001916200023b565b820191906000526020600020905b8154815290600101906020018083116200021d57829003601f168201915b505060085460ff16925060039150620002579050848262000793565b50600462000266838262000793565b506005805460ff191660ff929092169190911790555062000289905033620004a5565b600854620002b8903390620002a39060ff16600a62000974565b600954620002b291906200098c565b620004ff565b600e546040805163c45a015560e01b815290516001600160a01b0390921691829163c45a01559160048083019260209291908290030181865afa15801562000304573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032a9190620009ae565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000378573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039e9190620009ae565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620003ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004129190620009ae565b6001600160a01b0390811660a05281811660808190526000908152601060205260408082208054600160ff199182168117909255338085528385208054831684179055600d548616855292909320805490931617909155600e546008546200049e939190911690620004899060ff16600a62000974565b6009546200049891906200098c565b620005c6565b50620009ef565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200055b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b80600260008282546200056f9190620009d9565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0383166200062a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000552565b6001600160a01b0382166200068d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000552565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200071957607f821691505b6020821081036200073a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200078e57600081815260208120601f850160051c81016020861015620007695750805b601f850160051c820191505b818110156200078a5782815560010162000775565b5050505b505050565b81516001600160401b03811115620007af57620007af620006ee565b620007c781620007c0845462000704565b8462000740565b602080601f831160018114620007ff5760008415620007e65750858301515b600019600386901b1c1916600185901b1785556200078a565b600085815260208120601f198616915b8281101562000830578886015182559484019460019091019084016200080f565b50858210156200084f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008b65781600019048211156200089a576200089a6200085f565b80851615620008a857918102915b93841c93908002906200087a565b509250929050565b600082620008cf575060016200096e565b81620008de575060006200096e565b8160018114620008f75760028114620009025762000922565b60019150506200096e565b60ff8411156200091657620009166200085f565b50506001821b6200096e565b5060208310610133831016604e8410600b841016171562000947575081810a6200096e565b62000953838362000875565b80600019048211156200096a576200096a6200085f565b0290505b92915050565b60006200098560ff841683620008be565b9392505050565b6000816000190483118215151615620009a957620009a96200085f565b500290565b600060208284031215620009c157600080fd5b81516001600160a01b03811681146200098557600080fd5b808201808211156200096e576200096e6200085f565b60805160a05161185b62000a546000396000818161029501528181610acf01528181610b0a01528181610b540152610cab0152600081816101c801528181611011015281816110ca015281816110f90152818161128e01526112eb015261185b6000f3fe60806040526004361061014f5760003560e01c806375f0a874116100b6578063aa4bde281161006f578063aa4bde28146103e7578063af8af690146103fd578063bb85c6d11461041d578063dd62ed3e1461043d578063f2fde38b1461045d578063f345bd851461047d57600080fd5b806375f0a8741461032f57806381bfdcca1461034f5780638da5cb5b1461036f57806395d89b4114610392578063a457c2d7146103a7578063a9059cbb146103c757600080fd5b80633950935111610108578063395093511461026357806349bd5a5e14610283578063527ffabd146102b75780636c580801146102cd57806370a08231146102e4578063715018a61461031a57600080fd5b806306fdde031461015b578063095ea7b3146101865780631694505e146101b657806318160ddd1461020257806323b872dd14610221578063313ce5671461024157600080fd5b3661015657005b600080fd5b34801561016757600080fd5b50610170610493565b60405161017d9190611373565b60405180910390f35b34801561019257600080fd5b506101a66101a13660046113d6565b610525565b604051901515815260200161017d565b3480156101c257600080fd5b506101ea7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161017d565b34801561020e57600080fd5b506002545b60405190815260200161017d565b34801561022d57600080fd5b506101a661023c366004611402565b61053f565b34801561024d57600080fd5b5060055460405160ff909116815260200161017d565b34801561026f57600080fd5b506101a661027e3660046113d6565b610563565b34801561028f57600080fd5b506101ea7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102c357600080fd5b50610213600b5481565b3480156102d957600080fd5b506102e2610585565b005b3480156102f057600080fd5b506102136102ff366004611443565b6001600160a01b031660009081526020819052604090205490565b34801561032657600080fd5b506102e2610601565b34801561033b57600080fd5b50600d546101ea906001600160a01b031681565b34801561035b57600080fd5b506101a661036a366004611467565b610615565b34801561037b57600080fd5b5060055461010090046001600160a01b03166101ea565b34801561039e57600080fd5b50610170610628565b3480156103b357600080fd5b506101a66103c23660046113d6565b610637565b3480156103d357600080fd5b506101a66103e23660046113d6565b6106b2565b3480156103f357600080fd5b50610213600c5481565b34801561040957600080fd5b506101a6610418366004611480565b6106c0565b34801561042957600080fd5b506101a6610438366004611443565b610749565b34801561044957600080fd5b506102136104583660046114a2565b610778565b34801561046957600080fd5b506102e2610478366004611443565b6107a3565b34801561048957600080fd5b50610213600a5481565b6060600380546104a2906114db565b80601f01602080910402602001604051908101604052809291908181526020018280546104ce906114db565b801561051b5780601f106104f05761010080835404028352916020019161051b565b820191906000526020600020905b8154815290600101906020018083116104fe57829003601f168201915b5050505050905090565b60003361053381858561081c565b60019150505b92915050565b60003361054d858285610940565b6105588585856109ba565b506001949350505050565b6000336105338185856105768383610778565b610580919061152b565b61081c565b61058d610e55565b601354610100900460ff16156105e05760405162461bcd60e51b8152602060048201526013602482015272547261646520616c7265616479206c6976652160681b60448201526064015b60405180910390fd5b6013805461ff0019166101001790556105fc426201518061152b565b601455565b610609610e55565b6106136000610eb5565b565b600061061f610e55565b50600c55600190565b6060600480546104a2906114db565b600033816106458286610778565b9050838110156106a55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105d7565b610558828686840361081c565b6000336105338185856109ba565b60006106ca610e55565b60646106d6838561152b565b111561073a5760405162461bcd60e51b815260206004820152602d60248201527f45524332303a20746f74616c20746178206d757374206e6f742062652067726560448201526c061746572207468616e2031303609c1b60648201526084016105d7565b50600a91909155600b55600190565b6000610753610e55565b50600d80546001600160a01b0383166001600160a01b03199091161790556001919050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6107ab610e55565b6001600160a01b0381166108105760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105d7565b61081981610eb5565b50565b6001600160a01b03831661087e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105d7565b6001600160a01b0382166108df5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105d7565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061094c8484610778565b905060001981146109b457818110156109a75760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105d7565b6109b4848484840361081c565b50505050565b6001600160a01b0383166109e05760405162461bcd60e51b81526004016105d79061153e565b6001600160a01b038216610a065760405162461bcd60e51b81526004016105d790611583565b80610a26846001600160a01b031660009081526020819052604090205490565b1015610a445760405162461bcd60e51b81526004016105d7906115c6565b6005546001600160a01b038481166101009092041614801590610a7a57506005546001600160a01b038381166101009092041614155b15610acd57601354610100900460ff16610acd5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016105d7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161480610b3e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b8015610b4d575060135460ff16155b15610e45577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614610c5e57600f54306000908152602081905260408120549091610ba99161160c565b90506011548110610bbf57610bbf601154610f0f565b601254600f5410610c5c57610bd5601254610fad565b601254600f6000828254610be9919061160c565b9091555050600d546040516000916001600160a01b0316904780156108fc029184818181858888f19350505050905080610c5a5760405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b60448201526064016105d7565b505b505b6001600160a01b03831660009081526010602052604081205460ff1680610c9d57506001600160a01b03831660009081526010602052604090205460ff165b15610ca9575080610e3a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316148015610ceb575042601454115b15610db957600c5460085460649190610d089060ff16600a611703565b600954610d159190611712565b610d1f9190611712565b610d299190611731565b6001600160a01b038416600090815260208190526040902054610d4c908461152b565b1115610db95760405162461bcd60e51b815260206004820152603660248201527f45524332303a2062616c616e636520616d6f756e74206578636565646564206d604482015275185e081dd85b1b195d08185b5bdd5b9d081b1a5b5a5d60521b60648201526084016105d7565b60006064600b5484610dcb9190611712565b610dd59190611731565b905060006064600a5485610de99190611712565b610df39190611731565b9050610dff818361152b565b610e09908561160c565b925081600f6000828254610e1d919061152b565b90915550610e3790508630610e32848661152b565b61118f565b50505b6109b484848361118f565b610e5083838361118f565b505050565b6005546001600160a01b036101009091041633146106135760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105d7565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6013805460ff191660011790556000610f29600283611731565b90506000610f37828461160c565b905047610f4383610fad565b6000610f4f824761160c565b9050610f5b838261127b565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506013805460ff19169055505050565b6013805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610fef57610fef611753565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110919190611769565b816001815181106110a4576110a4611753565b60200260200101906001600160a01b031690816001600160a01b0316815250506110ef307f00000000000000000000000000000000000000000000000000000000000000008461081c565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663791ac947836000843061112f4261012c61152b565b6040518663ffffffff1660e01b815260040161114f959493929190611786565b600060405180830381600087803b15801561116957600080fd5b505af115801561117d573d6000803e3d6000fd5b50506013805460ff1916905550505050565b6001600160a01b0383166111b55760405162461bcd60e51b81526004016105d79061153e565b6001600160a01b0382166111db5760405162461bcd60e51b81526004016105d790611583565b6001600160a01b038316600090815260208190526040902054818110156112145760405162461bcd60e51b81526004016105d7906115c6565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b6013805460ff191660011790556112b3307f00000000000000000000000000000000000000000000000000000000000000008461081c565b60405163f305d71960e01b815230600482015260248101839052600060448201819052606482015261dead60848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f305d71990839060c40160606040518083038185885af115801561133d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061136291906117f7565b50506013805460ff19169055505050565b600060208083528351808285015260005b818110156113a057858101830151858201604001528201611384565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461081957600080fd5b600080604083850312156113e957600080fd5b82356113f4816113c1565b946020939093013593505050565b60008060006060848603121561141757600080fd5b8335611422816113c1565b92506020840135611432816113c1565b929592945050506040919091013590565b60006020828403121561145557600080fd5b8135611460816113c1565b9392505050565b60006020828403121561147957600080fd5b5035919050565b6000806040838503121561149357600080fd5b50508035926020909101359150565b600080604083850312156114b557600080fd5b82356114c0816113c1565b915060208301356114d0816113c1565b809150509250929050565b600181811c908216806114ef57607f821691505b60208210810361150f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561053957610539611515565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b8181038181111561053957610539611515565b600181815b8085111561165a57816000190482111561164057611640611515565b8085161561164d57918102915b93841c9390800290611624565b509250929050565b60008261167157506001610539565b8161167e57506000610539565b8160018114611694576002811461169e576116ba565b6001915050610539565b60ff8411156116af576116af611515565b50506001821b610539565b5060208310610133831016604e8410600b84101617156116dd575081810a610539565b6116e7838361161f565b80600019048211156116fb576116fb611515565b029392505050565b600061146060ff841683611662565b600081600019048311821515161561172c5761172c611515565b500290565b60008261174e57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561177b57600080fd5b8151611460816113c1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117d65784516001600160a01b0316835293830193918301916001016117b1565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561180c57600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122043595c83c73ac41206e620c7636ae5f8a001fe3060cc09131be45260b8d2740264736f6c63430008100033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c806375f0a874116100b6578063aa4bde281161006f578063aa4bde28146103e7578063af8af690146103fd578063bb85c6d11461041d578063dd62ed3e1461043d578063f2fde38b1461045d578063f345bd851461047d57600080fd5b806375f0a8741461032f57806381bfdcca1461034f5780638da5cb5b1461036f57806395d89b4114610392578063a457c2d7146103a7578063a9059cbb146103c757600080fd5b80633950935111610108578063395093511461026357806349bd5a5e14610283578063527ffabd146102b75780636c580801146102cd57806370a08231146102e4578063715018a61461031a57600080fd5b806306fdde031461015b578063095ea7b3146101865780631694505e146101b657806318160ddd1461020257806323b872dd14610221578063313ce5671461024157600080fd5b3661015657005b600080fd5b34801561016757600080fd5b50610170610493565b60405161017d9190611373565b60405180910390f35b34801561019257600080fd5b506101a66101a13660046113d6565b610525565b604051901515815260200161017d565b3480156101c257600080fd5b506101ea7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161017d565b34801561020e57600080fd5b506002545b60405190815260200161017d565b34801561022d57600080fd5b506101a661023c366004611402565b61053f565b34801561024d57600080fd5b5060055460405160ff909116815260200161017d565b34801561026f57600080fd5b506101a661027e3660046113d6565b610563565b34801561028f57600080fd5b506101ea7f000000000000000000000000c378a59218179dc5724353d94446f58fae88aa6681565b3480156102c357600080fd5b50610213600b5481565b3480156102d957600080fd5b506102e2610585565b005b3480156102f057600080fd5b506102136102ff366004611443565b6001600160a01b031660009081526020819052604090205490565b34801561032657600080fd5b506102e2610601565b34801561033b57600080fd5b50600d546101ea906001600160a01b031681565b34801561035b57600080fd5b506101a661036a366004611467565b610615565b34801561037b57600080fd5b5060055461010090046001600160a01b03166101ea565b34801561039e57600080fd5b50610170610628565b3480156103b357600080fd5b506101a66103c23660046113d6565b610637565b3480156103d357600080fd5b506101a66103e23660046113d6565b6106b2565b3480156103f357600080fd5b50610213600c5481565b34801561040957600080fd5b506101a6610418366004611480565b6106c0565b34801561042957600080fd5b506101a6610438366004611443565b610749565b34801561044957600080fd5b506102136104583660046114a2565b610778565b34801561046957600080fd5b506102e2610478366004611443565b6107a3565b34801561048957600080fd5b50610213600a5481565b6060600380546104a2906114db565b80601f01602080910402602001604051908101604052809291908181526020018280546104ce906114db565b801561051b5780601f106104f05761010080835404028352916020019161051b565b820191906000526020600020905b8154815290600101906020018083116104fe57829003601f168201915b5050505050905090565b60003361053381858561081c565b60019150505b92915050565b60003361054d858285610940565b6105588585856109ba565b506001949350505050565b6000336105338185856105768383610778565b610580919061152b565b61081c565b61058d610e55565b601354610100900460ff16156105e05760405162461bcd60e51b8152602060048201526013602482015272547261646520616c7265616479206c6976652160681b60448201526064015b60405180910390fd5b6013805461ff0019166101001790556105fc426201518061152b565b601455565b610609610e55565b6106136000610eb5565b565b600061061f610e55565b50600c55600190565b6060600480546104a2906114db565b600033816106458286610778565b9050838110156106a55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105d7565b610558828686840361081c565b6000336105338185856109ba565b60006106ca610e55565b60646106d6838561152b565b111561073a5760405162461bcd60e51b815260206004820152602d60248201527f45524332303a20746f74616c20746178206d757374206e6f742062652067726560448201526c061746572207468616e2031303609c1b60648201526084016105d7565b50600a91909155600b55600190565b6000610753610e55565b50600d80546001600160a01b0383166001600160a01b03199091161790556001919050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6107ab610e55565b6001600160a01b0381166108105760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105d7565b61081981610eb5565b50565b6001600160a01b03831661087e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105d7565b6001600160a01b0382166108df5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105d7565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061094c8484610778565b905060001981146109b457818110156109a75760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105d7565b6109b4848484840361081c565b50505050565b6001600160a01b0383166109e05760405162461bcd60e51b81526004016105d79061153e565b6001600160a01b038216610a065760405162461bcd60e51b81526004016105d790611583565b80610a26846001600160a01b031660009081526020819052604090205490565b1015610a445760405162461bcd60e51b81526004016105d7906115c6565b6005546001600160a01b038481166101009092041614801590610a7a57506005546001600160a01b038381166101009092041614155b15610acd57601354610100900460ff16610acd5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016105d7565b7f000000000000000000000000c378a59218179dc5724353d94446f58fae88aa666001600160a01b0316836001600160a01b03161480610b3e57507f000000000000000000000000c378a59218179dc5724353d94446f58fae88aa666001600160a01b0316826001600160a01b0316145b8015610b4d575060135460ff16155b15610e45577f000000000000000000000000c378a59218179dc5724353d94446f58fae88aa666001600160a01b0316836001600160a01b031614610c5e57600f54306000908152602081905260408120549091610ba99161160c565b90506011548110610bbf57610bbf601154610f0f565b601254600f5410610c5c57610bd5601254610fad565b601254600f6000828254610be9919061160c565b9091555050600d546040516000916001600160a01b0316904780156108fc029184818181858888f19350505050905080610c5a5760405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b60448201526064016105d7565b505b505b6001600160a01b03831660009081526010602052604081205460ff1680610c9d57506001600160a01b03831660009081526010602052604090205460ff165b15610ca9575080610e3a565b7f000000000000000000000000c378a59218179dc5724353d94446f58fae88aa666001600160a01b0316846001600160a01b0316148015610ceb575042601454115b15610db957600c5460085460649190610d089060ff16600a611703565b600954610d159190611712565b610d1f9190611712565b610d299190611731565b6001600160a01b038416600090815260208190526040902054610d4c908461152b565b1115610db95760405162461bcd60e51b815260206004820152603660248201527f45524332303a2062616c616e636520616d6f756e74206578636565646564206d604482015275185e081dd85b1b195d08185b5bdd5b9d081b1a5b5a5d60521b60648201526084016105d7565b60006064600b5484610dcb9190611712565b610dd59190611731565b905060006064600a5485610de99190611712565b610df39190611731565b9050610dff818361152b565b610e09908561160c565b925081600f6000828254610e1d919061152b565b90915550610e3790508630610e32848661152b565b61118f565b50505b6109b484848361118f565b610e5083838361118f565b505050565b6005546001600160a01b036101009091041633146106135760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105d7565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6013805460ff191660011790556000610f29600283611731565b90506000610f37828461160c565b905047610f4383610fad565b6000610f4f824761160c565b9050610f5b838261127b565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506013805460ff19169055505050565b6013805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610fef57610fef611753565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110919190611769565b816001815181106110a4576110a4611753565b60200260200101906001600160a01b031690816001600160a01b0316815250506110ef307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461081c565b6001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d1663791ac947836000843061112f4261012c61152b565b6040518663ffffffff1660e01b815260040161114f959493929190611786565b600060405180830381600087803b15801561116957600080fd5b505af115801561117d573d6000803e3d6000fd5b50506013805460ff1916905550505050565b6001600160a01b0383166111b55760405162461bcd60e51b81526004016105d79061153e565b6001600160a01b0382166111db5760405162461bcd60e51b81526004016105d790611583565b6001600160a01b038316600090815260208190526040902054818110156112145760405162461bcd60e51b81526004016105d7906115c6565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b6013805460ff191660011790556112b3307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461081c565b60405163f305d71960e01b815230600482015260248101839052600060448201819052606482015261dead60848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03169063f305d71990839060c40160606040518083038185885af115801561133d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061136291906117f7565b50506013805460ff19169055505050565b600060208083528351808285015260005b818110156113a057858101830151858201604001528201611384565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461081957600080fd5b600080604083850312156113e957600080fd5b82356113f4816113c1565b946020939093013593505050565b60008060006060848603121561141757600080fd5b8335611422816113c1565b92506020840135611432816113c1565b929592945050506040919091013590565b60006020828403121561145557600080fd5b8135611460816113c1565b9392505050565b60006020828403121561147957600080fd5b5035919050565b6000806040838503121561149357600080fd5b50508035926020909101359150565b600080604083850312156114b557600080fd5b82356114c0816113c1565b915060208301356114d0816113c1565b809150509250929050565b600181811c908216806114ef57607f821691505b60208210810361150f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561053957610539611515565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b8181038181111561053957610539611515565b600181815b8085111561165a57816000190482111561164057611640611515565b8085161561164d57918102915b93841c9390800290611624565b509250929050565b60008261167157506001610539565b8161167e57506000610539565b8160018114611694576002811461169e576116ba565b6001915050610539565b60ff8411156116af576116af611515565b50506001821b610539565b5060208310610133831016604e8410600b84101617156116dd575081810a610539565b6116e7838361161f565b80600019048211156116fb576116fb611515565b029392505050565b600061146060ff841683611662565b600081600019048311821515161561172c5761172c611515565b500290565b60008261174e57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561177b57600080fd5b8151611460816113c1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117d65784516001600160a01b0316835293830193918301916001016117b1565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561180c57600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122043595c83c73ac41206e620c7636ae5f8a001fe3060cc09131be45260b8d2740264736f6c63430008100033

Deployed Bytecode Sourcemap

602:6235:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13031:100:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13954:233;;;;;;;;;;-1:-1:-1;13954:233:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:2;;1181:22;1163:41;;1151:2;1136:18;13954:233:0;1023:187:2;1075:51:1;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1405:32:2;;;1387:51;;1375:2;1360:18;1075:51:1;1215:229:2;13413:108:0;;;;;;;;;;-1:-1:-1;13502:12:0;;13413:108;;;1595:25:2;;;1583:2;1568:18;13413:108:0;1449:177:2;14192:286:0;;;;;;;;;;-1:-1:-1;14192:286:0;;;;;:::i;:::-;;:::i;13310:98::-;;;;;;;;;;-1:-1:-1;13392:9:0;;13310:98;;13392:9;;;;2234:36:2;;2222:2;2207:18;13310:98:0;2092:184:2;14977:262:0;;;;;;;;;;-1:-1:-1;14977:262:0;;;;;:::i;:::-;;:::i;1132:38:1:-;;;;;;;;;;;;;;;833:34;;;;;;;;;;;;;;;;2328:164;;;;;;;;;;;;;:::i;:::-;;13136:169:0;;;;;;;;;;-1:-1:-1;13136:169:0;;;;;:::i;:::-;-1:-1:-1;;;;;13280:18:0;13250:7;13280:18;;;;;;;;;;;;13136:169;9756:101;;;;;;;;;;;;;:::i;913:75:1:-;;;;;;;;;;-1:-1:-1;913:75:1;;;;-1:-1:-1;;;;;913:75:1;;;6610:190;;;;;;;;;;-1:-1:-1;6610:190:1;;;;;:::i;:::-;;:::i;9532:85:0:-;;;;;;;;;;-1:-1:-1;9604:6:0;;;;;-1:-1:-1;;;;;9604:6:0;9532:85;;12922:104;;;;;;;;;;;;;:::i;14483:489::-;;;;;;;;;;-1:-1:-1;14483:489:0;;;;;:::i;:::-;;:::i;13724:225::-;;;;;;;;;;-1:-1:-1;13724:225:0;;;;;:::i;:::-;;:::i;873:34:1:-;;;;;;;;;;;;;;;;6222:382;;;;;;;;;;-1:-1:-1;6222:382:1;;;;;:::i;:::-;;:::i;6041:175::-;;;;;;;;;;-1:-1:-1;6041:175:1;;;;;:::i;:::-;;:::i;13526:193:0:-;;;;;;;;;;-1:-1:-1;13526:193:0;;;;;:::i;:::-;;:::i;9863:198::-;;;;;;;;;;-1:-1:-1;9863:198:0;;;;;:::i;:::-;;:::i;793:34:1:-;;;;;;;;;;;;;;;;13031:100:0;13087:13;13119:5;13112:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13031:100;:::o;13954:233::-;14071:4;14107:10;14127:32;14107:10;14143:7;14152:6;14127:8;:32::i;:::-;14176:4;14169:11;;;13954:233;;;;;:::o;14192:286::-;14321:4;14355:10;14375:38;14391:4;14355:10;14406:6;14375:15;:38::i;:::-;14423:27;14433:4;14439:2;14443:6;14423:9;:27::i;:::-;-1:-1:-1;14467:4:0;;14192:286;-1:-1:-1;;;;14192:286:0:o;14977:262::-;15091:4;15127:10;15147:64;15127:10;15163:7;15200:10;15172:25;15127:10;15163:7;15172:9;:25::i;:::-;:38;;;;:::i;:::-;15147:8;:64::i;2328:164:1:-;9495:13:0;:11;:13::i;:::-;2385:4:1::1;::::0;::::1;::::0;::::1;;;2384:5;2376:37;;;::::0;-1:-1:-1;;;2376:37:1;;4421:2:2;2376:37:1::1;::::0;::::1;4403:21:2::0;4460:2;4440:18;;;4433:30;-1:-1:-1;;;4479:18:2;;;4472:49;4538:18;;2376:37:1::1;;;;;;;;;2423:4;:11:::0;;-1:-1:-1;;2423:11:1::1;;;::::0;;2462:23:::1;:15;2480:5;2462:23;:::i;:::-;2444:15;:41:::0;2328:164::o;9756:101:0:-;9495:13;:11;:13::i;:::-;9820:30:::1;9847:1;9820:18;:30::i;:::-;9756:101::o:0;6610:190:1:-;6717:4;9495:13:0;:11;:13::i;:::-;-1:-1:-1;6737:15:1::1;:34:::0;6789:4:::1;::::0;6610:190::o;12922:104:0:-;12980:13;13012:7;13005:14;;;;;:::i;14483:489::-;14602:4;14638:10;14602:4;14685:25;14638:10;14702:7;14685:9;:25::i;:::-;14658:52;;14761:15;14741:16;:35;;14720:119;;;;-1:-1:-1;;;14720:119:0;;4769:2:2;14720:119:0;;;4751:21:2;4808:2;4788:18;;;4781:30;4847:34;4827:18;;;4820:62;-1:-1:-1;;;4898:18:2;;;4891:35;4943:19;;14720:119:0;4567:401:2;14720:119:0;14873:60;14882:5;14889:7;14917:15;14898:16;:34;14873:8;:60::i;13724:225::-;13837:4;13873:10;13893:28;13873:10;13910:2;13914:6;13893:9;:28::i;6222:382:1:-;6367:4;9495:13:0;:11;:13::i;:::-;6434:3:1::1;6396:33;6413:16:::0;6396;:33:::1;:::i;:::-;6395:42;;6387:100;;;::::0;-1:-1:-1;;;6387:100:1;;5175:2:2;6387:100:1::1;::::0;::::1;5157:21:2::0;5214:2;5194:18;;;5187:30;5253:34;5233:18;;;5226:62;-1:-1:-1;;;5304:18:2;;;5297:43;5357:19;;6387:100:1::1;4973:409:2::0;6387:100:1::1;-1:-1:-1::0;6497:15:1::1;:34:::0;;;;6541:15:::1;:34:::0;6593:4:::1;::::0;6222:382::o;6041:175::-;6141:4;9495:13:0;:11;:13::i;:::-;-1:-1:-1;6161:15:1::1;:27:::0;;-1:-1:-1;;;;;6161:27:1;::::1;-1:-1:-1::0;;;;;;6161:27:1;;::::1;;::::0;;;6041:175;;;:::o;13526:193:0:-;-1:-1:-1;;;;;13685:18:0;;;13655:7;13685:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13526:193::o;9863:198::-;9495:13;:11;:13::i;:::-;-1:-1:-1;;;;;9951:22:0;::::1;9943:73;;;::::0;-1:-1:-1;;;9943:73:0;;5589:2:2;9943:73:0::1;::::0;::::1;5571:21:2::0;5628:2;5608:18;;;5601:30;5667:34;5647:18;;;5640:62;-1:-1:-1;;;5718:18:2;;;5711:36;5764:19;;9943:73:0::1;5387:402:2::0;9943:73:0::1;10026:28;10045:8;10026:18;:28::i;:::-;9863:198:::0;:::o;16211:370::-;-1:-1:-1;;;;;16342:19:0;;16334:68;;;;-1:-1:-1;;;16334:68:0;;5996:2:2;16334:68:0;;;5978:21:2;6035:2;6015:18;;;6008:30;6074:34;6054:18;;;6047:62;-1:-1:-1;;;6125:18:2;;;6118:34;6169:19;;16334:68:0;5794:400:2;16334:68:0;-1:-1:-1;;;;;16420:21:0;;16412:68;;;;-1:-1:-1;;;16412:68:0;;6401:2:2;16412:68:0;;;6383:21:2;6440:2;6420:18;;;6413:30;6479:34;6459:18;;;6452:62;-1:-1:-1;;;6530:18:2;;;6523:32;6572:19;;16412:68:0;6199:398:2;16412:68:0;-1:-1:-1;;;;;16491:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16542:32;;1595:25:2;;;16542:32:0;;1568:18:2;16542:32:0;;;;;;;16211:370;;;:::o;16586:487::-;16716:24;16743:25;16753:5;16760:7;16743:9;:25::i;:::-;16716:52;;-1:-1:-1;;16782:16:0;:37;16778:289;;16880:6;16860:16;:26;;16835:114;;;;-1:-1:-1;;;16835:114:0;;6804:2:2;16835:114:0;;;6786:21:2;6843:2;6823:18;;;6816:30;6882:31;6862:18;;;6855:59;6931:18;;16835:114:0;6602:353:2;16835:114:0;16991:51;17000:5;17007:7;17035:6;17016:16;:25;16991:8;:51::i;:::-;16706:367;16586:487;;;:::o;2498:2184:1:-;-1:-1:-1;;;;;2595:18:1;;2587:68;;;;-1:-1:-1;;;2587:68:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;2673:16:1;;2665:64;;;;-1:-1:-1;;;2665:64:1;;;;;;;:::i;:::-;2766:6;2747:15;2757:4;-1:-1:-1;;;;;13280:18:0;13250:7;13280:18;;;;;;;;;;;;13136:169;2747:15:1;:25;;2739:76;;;;-1:-1:-1;;;2739:76:1;;;;;;;:::i;:::-;9604:6:0;;-1:-1:-1;;;;;2829:15:1;;;9604:6:0;;;;;2829:15:1;;;;:32;;-1:-1:-1;9604:6:0;;-1:-1:-1;;;;;2848:13:1;;;9604:6:0;;;;;2848:13:1;;2829:32;2826:97;;;2884:4;;;;;;;2876:36;;;;-1:-1:-1;;;2876:36:1;;8379:2:2;2876:36:1;;;8361:21:2;8418:2;8398:18;;;8391:30;-1:-1:-1;;;8437:18:2;;;8430:50;8497:18;;2876:36:1;8177:344:2;2876:36:1;2946:13;-1:-1:-1;;;;;2938:21:1;:4;-1:-1:-1;;;;;2938:21:1;;:44;;;;2969:13;-1:-1:-1;;;;;2963:19:1;:2;-1:-1:-1;;;;;2963:19:1;;2938:44;2937:67;;;;-1:-1:-1;2988:16:1;;;;2987:17;2937:67;2933:1743;;;3032:13;-1:-1:-1;;;;;3024:21:1;:4;-1:-1:-1;;;;;3024:21:1;;3020:675;;3127:18;;3118:4;3065:32;13280:18:0;;;;;;;;;;;3065:32:1;;3100:45;;;:::i;:::-;3065:80;;3195:30;;3167:24;:58;3163:152;;3249:47;3265:30;;3249:15;:47::i;:::-;3360:24;;3337:18;;3336:48;3332:349;;3408:43;3426:24;;3408:17;:43::i;:::-;3495:24;;3473:18;;:46;;;;;;;:::i;:::-;;;;-1:-1:-1;;3561:15:1;;3553:52;;3541:9;;-1:-1:-1;;;;;3561:15:1;;3583:21;3553:52;;;;;3541:9;3553:52;3541:9;3553:52;3583:21;3561:15;3553:52;;;;;;;3541:64;;3635:4;3627:35;;;;-1:-1:-1;;;3627:35:1;;8861:2:2;3627:35:1;;;8843:21:2;8900:2;8880:18;;;8873:30;-1:-1:-1;;;8919:18:2;;;8912:48;8977:18;;3627:35:1;8659:342:2;3627:35:1;3386:295;3332:349;3047:648;3020:675;-1:-1:-1;;;;;3749:24:1;;3709:22;3749:24;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;3777:22:1;;;;;;:18;:22;;;;;;;;3749:50;3745:793;;;-1:-1:-1;3836:6:1;3745:793;;;3905:13;-1:-1:-1;;;;;3897:21:1;:4;-1:-1:-1;;;;;3897:21:1;;:60;;;;;3941:15;3923;;:33;3897:60;3894:254;;;4049:15;;4036:9;;4067:3;;4049:15;4031:14;;4036:9;;4031:2;:14;:::i;:::-;4021:7;;:24;;;;:::i;:::-;4020:44;;;;:::i;:::-;:50;;;;:::i;:::-;-1:-1:-1;;;;;13280:18:0;;13250:7;13280:18;;;;;;;;;;;3993:22:1;;:6;:22;:::i;:::-;3992:78;;3984:145;;;;-1:-1:-1;;;3984:145:1;;10986:2:2;3984:145:1;;;10968:21:2;11025:2;11005:18;;;10998:30;11064:34;11044:18;;;11037:62;-1:-1:-1;;;11115:18:2;;;11108:52;11177:19;;3984:145:1;10784:418:2;3984:145:1;4166:22;4221:3;4202:15;;4193:6;:24;;;;:::i;:::-;4192:32;;;;:::i;:::-;4166:59;;4243:22;4298:3;4279:15;;4270:6;:24;;;;:::i;:::-;4269:32;;;;:::i;:::-;4243:59;-1:-1:-1;4347:31:1;4243:59;4347:14;:31;:::i;:::-;4337:42;;:6;:42;:::i;:::-;4320:59;;4419:14;4397:18;;:36;;;;;;;:::i;:::-;;;;-1:-1:-1;4452:71:1;;-1:-1:-1;4468:4:1;4482;4490:31;4507:14;4490;:31;:::i;:::-;4452:15;:71::i;:::-;3876:662;;3745:793;4551:41;4567:4;4573:2;4577:14;4551:15;:41::i;2933:1743::-;4632:33;4648:4;4654:2;4658:6;4632:15;:33::i;:::-;2498:2184;;;:::o;9622:128:0:-;9604:6;;-1:-1:-1;;;;;9604:6:0;;;;;9696:10;9685:21;9677:66;;;;-1:-1:-1;;;9677:66:0;;11409:2:2;9677:66:0;;;11391:21:2;;;11428:18;;;11421:30;11487:34;11467:18;;;11460:62;11539:18;;9677:66:0;11207:356:2;10067:187:0;10159:6;;;-1:-1:-1;;;;;10175:17:0;;;10159:6;10175:17;;;-1:-1:-1;;;;;;10175:17:0;;;;;;10207:40;;10159:6;;;;;;;;10207:40;;10140:16;;10207:40;10130:124;10067:187;:::o;4688:461:1:-;1653:16;:23;;-1:-1:-1;;1653:23:1;1672:4;1653:23;;;:16;4789:24:::1;4812:1;4789:20:::0;:24:::1;:::i;:::-;4773:41:::0;-1:-1:-1;4824:17:1::1;4845:27;4773:41:::0;4845:20;:27:::1;:::i;:::-;4824:49:::0;-1:-1:-1;4909:21:1::1;4941:23;4959:4:::0;4941:17:::1;:23::i;:::-;4975:18;4997:38;5021:14:::0;4997:21:::1;:38;:::i;:::-;4975:61;;5047:36;5061:9;5072:10;5047:13;:36::i;:::-;5099:43;::::0;;11770:25:2;;;11826:2;11811:18;;11804:34;;;11854:18;;;11847:34;;;5099:43:1::1;::::0;11758:2:2;11743:18;5099:43:1::1;;;;;;;-1:-1:-1::0;;1697:16:1;:24;;-1:-1:-1;;1697:24:1;;;-1:-1:-1;;;4688:461:1:o;5155:482::-;1653:16;:23;;-1:-1:-1;;1653:23:1;1672:4;1653:23;;;5257:16:::1;::::0;;5271:1:::1;5257:16:::0;;;;;::::1;::::0;;-1:-1:-1;;5257:16:1::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;5257:16:1::1;5233:40;;5301:4;5283;5288:1;5283:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;5283:23:1::1;;;-1:-1:-1::0;;;;;5283:23:1::1;;;::::0;::::1;5326:15;-1:-1:-1::0;;;;;5326:20:1::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5316:4;5321:1;5316:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1::0;;;;;5316:32:1::1;;;-1:-1:-1::0;;;;;5316:32:1::1;;;::::0;::::1;5359:62;5376:4;5391:15;5409:11;5359:8;:62::i;:::-;-1:-1:-1::0;;;;;5432:15:1::1;:66;;5512:11:::0;5537:1:::1;5552:4:::0;5578::::1;5598:21;:15;5616:3;5598:21;:::i;:::-;5432:198;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;1697:16:1;:24;;-1:-1:-1;;1697:24:1;;;-1:-1:-1;;;;5155:482:1:o;17079:592:0:-;-1:-1:-1;;;;;17205:18:0;;17197:68;;;;-1:-1:-1;;;17197:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17283:16:0;;17275:64;;;;-1:-1:-1;;;17275:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17372:15:0;;17350:19;17372:15;;;;;;;;;;;17418:21;;;;17397:106;;;;-1:-1:-1;;;17397:106:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17537:15:0;;;:9;:15;;;;;;;;;;;17555:20;;;17537:38;;17589:13;;;;;;;;;;:23;;;;;;17638:26;;1595:25:2;;;17589:13:0;;17638:26;;1568:18:2;17638:26:0;;;;;;;17187:484;17079:592;;;:::o;5643:392:1:-;1653:16;:23;;-1:-1:-1;;1653:23:1;1672:4;1653:23;;;5756:62:::1;5773:4;5788:15;5806:11:::0;5756:8:::1;:62::i;:::-;5829:199;::::0;-1:-1:-1;;;5829:199:1;;5900:4:::1;5829:199;::::0;::::1;13738:34:2::0;13788:18;;;13781:34;;;5944:1:1::1;13831:18:2::0;;;13824:34;;;13874:18;;;13867:34;5982:6:1::1;13917:19:2::0;;;13910:44;6003:15:1::1;13970:19:2::0;;;13963:35;5829:15:1::1;-1:-1:-1::0;;;;;5829:31:1::1;::::0;::::1;::::0;5868:9;;13672:19:2;;5829:199:1::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;1697:16:1;:24;;-1:-1:-1;;1697:24:1;;;-1:-1:-1;;;5643:392:1:o;14:548:2:-;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:2;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:2:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:2;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:2;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;:::-;2725:5;2489:247;-1:-1:-1;;;2489:247:2:o;2741:180::-;2800:6;2853:2;2841:9;2832:7;2828:23;2824:32;2821:52;;;2869:1;2866;2859:12;2821:52;-1:-1:-1;2892:23:2;;2741:180;-1:-1:-1;2741:180:2:o;2926:248::-;2994:6;3002;3055:2;3043:9;3034:7;3030:23;3026:32;3023:52;;;3071:1;3068;3061:12;3023:52;-1:-1:-1;;3094:23:2;;;3164:2;3149:18;;;3136:32;;-1:-1:-1;2926:248:2:o;3179:388::-;3247:6;3255;3308:2;3296:9;3287:7;3283:23;3279:32;3276:52;;;3324:1;3321;3314:12;3276:52;3363:9;3350:23;3382:31;3407:5;3382:31;:::i;:::-;3432:5;-1:-1:-1;3489:2:2;3474:18;;3461:32;3502:33;3461:32;3502:33;:::i;:::-;3554:7;3544:17;;;3179:388;;;;;:::o;3572:380::-;3651:1;3647:12;;;;3694;;;3715:61;;3769:4;3761:6;3757:17;3747:27;;3715:61;3822:2;3814:6;3811:14;3791:18;3788:38;3785:161;;3868:10;3863:3;3859:20;3856:1;3849:31;3903:4;3900:1;3893:15;3931:4;3928:1;3921:15;3785:161;;3572:380;;;:::o;3957:127::-;4018:10;4013:3;4009:20;4006:1;3999:31;4049:4;4046:1;4039:15;4073:4;4070:1;4063:15;4089:125;4154:9;;;4175:10;;;4172:36;;;4188:18;;:::i;6960:401::-;7162:2;7144:21;;;7201:2;7181:18;;;7174:30;7240:34;7235:2;7220:18;;7213:62;-1:-1:-1;;;7306:2:2;7291:18;;7284:35;7351:3;7336:19;;6960:401::o;7366:399::-;7568:2;7550:21;;;7607:2;7587:18;;;7580:30;7646:34;7641:2;7626:18;;7619:62;-1:-1:-1;;;7712:2:2;7697:18;;7690:33;7755:3;7740:19;;7366:399::o;7770:402::-;7972:2;7954:21;;;8011:2;7991:18;;;7984:30;8050:34;8045:2;8030:18;;8023:62;-1:-1:-1;;;8116:2:2;8101:18;;8094:36;8162:3;8147:19;;7770:402::o;8526:128::-;8593:9;;;8614:11;;;8611:37;;;8628:18;;:::i;9006:422::-;9095:1;9138:5;9095:1;9152:270;9173:7;9163:8;9160:21;9152:270;;;9232:4;9228:1;9224:6;9220:17;9214:4;9211:27;9208:53;;;9241:18;;:::i;:::-;9291:7;9281:8;9277:22;9274:55;;;9311:16;;;;9274:55;9390:22;;;;9350:15;;;;9152:270;;;9156:3;9006:422;;;;;:::o;9433:806::-;9482:5;9512:8;9502:80;;-1:-1:-1;9553:1:2;9567:5;;9502:80;9601:4;9591:76;;-1:-1:-1;9638:1:2;9652:5;;9591:76;9683:4;9701:1;9696:59;;;;9769:1;9764:130;;;;9676:218;;9696:59;9726:1;9717:10;;9740:5;;;9764:130;9801:3;9791:8;9788:17;9785:43;;;9808:18;;:::i;:::-;-1:-1:-1;;9864:1:2;9850:16;;9879:5;;9676:218;;9978:2;9968:8;9965:16;9959:3;9953:4;9950:13;9946:36;9940:2;9930:8;9927:16;9922:2;9916:4;9913:12;9909:35;9906:77;9903:159;;;-1:-1:-1;10015:19:2;;;10047:5;;9903:159;10094:34;10119:8;10113:4;10094:34;:::i;:::-;10164:6;10160:1;10156:6;10152:19;10143:7;10140:32;10137:58;;;10175:18;;:::i;:::-;10213:20;;9433:806;-1:-1:-1;;;9433:806:2:o;10244:140::-;10302:5;10331:47;10372:4;10362:8;10358:19;10352:4;10331:47;:::i;10389:168::-;10429:7;10495:1;10491;10487:6;10483:14;10480:1;10477:21;10472:1;10465:9;10458:17;10454:45;10451:71;;;10502:18;;:::i;:::-;-1:-1:-1;10542:9:2;;10389:168::o;10562:217::-;10602:1;10628;10618:132;;10672:10;10667:3;10663:20;10660:1;10653:31;10707:4;10704:1;10697:15;10735:4;10732:1;10725:15;10618:132;-1:-1:-1;10764:9:2;;10562:217::o;12024:127::-;12085:10;12080:3;12076:20;12073:1;12066:31;12116:4;12113:1;12106:15;12140:4;12137:1;12130:15;12156:251;12226:6;12279:2;12267:9;12258:7;12254:23;12250:32;12247:52;;;12295:1;12292;12285:12;12247:52;12327:9;12321:16;12346:31;12371:5;12346:31;:::i;12412:980::-;12674:4;12722:3;12711:9;12707:19;12753:6;12742:9;12735:25;12779:2;12817:6;12812:2;12801:9;12797:18;12790:34;12860:3;12855:2;12844:9;12840:18;12833:31;12884:6;12919;12913:13;12950:6;12942;12935:22;12988:3;12977:9;12973:19;12966:26;;13027:2;13019:6;13015:15;13001:29;;13048:1;13058:195;13072:6;13069:1;13066:13;13058:195;;;13137:13;;-1:-1:-1;;;;;13133:39:2;13121:52;;13228:15;;;;13193:12;;;;13169:1;13087:9;13058:195;;;-1:-1:-1;;;;;;;13309:32:2;;;;13304:2;13289:18;;13282:60;-1:-1:-1;;;13373:3:2;13358:19;13351:35;13270:3;12412:980;-1:-1:-1;;;12412:980:2:o;14009:306::-;14097:6;14105;14113;14166:2;14154:9;14145:7;14141:23;14137:32;14134:52;;;14182:1;14179;14172:12;14134:52;14211:9;14205:16;14195:26;;14261:2;14250:9;14246:18;14240:25;14230:35;;14305:2;14294:9;14290:18;14284:25;14274:35;;14009:306;;;;;:::o

Swarm Source

ipfs://43595c83c73ac41206e620c7636ae5f8a001fe3060cc09131be45260b8d27402
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.