ETH Price: $2,368.26 (-3.86%)
Gas: 5.51 Gwei

Token

Bananya (BANANYA)
 

Overview

Max Total Supply

1,000,000,000 BANANYA

Holders

122

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,002,223.46681285115249958 BANANYA

Value
$0.00
0x2f3633184849D57169189EaC6768029aea9a70d6
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:
Bananya

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-09-18
*/

// SPDX-License-Identifier: MIT
/** 
 * https://bananya.vip/
 * https://t.me/BananyaPortal
 * https://twitter.com/BananyaERC20
 */
pragma solidity >=0.8.19;

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

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

contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    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 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
    );
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

interface IERC20Errors {

    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
    error ERC20InvalidSender(address sender);
    error ERC20InvalidReceiver(address receiver);
    error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
    error ERC20InvalidApprover(address approver);
    error ERC20InvalidSpender(address spender);

}

abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {
    mapping(address account => uint256) private _balances;

    mapping(address account => mapping(address spender => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    error ERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual returns (string memory) {
        return _name;
    }

    function symbol() public view virtual returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual returns (uint256) {
        return _totalSupply;
    }

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

    function transfer(address to, uint256 value) public virtual returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, value);
        return true;
    }

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

    function approve(address spender, uint256 value) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, value);
        return true;
    }

    function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, value);
        _transfer(from, to, value);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 requestedDecrease) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance < requestedDecrease) {
            revert ERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);
        }
        unchecked {
            _approve(owner, spender, currentAllowance - requestedDecrease);
        }

        return true;
    }

    function _transfer(address from, address to, uint256 value) internal {
        if (from == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        if (to == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _update(from, to, value);
    }

    function _update(address from, address to, uint256 value) internal virtual {
        if (from == address(0)) {
            // Overflow check required: The rest of the code assumes that totalSupply never overflows
            _totalSupply += value;
        } else {
            uint256 fromBalance = _balances[from];
            if (fromBalance < value) {
                revert ERC20InsufficientBalance(from, fromBalance, value);
            }
            unchecked {
                // Overflow not possible: value <= fromBalance <= totalSupply.
                _balances[from] = fromBalance - value;
            }
        }

        if (to == address(0)) {
            unchecked {
                // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.
                _totalSupply -= value;
            }
        } else {
            unchecked {
                // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.
                _balances[to] += value;
            }
        }

        emit Transfer(from, to, value);
    }

    function _mint(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _update(address(0), account, value);
    }

    function _burn(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        _update(account, address(0), value);
    }

    function _approve(address owner, address spender, uint256 value) internal {
        _approve(owner, spender, value, true);
    }

    function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {
        if (owner == address(0)) {
            revert ERC20InvalidApprover(address(0));
        }
        if (spender == address(0)) {
            revert ERC20InvalidSpender(address(0));
        }
        _allowances[owner][spender] = value;
        if (emitEvent) {
            emit Approval(owner, spender, value);
        }
    }

    function _spendAllowance(address owner, address spender, uint256 value) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            if (currentAllowance < value) {
                revert ERC20InsufficientAllowance(spender, currentAllowance, value);
            }
            unchecked {
                _approve(owner, spender, currentAllowance - value, false);
            }
        }
    }
}

library SafeMath {
    function tryAdd(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IDexFactory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    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(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    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,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 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 (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 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 (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    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 (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(
        address to
    ) external returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IDexRouter02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract Bananya is ERC20, Ownable {
    using SafeMath for uint256;

    IDexRouter02 private immutable dxRoutr;
    address public immutable dxPr;

    bool private onSwpBck;

    address public mktWlt;

    uint256 private mnSwpbckLmt;
    uint256 private mxSwpbckLmt;

    uint256 public txLmt;
    uint256 public wltLmt;

    uint256 public feeOnBuys;
    uint256 public feeOnSells;

    bool public lmtsInEfct = true;
    bool public trdOpn = false;

    mapping(address => bool) private feeExmpt;
    mapping(address => bool) private wltLmtExmpt;

    mapping(address => bool) public dxPrs;

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event TaxesSwaped(uint256 tokensSwapped, uint256 ethReceived);

    constructor() ERC20("Bananya", "BANANYA") {
        IDexRouter02 _dxRoutr = IDexRouter02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dxRoutr = _dxRoutr;

        dxPr = IDexFactory(_dxRoutr.factory()).createPair(
            address(this),
            _dxRoutr.WETH()
        );
        _setDexPair(address(dxPr), true);

        uint256 totalSupply = 1_000_000_000 * 1e18;

        txLmt = (totalSupply) / 100;
        wltLmt = (totalSupply) / 50;

        feeOnBuys = 25;
        feeOnSells = 50;

        mnSwpbckLmt = (totalSupply * 5) / 10000;
        mxSwpbckLmt = (totalSupply * 5) / 100;

        mktWlt = address(0xBf4eFF671b0d5E4AD5b563f4b368A39ec8E26210);

        feeExmpt[msg.sender] = true;
        feeExmpt[mktWlt] = true;
        feeExmpt[address(this)] = true;
        feeExmpt[address(0xdead)] = true;

        wltLmtExmpt[owner()] = true;
        wltLmtExmpt[address(this)] = true;
        wltLmtExmpt[address(0xdead)] = true;
        wltLmtExmpt[mktWlt] = true;

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function bananyaLaunch() external onlyOwner {
        trdOpn = true;
    }

    function setFeeOnBuys(uint256 _feeOnBuys) external onlyOwner {
        feeOnBuys = _feeOnBuys;
    }

    function setFeeOnSells(uint256 _feeOnSells) external onlyOwner {
        feeOnSells = _feeOnSells;
    }

    function rmvLmts() external onlyOwner {
        lmtsInEfct = false;
    }

    function setTxLmt(uint256 _txLmt) external onlyOwner {
        txLmt = _txLmt;
    }

    function setWltLmt(uint256 _wltLmt) external onlyOwner {
        wltLmt = _wltLmt;
    }

    function _setDexPair(address pair, bool value) private {
        dxPrs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function triggerContractSell() private {
        uint256 tokenBalance = balanceOf(address(this));
        bool success;

        if (tokenBalance == 0) {
            return;
        }

        if (tokenBalance > mxSwpbckLmt) {
            tokenBalance = mxSwpbckLmt;
        }

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dxRoutr.WETH();

        _approve(address(this), address(dxRoutr), tokenBalance);

        // make the swap
        dxRoutr.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenBalance,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );

        emit TaxesSwaped(tokenBalance, address(this).balance);

        (success, ) = address(mktWlt).call{
            value: address(this).balance
        }("");
    }

    function _update(
        address from,
        address to,
        uint256 amount
    ) internal override {

        if (amount == 0) {
            super._update(from, to, 0);
            return;
        }

        if (lmtsInEfct) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !onSwpBck
            ) {
                if (!trdOpn) {
                    require(
                        feeExmpt[from] || feeExmpt[to],
                        "Trading is not active."
                    );
                }
                //when buy
                if (dxPrs[from] && !wltLmtExmpt[to]) {
                    require(
                        amount <= txLmt,
                        "Buy transfer amount exceeds the txLmt."
                    );
                    require(
                        amount + balanceOf(to) <= wltLmt,
                        "Max wallet exceeded"
                    );
                }
                //when sell
                else if (dxPrs[to] && !wltLmtExmpt[from]) {
                    require(
                        amount <= txLmt,
                        "Sell transfer amount exceeds the txLmt."
                    );
                } else if (!wltLmtExmpt[to]) {
                    require(
                        amount + balanceOf(to) <= wltLmt,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= mnSwpbckLmt;

        if (
            canSwap &&
            !onSwpBck &&
            !dxPrs[from] &&
            !feeExmpt[from] &&
            !feeExmpt[to]
        ) {
            onSwpBck = true;

            triggerContractSell();

            onSwpBck = false;
        }

        bool takeFee = !onSwpBck;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (feeExmpt[from] || feeExmpt[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // on sell
            if (dxPrs[to] && feeOnSells > 0) {
                fees = amount.mul(feeOnSells).div(100);
            }
            // on buy
            else if (dxPrs[from] && feeOnBuys > 0) {
                fees = amount.mul(feeOnBuys).div(100);
            }

            if (fees > 0) {
                super._update(from, address(this), fees);
            }

            amount -= fees;
        }

        super._update(from, to, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"name":"ERC20FailedDecreaseAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"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":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"}],"name":"TaxesSwaped","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":"value","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":"bananyaLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dxPr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"dxPrs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnBuys","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnSells","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lmtsInEfct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mktWlt","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"rmvLmts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feeOnBuys","type":"uint256"}],"name":"setFeeOnBuys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feeOnSells","type":"uint256"}],"name":"setFeeOnSells","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_txLmt","type":"uint256"}],"name":"setTxLmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_wltLmt","type":"uint256"}],"name":"setWltLmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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":"value","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":"trdOpn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"txLmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wltLmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600d805461ffff191660011790553480156200001f57600080fd5b506040518060400160405280600781526020016642616e616e796160c81b8152506040518060400160405280600781526020016642414e414e594160c81b815250816003908162000071919062000f72565b50600462000080828262000f72565b5050506000620000956200041d60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa1580156200013a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016091906200103e565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d491906200103e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000222573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024891906200103e565b6001600160a01b031660a08190526200026390600162000421565b6b033b2e3c9fd0803ce80000006200027d60648262001086565b6009556200028d60328262001086565b600a556019600b556032600c55612710620002aa826005620010a9565b620002b6919062001086565b6007556064620002c8826005620010a9565b620002d4919062001086565b600855600680546001600160a01b03191673bf4eff671b0d5e4ad5b563f4b368a39ec8e26210178155336000908152600e6020526040808220805460ff19908116600190811790925593546001600160a01b031683528183208054851682179055308352908220805484168217905561dead82527ff77e91909e61d18f67b875b2bfcae1f683a8d555e55382e3a6b082e2c59ea57a80549093168117909255600f90620003896005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600f9093528183208054851660019081179091557f99629f56119585bf27511b6b7d295dffb54757453fcc3dabcf51d92028301f10805486168217905560065490911683529120805490921617905562000415338262000475565b505062001178565b3390565b6001600160a01b038216600081815260106020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038216620004a55760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b620004b360008383620004b7565b5050565b80600003620004d357620004ce8383600062000a5f565b505050565b600d5460ff16156200084e576005546001600160a01b038481169116148015906200050c57506005546001600160a01b03838116911614155b80156200052157506001600160a01b03821615155b80156200053957506001600160a01b03821661dead14155b8015620005505750600554600160a01b900460ff16155b156200084e57600d54610100900460ff16620005f4576001600160a01b0383166000908152600e602052604090205460ff1680620005a657506001600160a01b0382166000908152600e602052604090205460ff165b620005f45760405162461bcd60e51b815260206004820152601660248201527f54726164696e67206973206e6f74206163746976652e0000000000000000000060448201526064016200049c565b6001600160a01b03831660009081526010602052604090205460ff1680156200063657506001600160a01b0382166000908152600f602052604090205460ff16155b1562000713576009548111156200069f5760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152653a3c2636ba1760d11b60648201526084016200049c565b600a546001600160a01b038316600090815260208190526040902054620006c79083620010c3565b11156200070d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016200049c565b6200084e565b6001600160a01b03821660009081526010602052604090205460ff1680156200075557506001600160a01b0383166000908152600f602052604090205460ff16155b15620007bf576009548111156200070d5760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015266103a3c2636ba1760c91b60648201526084016200049c565b6001600160a01b0382166000908152600f602052604090205460ff166200084e57600a546001600160a01b038316600090815260208190526040902054620008089083620010c3565b11156200084e5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016200049c565b30600090815260208190526040902054600754811080159081906200087d5750600554600160a01b900460ff16155b8015620008a357506001600160a01b03851660009081526010602052604090205460ff16155b8015620008c957506001600160a01b0385166000908152600e602052604090205460ff16155b8015620008ef57506001600160a01b0384166000908152600e602052604090205460ff16155b1562000920576005805460ff60a01b1916600160a01b1790556200091262000b92565b6005805460ff60a01b191690555b6005546001600160a01b0386166000908152600e602052604090205460ff600160a01b9092048216159116806200096f57506001600160a01b0385166000908152600e602052604090205460ff165b1562000979575060005b6000811562000a49576001600160a01b03861660009081526010602052604090205460ff168015620009ad57506000600c54115b15620009da57600c54620009d290606490620009cb90889062000dcc565b9062000de3565b905062000a26565b6001600160a01b03871660009081526010602052604090205460ff16801562000a0557506000600b54115b1562000a2657600b5462000a2390606490620009cb90889062000dcc565b90505b801562000a3a5762000a3a87308362000a5f565b62000a468186620010d9565b94505b62000a5687878762000a5f565b50505050505050565b6001600160a01b03831662000a8e57806002600082825462000a829190620010c3565b9091555062000b029050565b6001600160a01b0383166000908152602081905260409020548181101562000ae35760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016200049c565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821662000b205760028054829003905562000b3f565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b8591815260200190565b60405180910390a3505050565b306000908152602081905260408120549081810362000baf575050565b60085482111562000bc05760085491505b604080516002808252606082018352600092602083019080368337019050509050308160008151811062000bf85762000bf8620010ef565b60200260200101906001600160a01b031690816001600160a01b0316815250506080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000c59573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c7f91906200103e565b8160018151811062000c955762000c95620010ef565b60200260200101906001600160a01b031690816001600160a01b03168152505062000cca306080518562000df160201b60201c565b6080516001600160a01b031663791ac9478460008430426040518663ffffffff1660e01b815260040162000d0395949392919062001105565b600060405180830381600087803b15801562000d1e57600080fd5b505af115801562000d33573d6000803e3d6000fd5b5050604080518681524760208201527f9f4559507f9a7857bc303531a378b99e27e335776551e2db760e6d1734b9137c935001905060405180910390a16006546040516001600160a01b03909116904790600081818185875af1925050503d806000811462000dbf576040519150601f19603f3d011682016040523d82523d6000602084013e62000dc4565b606091505b505050505050565b600062000dda8284620010a9565b90505b92915050565b600062000dda828462001086565b620004ce83838360016001600160a01b03841662000e265760405163e602df0560e01b8152600060048201526024016200049c565b6001600160a01b03831662000e5257604051634a1406b160e11b8152600060048201526024016200049c565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801562000ed057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000ec791815260200190565b60405180910390a35b50505050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168062000f0157607f821691505b60208210810362000f2257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004ce57600081815260208120601f850160051c8101602086101562000f515750805b601f850160051c820191505b8181101562000dc45782815560010162000f5d565b81516001600160401b0381111562000f8e5762000f8e62000ed6565b62000fa68162000f9f845462000eec565b8462000f28565b602080601f83116001811462000fde576000841562000fc55750858301515b600019600386901b1c1916600185901b17855562000dc4565b600085815260208120601f198616915b828110156200100f5788860151825594840194600190910190840162000fee565b50858210156200102e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200105157600080fd5b81516001600160a01b03811681146200106957600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600082620010a457634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141762000ddd5762000ddd62001070565b8082018082111562000ddd5762000ddd62001070565b8181038181111562000ddd5762000ddd62001070565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015620011575784516001600160a01b03168352938301939183019160010162001130565b50506001600160a01b03969096166060850152505050608001529392505050565b60805160a051611783620011ac60003960006102d901526000818161126c01528181611325015261136101526117836000f3fe6080604052600436106101c65760003560e01c806370a08231116100f7578063a457c2d711610095578063dd62ed3e11610064578063dd62ed3e1461050e578063f2fde38b1461052e578063fa17a7381461054e578063fdbe1d521461056357600080fd5b8063a457c2d714610498578063a9059cbb146104b8578063b197eac5146104d8578063d62037d8146104ee57600080fd5b80638b17cdbf116100d15780638b17cdbf146104155780638da5cb5b1461044557806395d89b41146104635780639781ed3e1461047857600080fd5b806370a08231146103b5578063715018a6146103eb5780637c832da41461040057600080fd5b80631d9c408111610164578063395093511161013e578063395093511461034f578063449bb27d1461036f578063590b5f5f146103855780636e9bb4a31461039b57600080fd5b80631d9c4081146102c757806323b872dd14610313578063313ce5671461033357600080fd5b806310a4cbac116101a057806310a4cbac1461024c578063128cdaa11461027057806318160ddd146102925780631c14774e146102a757600080fd5b806306fdde03146101d2578063095ea7b3146101fd5780630b3c30591461022d57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610583565b6040516101f49190611483565b60405180910390f35b34801561020957600080fd5b5061021d6102183660046114e9565b610615565b60405190151581526020016101f4565b34801561023957600080fd5b50600d5461021d90610100900460ff1681565b34801561025857600080fd5b5061026260095481565b6040519081526020016101f4565b34801561027c57600080fd5b5061029061028b366004611515565b61062f565b005b34801561029e57600080fd5b50600254610262565b3480156102b357600080fd5b506102906102c2366004611515565b610667565b3480156102d357600080fd5b506102fb7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101f4565b34801561031f57600080fd5b5061021d61032e36600461152e565b610696565b34801561033f57600080fd5b50604051601281526020016101f4565b34801561035b57600080fd5b5061021d61036a3660046114e9565b6106ba565b34801561037b57600080fd5b50610262600c5481565b34801561039157600080fd5b50610262600b5481565b3480156103a757600080fd5b50600d5461021d9060ff1681565b3480156103c157600080fd5b506102626103d036600461156f565b6001600160a01b031660009081526020819052604090205490565b3480156103f757600080fd5b506102906106dc565b34801561040c57600080fd5b50610290610750565b34801561042157600080fd5b5061021d61043036600461156f565b60106020526000908152604090205460ff1681565b34801561045157600080fd5b506005546001600160a01b03166102fb565b34801561046f57600080fd5b506101e7610786565b34801561048457600080fd5b506006546102fb906001600160a01b031681565b3480156104a457600080fd5b5061021d6104b33660046114e9565b610795565b3480156104c457600080fd5b5061021d6104d33660046114e9565b6107ec565b3480156104e457600080fd5b50610262600a5481565b3480156104fa57600080fd5b50610290610509366004611515565b6107fa565b34801561051a57600080fd5b5061026261052936600461158c565b610829565b34801561053a57600080fd5b5061029061054936600461156f565b610854565b34801561055a57600080fd5b5061029061093f565b34801561056f57600080fd5b5061029061057e366004611515565b61097a565b606060038054610592906115c5565b80601f01602080910402602001604051908101604052809291908181526020018280546105be906115c5565b801561060b5780601f106105e05761010080835404028352916020019161060b565b820191906000526020600020905b8154815290600101906020018083116105ee57829003601f168201915b5050505050905090565b6000336106238185856109a9565b60019150505b92915050565b6005546001600160a01b031633146106625760405162461bcd60e51b8152600401610659906115ff565b60405180910390fd5b600955565b6005546001600160a01b031633146106915760405162461bcd60e51b8152600401610659906115ff565b600b55565b6000336106a48582856109bb565b6106af858585610a21565b506001949350505050565b6000336106238185856106cd8383610829565b6106d7919061164a565b6109a9565b6005546001600160a01b031633146107065760405162461bcd60e51b8152600401610659906115ff565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461077a5760405162461bcd60e51b8152600401610659906115ff565b600d805460ff19169055565b606060048054610592906115c5565b600033816107a38286610829565b9050838110156107df57604051632983c0c360e21b81526001600160a01b03861660048201526024810182905260448101859052606401610659565b6106af82868684036109a9565b600033610623818585610a21565b6005546001600160a01b031633146108245760405162461bcd60e51b8152600401610659906115ff565b600a55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b0316331461087e5760405162461bcd60e51b8152600401610659906115ff565b6001600160a01b0381166108e35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610659565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146109695760405162461bcd60e51b8152600401610659906115ff565b600d805461ff001916610100179055565b6005546001600160a01b031633146109a45760405162461bcd60e51b8152600401610659906115ff565b600c55565b6109b68383836001610a80565b505050565b60006109c78484610829565b90506000198114610a1b5781811015610a0c57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610659565b610a1b84848484036000610a80565b50505050565b6001600160a01b038316610a4b57604051634b637e8f60e11b815260006004820152602401610659565b6001600160a01b038216610a755760405163ec442f0560e01b815260006004820152602401610659565b6109b6838383610b55565b6001600160a01b038416610aaa5760405163e602df0560e01b815260006004820152602401610659565b6001600160a01b038316610ad457604051634a1406b160e11b815260006004820152602401610659565b6001600160a01b0380851660009081526001602090815260408083209387168352929052208290558015610a1b57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b4791815260200190565b60405180910390a350505050565b80600003610b69576109b6838360006110bf565b600d5460ff1615610ec1576005546001600160a01b03848116911614801590610ba057506005546001600160a01b03838116911614155b8015610bb457506001600160a01b03821615155b8015610bcb57506001600160a01b03821661dead14155b8015610be15750600554600160a01b900460ff16155b15610ec157600d54610100900460ff16610c79576001600160a01b0383166000908152600e602052604090205460ff1680610c3457506001600160a01b0382166000908152600e602052604090205460ff165b610c795760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610659565b6001600160a01b03831660009081526010602052604090205460ff168015610cba57506001600160a01b0382166000908152600f602052604090205460ff16155b15610d8f57600954811115610d205760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152653a3c2636ba1760d11b6064820152608401610659565b600a546001600160a01b038316600090815260208190526040902054610d46908361164a565b1115610d8a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610659565b610ec1565b6001600160a01b03821660009081526010602052604090205460ff168015610dd057506001600160a01b0383166000908152600f602052604090205460ff16155b15610e3757600954811115610d8a5760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015266103a3c2636ba1760c91b6064820152608401610659565b6001600160a01b0382166000908152600f602052604090205460ff16610ec157600a546001600160a01b038316600090815260208190526040902054610e7d908361164a565b1115610ec15760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610659565b3060009081526020819052604090205460075481108015908190610eef5750600554600160a01b900460ff16155b8015610f1457506001600160a01b03851660009081526010602052604090205460ff16155b8015610f3957506001600160a01b0385166000908152600e602052604090205460ff16155b8015610f5e57506001600160a01b0384166000908152600e602052604090205460ff16155b15610f8c576005805460ff60a01b1916600160a01b179055610f7e6111e9565b6005805460ff60a01b191690555b6005546001600160a01b0386166000908152600e602052604090205460ff600160a01b909204821615911680610fda57506001600160a01b0385166000908152600e602052604090205460ff165b15610fe3575060005b600081156110ab576001600160a01b03861660009081526010602052604090205460ff16801561101557506000600c54115b156110415761103a6064611034600c548861146490919063ffffffff16565b90611477565b905061108d565b6001600160a01b03871660009081526010602052604090205460ff16801561106b57506000600b54115b1561108d5761108a6064611034600b548861146490919063ffffffff16565b90505b801561109e5761109e8730836110bf565b6110a8818661165d565b94505b6110b68787876110bf565b50505050505050565b6001600160a01b0383166110ea5780600260008282546110df919061164a565b9091555061115c9050565b6001600160a01b0383166000908152602081905260409020548181101561113d5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610659565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661117857600280548290039055611197565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111dc91815260200190565b60405180910390a3505050565b3060009081526020819052604081205490818103611205575050565b6008548211156112155760085491505b604080516002808252606082018352600092602083019080368337019050509050308160008151811061124a5761124a611670565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec9190611686565b816001815181106112ff576112ff611670565b60200260200101906001600160a01b031690816001600160a01b03168152505061134a307f0000000000000000000000000000000000000000000000000000000000000000856109a9565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061139f9086906000908690309042906004016116a3565b600060405180830381600087803b1580156113b957600080fd5b505af11580156113cd573d6000803e3d6000fd5b5050604080518681524760208201527f9f4559507f9a7857bc303531a378b99e27e335776551e2db760e6d1734b9137c935001905060405180910390a16006546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611457576040519150601f19603f3d011682016040523d82523d6000602084013e61145c565b606091505b505050505050565b60006114708284611714565b9392505050565b6000611470828461172b565b600060208083528351808285015260005b818110156114b057858101830151858201604001528201611494565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114e657600080fd5b50565b600080604083850312156114fc57600080fd5b8235611507816114d1565b946020939093013593505050565b60006020828403121561152757600080fd5b5035919050565b60008060006060848603121561154357600080fd5b833561154e816114d1565b9250602084013561155e816114d1565b929592945050506040919091013590565b60006020828403121561158157600080fd5b8135611470816114d1565b6000806040838503121561159f57600080fd5b82356115aa816114d1565b915060208301356115ba816114d1565b809150509250929050565b600181811c908216806115d957607f821691505b6020821081036115f957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561062957610629611634565b8181038181111561062957610629611634565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561169857600080fd5b8151611470816114d1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116f35784516001600160a01b0316835293830193918301916001016116ce565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761062957610629611634565b60008261174857634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b85cb135f144f8bf7337ea92bce8cbcaec878646da750265a393723fe49eb90e64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c806370a08231116100f7578063a457c2d711610095578063dd62ed3e11610064578063dd62ed3e1461050e578063f2fde38b1461052e578063fa17a7381461054e578063fdbe1d521461056357600080fd5b8063a457c2d714610498578063a9059cbb146104b8578063b197eac5146104d8578063d62037d8146104ee57600080fd5b80638b17cdbf116100d15780638b17cdbf146104155780638da5cb5b1461044557806395d89b41146104635780639781ed3e1461047857600080fd5b806370a08231146103b5578063715018a6146103eb5780637c832da41461040057600080fd5b80631d9c408111610164578063395093511161013e578063395093511461034f578063449bb27d1461036f578063590b5f5f146103855780636e9bb4a31461039b57600080fd5b80631d9c4081146102c757806323b872dd14610313578063313ce5671461033357600080fd5b806310a4cbac116101a057806310a4cbac1461024c578063128cdaa11461027057806318160ddd146102925780631c14774e146102a757600080fd5b806306fdde03146101d2578063095ea7b3146101fd5780630b3c30591461022d57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610583565b6040516101f49190611483565b60405180910390f35b34801561020957600080fd5b5061021d6102183660046114e9565b610615565b60405190151581526020016101f4565b34801561023957600080fd5b50600d5461021d90610100900460ff1681565b34801561025857600080fd5b5061026260095481565b6040519081526020016101f4565b34801561027c57600080fd5b5061029061028b366004611515565b61062f565b005b34801561029e57600080fd5b50600254610262565b3480156102b357600080fd5b506102906102c2366004611515565b610667565b3480156102d357600080fd5b506102fb7f0000000000000000000000008c5dad5b717f8658745ad0b333466131a3df373781565b6040516001600160a01b0390911681526020016101f4565b34801561031f57600080fd5b5061021d61032e36600461152e565b610696565b34801561033f57600080fd5b50604051601281526020016101f4565b34801561035b57600080fd5b5061021d61036a3660046114e9565b6106ba565b34801561037b57600080fd5b50610262600c5481565b34801561039157600080fd5b50610262600b5481565b3480156103a757600080fd5b50600d5461021d9060ff1681565b3480156103c157600080fd5b506102626103d036600461156f565b6001600160a01b031660009081526020819052604090205490565b3480156103f757600080fd5b506102906106dc565b34801561040c57600080fd5b50610290610750565b34801561042157600080fd5b5061021d61043036600461156f565b60106020526000908152604090205460ff1681565b34801561045157600080fd5b506005546001600160a01b03166102fb565b34801561046f57600080fd5b506101e7610786565b34801561048457600080fd5b506006546102fb906001600160a01b031681565b3480156104a457600080fd5b5061021d6104b33660046114e9565b610795565b3480156104c457600080fd5b5061021d6104d33660046114e9565b6107ec565b3480156104e457600080fd5b50610262600a5481565b3480156104fa57600080fd5b50610290610509366004611515565b6107fa565b34801561051a57600080fd5b5061026261052936600461158c565b610829565b34801561053a57600080fd5b5061029061054936600461156f565b610854565b34801561055a57600080fd5b5061029061093f565b34801561056f57600080fd5b5061029061057e366004611515565b61097a565b606060038054610592906115c5565b80601f01602080910402602001604051908101604052809291908181526020018280546105be906115c5565b801561060b5780601f106105e05761010080835404028352916020019161060b565b820191906000526020600020905b8154815290600101906020018083116105ee57829003601f168201915b5050505050905090565b6000336106238185856109a9565b60019150505b92915050565b6005546001600160a01b031633146106625760405162461bcd60e51b8152600401610659906115ff565b60405180910390fd5b600955565b6005546001600160a01b031633146106915760405162461bcd60e51b8152600401610659906115ff565b600b55565b6000336106a48582856109bb565b6106af858585610a21565b506001949350505050565b6000336106238185856106cd8383610829565b6106d7919061164a565b6109a9565b6005546001600160a01b031633146107065760405162461bcd60e51b8152600401610659906115ff565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461077a5760405162461bcd60e51b8152600401610659906115ff565b600d805460ff19169055565b606060048054610592906115c5565b600033816107a38286610829565b9050838110156107df57604051632983c0c360e21b81526001600160a01b03861660048201526024810182905260448101859052606401610659565b6106af82868684036109a9565b600033610623818585610a21565b6005546001600160a01b031633146108245760405162461bcd60e51b8152600401610659906115ff565b600a55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b0316331461087e5760405162461bcd60e51b8152600401610659906115ff565b6001600160a01b0381166108e35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610659565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146109695760405162461bcd60e51b8152600401610659906115ff565b600d805461ff001916610100179055565b6005546001600160a01b031633146109a45760405162461bcd60e51b8152600401610659906115ff565b600c55565b6109b68383836001610a80565b505050565b60006109c78484610829565b90506000198114610a1b5781811015610a0c57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610659565b610a1b84848484036000610a80565b50505050565b6001600160a01b038316610a4b57604051634b637e8f60e11b815260006004820152602401610659565b6001600160a01b038216610a755760405163ec442f0560e01b815260006004820152602401610659565b6109b6838383610b55565b6001600160a01b038416610aaa5760405163e602df0560e01b815260006004820152602401610659565b6001600160a01b038316610ad457604051634a1406b160e11b815260006004820152602401610659565b6001600160a01b0380851660009081526001602090815260408083209387168352929052208290558015610a1b57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b4791815260200190565b60405180910390a350505050565b80600003610b69576109b6838360006110bf565b600d5460ff1615610ec1576005546001600160a01b03848116911614801590610ba057506005546001600160a01b03838116911614155b8015610bb457506001600160a01b03821615155b8015610bcb57506001600160a01b03821661dead14155b8015610be15750600554600160a01b900460ff16155b15610ec157600d54610100900460ff16610c79576001600160a01b0383166000908152600e602052604090205460ff1680610c3457506001600160a01b0382166000908152600e602052604090205460ff165b610c795760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610659565b6001600160a01b03831660009081526010602052604090205460ff168015610cba57506001600160a01b0382166000908152600f602052604090205460ff16155b15610d8f57600954811115610d205760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152653a3c2636ba1760d11b6064820152608401610659565b600a546001600160a01b038316600090815260208190526040902054610d46908361164a565b1115610d8a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610659565b610ec1565b6001600160a01b03821660009081526010602052604090205460ff168015610dd057506001600160a01b0383166000908152600f602052604090205460ff16155b15610e3757600954811115610d8a5760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015266103a3c2636ba1760c91b6064820152608401610659565b6001600160a01b0382166000908152600f602052604090205460ff16610ec157600a546001600160a01b038316600090815260208190526040902054610e7d908361164a565b1115610ec15760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610659565b3060009081526020819052604090205460075481108015908190610eef5750600554600160a01b900460ff16155b8015610f1457506001600160a01b03851660009081526010602052604090205460ff16155b8015610f3957506001600160a01b0385166000908152600e602052604090205460ff16155b8015610f5e57506001600160a01b0384166000908152600e602052604090205460ff16155b15610f8c576005805460ff60a01b1916600160a01b179055610f7e6111e9565b6005805460ff60a01b191690555b6005546001600160a01b0386166000908152600e602052604090205460ff600160a01b909204821615911680610fda57506001600160a01b0385166000908152600e602052604090205460ff165b15610fe3575060005b600081156110ab576001600160a01b03861660009081526010602052604090205460ff16801561101557506000600c54115b156110415761103a6064611034600c548861146490919063ffffffff16565b90611477565b905061108d565b6001600160a01b03871660009081526010602052604090205460ff16801561106b57506000600b54115b1561108d5761108a6064611034600b548861146490919063ffffffff16565b90505b801561109e5761109e8730836110bf565b6110a8818661165d565b94505b6110b68787876110bf565b50505050505050565b6001600160a01b0383166110ea5780600260008282546110df919061164a565b9091555061115c9050565b6001600160a01b0383166000908152602081905260409020548181101561113d5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610659565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661117857600280548290039055611197565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111dc91815260200190565b60405180910390a3505050565b3060009081526020819052604081205490818103611205575050565b6008548211156112155760085491505b604080516002808252606082018352600092602083019080368337019050509050308160008151811061124a5761124a611670565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec9190611686565b816001815181106112ff576112ff611670565b60200260200101906001600160a01b031690816001600160a01b03168152505061134a307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d856109a9565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061139f9086906000908690309042906004016116a3565b600060405180830381600087803b1580156113b957600080fd5b505af11580156113cd573d6000803e3d6000fd5b5050604080518681524760208201527f9f4559507f9a7857bc303531a378b99e27e335776551e2db760e6d1734b9137c935001905060405180910390a16006546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611457576040519150601f19603f3d011682016040523d82523d6000602084013e61145c565b606091505b505050505050565b60006114708284611714565b9392505050565b6000611470828461172b565b600060208083528351808285015260005b818110156114b057858101830151858201604001528201611494565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114e657600080fd5b50565b600080604083850312156114fc57600080fd5b8235611507816114d1565b946020939093013593505050565b60006020828403121561152757600080fd5b5035919050565b60008060006060848603121561154357600080fd5b833561154e816114d1565b9250602084013561155e816114d1565b929592945050506040919091013590565b60006020828403121561158157600080fd5b8135611470816114d1565b6000806040838503121561159f57600080fd5b82356115aa816114d1565b915060208301356115ba816114d1565b809150509250929050565b600181811c908216806115d957607f821691505b6020821081036115f957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561062957610629611634565b8181038181111561062957610629611634565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561169857600080fd5b8151611470816114d1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116f35784516001600160a01b0316835293830193918301916001016116ce565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761062957610629611634565b60008261174857634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b85cb135f144f8bf7337ea92bce8cbcaec878646da750265a393723fe49eb90e64736f6c63430008130033

Deployed Bytecode Sourcemap

16847:6426:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4172:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5039:190;;;;;;;;;;-1:-1:-1;5039:190:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5039:190:0;1023:187:1;17295:26:0;;;;;;;;;;-1:-1:-1;17295:26:0;;;;;;;;;;;17137:20;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;17137:20:0;1215:177:1;19164:86:0;;;;;;;;;;-1:-1:-1;19164:86:0;;;;;:::i;:::-;;:::i;:::-;;4466:99;;;;;;;;;;-1:-1:-1;4545:12:0;;4466:99;;18857:102;;;;;;;;;;-1:-1:-1;18857:102:0;;;;;:::i;:::-;;:::i;16969:29::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1746:32:1;;;1728:51;;1716:2;1701:18;16969:29:0;1582:203:1;5237:249:0;;;;;;;;;;-1:-1:-1;5237:249:0;;;;;:::i;:::-;;:::i;4374:84::-;;;;;;;;;;-1:-1:-1;4374:84:0;;4448:2;2393:36:1;;2381:2;2366:18;4374:84:0;2251:184:1;5494:238:0;;;;;;;;;;-1:-1:-1;5494:238:0;;;;;:::i;:::-;;:::i;17225:25::-;;;;;;;;;;;;;;;;17194:24;;;;;;;;;;;;;;;;17259:29;;;;;;;;;;-1:-1:-1;17259:29:0;;;;;;;;4573:118;;;;;;;;;;-1:-1:-1;4573:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;4665:18:0;4638:7;4665:18;;;;;;;;;;;;4573:118;1571:148;;;;;;;;;;;;;:::i;19081:75::-;;;;;;;;;;;;;:::i;17431:37::-;;;;;;;;;;-1:-1:-1;17431:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;929:79;;;;;;;;;;-1:-1:-1;994:6:0;;-1:-1:-1;;;;;994:6:0;929:79;;4271:95;;;;;;;;;;;;;:::i;17037:21::-;;;;;;;;;;-1:-1:-1;17037:21:0;;;;-1:-1:-1;;;;;17037:21:0;;;5740:504;;;;;;;;;;-1:-1:-1;5740:504:0;;;;;:::i;:::-;;:::i;4699:182::-;;;;;;;;;;-1:-1:-1;4699:182:0;;;;;:::i;:::-;;:::i;17164:21::-;;;;;;;;;;;;;;;;19258:90;;;;;;;;;;-1:-1:-1;19258:90:0;;;;;:::i;:::-;;:::i;4889:142::-;;;;;;;;;;-1:-1:-1;4889:142:0;;;;;:::i;:::-;;:::i;1874:281::-;;;;;;;;;;-1:-1:-1;1874:281:0;;;;;:::i;:::-;;:::i;18773:76::-;;;;;;;;;;;;;:::i;18967:106::-;;;;;;;;;;-1:-1:-1;18967:106:0;;;;;:::i;:::-;;:::i;4172:91::-;4217:13;4250:5;4243:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4172:91;:::o;5039:190::-;5112:4;279:10;5168:31;279:10;5184:7;5193:5;5168:8;:31::i;:::-;5217:4;5210:11;;;5039:190;;;;;:::o;19164:86::-;1141:6;;-1:-1:-1;;;;;1141:6:0;279:10;1141:22;1133:67;;;;-1:-1:-1;;;1133:67:0;;;;;;;:::i;:::-;;;;;;;;;19228:5:::1;:14:::0;19164:86::o;18857:102::-;1141:6;;-1:-1:-1;;;;;1141:6:0;279:10;1141:22;1133:67;;;;-1:-1:-1;;;1133:67:0;;;;;;;:::i;:::-;18929:9:::1;:22:::0;18857:102::o;5237:249::-;5324:4;279:10;5382:37;5398:4;279:10;5413:5;5382:15;:37::i;:::-;5430:26;5440:4;5446:2;5450:5;5430:9;:26::i;:::-;-1:-1:-1;5474:4:0;;5237:249;-1:-1:-1;;;;5237:249:0:o;5494:238::-;5582:4;279:10;5638:64;279:10;5654:7;5691:10;5663:25;279:10;5654:7;5663:9;:25::i;:::-;:38;;;;:::i;:::-;5638:8;:64::i;1571:148::-;1141:6;;-1:-1:-1;;;;;1141:6:0;279:10;1141:22;1133:67;;;;-1:-1:-1;;;1133:67:0;;;;;;;:::i;:::-;1662:6:::1;::::0;1641:40:::1;::::0;1678:1:::1;::::0;-1:-1:-1;;;;;1662:6:0::1;::::0;1641:40:::1;::::0;1678:1;;1641:40:::1;1692:6;:19:::0;;-1:-1:-1;;;;;;1692:19:0::1;::::0;;1571:148::o;19081:75::-;1141:6;;-1:-1:-1;;;;;1141:6:0;279:10;1141:22;1133:67;;;;-1:-1:-1;;;1133:67:0;;;;;;;:::i;:::-;19130:10:::1;:18:::0;;-1:-1:-1;;19130:18:0::1;::::0;;19081:75::o;4271:95::-;4318:13;4351:7;4344:14;;;;;:::i;5740:504::-;5835:4;279:10;5835:4;5918:25;279:10;5935:7;5918:9;:25::i;:::-;5891:52;;5977:17;5958:16;:36;5954:150;;;6018:74;;-1:-1:-1;;;6018:74:0;;-1:-1:-1;;;;;4313:32:1;;6018:74:0;;;4295:51:1;4362:18;;;4355:34;;;4405:18;;;4398:34;;;4268:18;;6018:74:0;4093:345:1;5954:150:0;6139:62;6148:5;6155:7;6183:17;6164:16;:36;6139:8;:62::i;4699:182::-;4768:4;279:10;4824:27;279:10;4841:2;4845:5;4824:9;:27::i;19258:90::-;1141:6;;-1:-1:-1;;;;;1141:6:0;279:10;1141:22;1133:67;;;;-1:-1:-1;;;1133:67:0;;;;;;;:::i;:::-;19324:6:::1;:16:::0;19258:90::o;4889:142::-;-1:-1:-1;;;;;4996:18:0;;;4969:7;4996:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4889:142::o;1874:281::-;1141:6;;-1:-1:-1;;;;;1141:6:0;279:10;1141:22;1133:67;;;;-1:-1:-1;;;1133:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1977:22:0;::::1;1955:110;;;::::0;-1:-1:-1;;;1955:110:0;;4645:2:1;1955:110:0::1;::::0;::::1;4627:21:1::0;4684:2;4664:18;;;4657:30;4723:34;4703:18;;;4696:62;-1:-1:-1;;;4774:18:1;;;4767:36;4820:19;;1955:110:0::1;4443:402:1::0;1955:110:0::1;2102:6;::::0;2081:38:::1;::::0;-1:-1:-1;;;;;2081:38:0;;::::1;::::0;2102:6:::1;::::0;2081:38:::1;::::0;2102:6:::1;::::0;2081:38:::1;2130:6;:17:::0;;-1:-1:-1;;;;;;2130:17:0::1;-1:-1:-1::0;;;;;2130:17:0;;;::::1;::::0;;;::::1;::::0;;1874:281::o;18773:76::-;1141:6;;-1:-1:-1;;;;;1141:6:0;279:10;1141:22;1133:67;;;;-1:-1:-1;;;1133:67:0;;;;;;;:::i;:::-;18828:6:::1;:13:::0;;-1:-1:-1;;18828:13:0::1;;;::::0;;18773:76::o;18967:106::-;1141:6;;-1:-1:-1;;;;;1141:6:0;279:10;1141:22;1133:67;;;;-1:-1:-1;;;1133:67:0;;;;;;;:::i;:::-;19041:10:::1;:24:::0;18967:106::o;8151:130::-;8236:37;8245:5;8252:7;8261:5;8268:4;8236:8;:37::i;:::-;8151:130;;;:::o;8740:487::-;8840:24;8867:25;8877:5;8884:7;8867:9;:25::i;:::-;8840:52;;-1:-1:-1;;8907:16:0;:37;8903:317;;8984:5;8965:16;:24;8961:132;;;9017:60;;-1:-1:-1;;;9017:60:0;;-1:-1:-1;;;;;4313:32:1;;9017:60:0;;;4295:51:1;4362:18;;;4355:34;;;4405:18;;;4398:34;;;4268:18;;9017:60:0;4093:345:1;8961:132:0;9136:57;9145:5;9152:7;9180:5;9161:16;:24;9187:5;9136:8;:57::i;:::-;8829:398;8740:487;;;:::o;6252:308::-;-1:-1:-1;;;;;6336:18:0;;6332:88;;6378:30;;-1:-1:-1;;;6378:30:0;;6405:1;6378:30;;;1728:51:1;1701:18;;6378:30:0;1582:203:1;6332:88:0;-1:-1:-1;;;;;6434:16:0;;6430:88;;6474:32;;-1:-1:-1;;;6474:32:0;;6503:1;6474:32;;;1728:51:1;1701:18;;6474:32:0;1582:203:1;6430:88:0;6528:24;6536:4;6542:2;6546:5;6528:7;:24::i;8289:443::-;-1:-1:-1;;;;;8402:19:0;;8398:91;;8445:32;;-1:-1:-1;;;8445:32:0;;8474:1;8445:32;;;1728:51:1;1701:18;;8445:32:0;1582:203:1;8398:91:0;-1:-1:-1;;;;;8503:21:0;;8499:92;;8548:31;;-1:-1:-1;;;8548:31:0;;8576:1;8548:31;;;1728:51:1;1701:18;;8548:31:0;1582:203:1;8499:92:0;-1:-1:-1;;;;;8601:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;8647:78;;;;8698:7;-1:-1:-1;;;;;8682:31:0;8691:5;-1:-1:-1;;;;;8682:31:0;;8707:5;8682:31;;;;1361:25:1;;1349:2;1334:18;;1215:177;8682:31:0;;;;;;;;8289:443;;;;:::o;20433:2837::-;20561:6;20571:1;20561:11;20557:91;;20589:26;20603:4;20609:2;20613:1;20589:13;:26::i;20557:91::-;20664:10;;;;20660:1371;;;994:6;;-1:-1:-1;;;;;20713:15:0;;;994:6;;20713:15;;;;:49;;-1:-1:-1;994:6:0;;-1:-1:-1;;;;;20749:13:0;;;994:6;;20749:13;;20713:49;:86;;;;-1:-1:-1;;;;;;20783:16:0;;;;20713:86;:128;;;;-1:-1:-1;;;;;;20820:21:0;;20834:6;20820:21;;20713:128;:158;;;;-1:-1:-1;20863:8:0;;-1:-1:-1;;;20863:8:0;;;;20862:9;20713:158;20691:1329;;;20911:6;;;;;;;20906:194;;-1:-1:-1;;;;;20976:14:0;;;;;;:8;:14;;;;;;;;;:30;;-1:-1:-1;;;;;;20994:12:0;;;;;;:8;:12;;;;;;;;20976:30;20942:138;;;;-1:-1:-1;;;20942:138:0;;5052:2:1;20942:138:0;;;5034:21:1;5091:2;5071:18;;;5064:30;-1:-1:-1;;;5110:18:1;;;5103:52;5172:18;;20942:138:0;4850:346:1;20942:138:0;-1:-1:-1;;;;;21150:11:0;;;;;;:5;:11;;;;;;;;:31;;;;-1:-1:-1;;;;;;21166:15:0;;;;;;:11;:15;;;;;;;;21165:16;21150:31;21146:859;;;21250:5;;21240:6;:15;;21206:139;;;;-1:-1:-1;;;21206:139:0;;5403:2:1;21206:139:0;;;5385:21:1;5442:2;5422:18;;;5415:30;5481:34;5461:18;;;5454:62;-1:-1:-1;;;5532:18:1;;;5525:36;5578:19;;21206:139:0;5201:402:1;21206:139:0;21428:6;;-1:-1:-1;;;;;4665:18:0;;4638:7;4665:18;;;;;;;;;;;21402:22;;:6;:22;:::i;:::-;:32;;21368:137;;;;-1:-1:-1;;;21368:137:0;;5810:2:1;21368:137:0;;;5792:21:1;5849:2;5829:18;;;5822:30;-1:-1:-1;;;5868:18:1;;;5861:49;5927:18;;21368:137:0;5608:343:1;21368:137:0;21146:859;;;-1:-1:-1;;;;;21581:9:0;;;;;;:5;:9;;;;;;;;:31;;;;-1:-1:-1;;;;;;21595:17:0;;;;;;:11;:17;;;;;;;;21594:18;21581:31;21577:428;;;21681:5;;21671:6;:15;;21637:140;;;;-1:-1:-1;;;21637:140:0;;6158:2:1;21637:140:0;;;6140:21:1;6197:2;6177:18;;;6170:30;6236:34;6216:18;;;6209:62;-1:-1:-1;;;6287:18:1;;;6280:37;6334:19;;21637:140:0;5956:403:1;21577:428:0;-1:-1:-1;;;;;21808:15:0;;;;;;:11;:15;;;;;;;;21803:202;;21908:6;;-1:-1:-1;;;;;4665:18:0;;4638:7;4665:18;;;;;;;;;;;21882:22;;:6;:22;:::i;:::-;:32;;21848:137;;;;-1:-1:-1;;;21848:137:0;;5810:2:1;21848:137:0;;;5792:21:1;5849:2;5829:18;;;5822:30;-1:-1:-1;;;5868:18:1;;;5861:49;5927:18;;21848:137:0;5608:343:1;21848:137:0;22092:4;22043:28;4665:18;;;;;;;;;;;22150:11;;22126:35;;;;;;;22192:33;;-1:-1:-1;22217:8:0;;-1:-1:-1;;;22217:8:0;;;;22216:9;22192:33;:62;;;;-1:-1:-1;;;;;;22243:11:0;;;;;;:5;:11;;;;;;;;22242:12;22192:62;:94;;;;-1:-1:-1;;;;;;22272:14:0;;;;;;:8;:14;;;;;;;;22271:15;22192:94;:124;;;;-1:-1:-1;;;;;;22304:12:0;;;;;;:8;:12;;;;;;;;22303:13;22192:124;22174:267;;;22343:8;:15;;-1:-1:-1;;;;22343:15:0;-1:-1:-1;;;22343:15:0;;;22375:21;:19;:21::i;:::-;22413:8;:16;;-1:-1:-1;;;;22413:16:0;;;22174:267;22469:8;;-1:-1:-1;;;;;22579:14:0;;22453:12;22579:14;;;:8;:14;;;;;;22469:8;-1:-1:-1;;;22469:8:0;;;;;22468:9;;22579:14;;:30;;-1:-1:-1;;;;;;22597:12:0;;;;;;:8;:12;;;;;;;;22579:30;22575:78;;;-1:-1:-1;22636:5:0;22575:78;22665:12;22770:7;22766:453;;;-1:-1:-1;;;;;22822:9:0;;;;;;:5;:9;;;;;;;;:27;;;;;22848:1;22835:10;;:14;22822:27;22818:254;;;22877:31;22904:3;22877:22;22888:10;;22877:6;:10;;:22;;;;:::i;:::-;:26;;:31::i;:::-;22870:38;;22818:254;;;-1:-1:-1;;;;;22970:11:0;;;;;;:5;:11;;;;;;;;:28;;;;;22997:1;22985:9;;:13;22970:28;22966:106;;;23026:30;23052:3;23026:21;23037:9;;23026:6;:10;;:21;;;;:::i;:30::-;23019:37;;22966:106;23092:8;;23088:89;;23121:40;23135:4;23149;23156;23121:13;:40::i;:::-;23193:14;23203:4;23193:14;;:::i;:::-;;;22766:453;23231:31;23245:4;23251:2;23255:6;23231:13;:31::i;:::-;20544:2726;;;;20433:2837;;;:::o;6568:1135::-;-1:-1:-1;;;;;6658:18:0;;6654:552;;6812:5;6796:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6654:552:0;;-1:-1:-1;6654:552:0;;-1:-1:-1;;;;;6872:15:0;;6850:19;6872:15;;;;;;;;;;;6906:19;;;6902:117;;;6953:50;;-1:-1:-1;;;6953:50:0;;-1:-1:-1;;;;;4313:32:1;;6953:50:0;;;4295:51:1;4362:18;;;4355:34;;;4405:18;;;4398:34;;;4268:18;;6953:50:0;4093:345:1;6902:117:0;-1:-1:-1;;;;;7142:15:0;;:9;:15;;;;;;;;;;7160:19;;;;7142:37;;6654:552;-1:-1:-1;;;;;7222:16:0;;7218:435;;7388:12;:21;;;;;;;7218:435;;;-1:-1:-1;;;;;7604:13:0;;:9;:13;;;;;;;;;;:22;;;;;;7218:435;7685:2;-1:-1:-1;;;;;7670:25:0;7679:4;-1:-1:-1;;;;;7670:25:0;;7689:5;7670:25;;;;1361::1;;1349:2;1334:18;;1215:177;7670:25:0;;;;;;;;6568:1135;;;:::o;19515:910::-;19606:4;19565:20;4665:18;;;;;;;;;;;;19652:17;;;19648:56;;19686:7;;19515:910::o;19648:56::-;19735:11;;19720:12;:26;19716:85;;;19778:11;;19763:26;;19716:85;19837:16;;;19851:1;19837:16;;;;;;;;19813:21;;19837:16;;;;;;;;;;-1:-1:-1;19837:16:0;19813:40;;19882:4;19864;19869:1;19864:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19864:23:0;;;-1:-1:-1;;;;;19864:23:0;;;;;19908:7;-1:-1:-1;;;;;19908:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19898:4;19903:1;19898:7;;;;;;;;:::i;:::-;;;;;;:24;-1:-1:-1;;;;;19898:24:0;;;-1:-1:-1;;;;;19898:24:0;;;;;19935:55;19952:4;19967:7;19977:12;19935:8;:55::i;:::-;20029:217;;-1:-1:-1;;;20029:217:0;;-1:-1:-1;;;;;20029:7:0;:58;;;;:217;;20102:12;;20129:1;;20173:4;;20200;;20220:15;;20029:217;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20264:48:0;;;8176:25:1;;;20290:21:0;8232:2:1;8217:18;;8210:34;20264:48:0;;-1:-1:-1;8149:18:1;;-1:-1:-1;20264:48:0;;;;;;;20347:6;;20339:78;;-1:-1:-1;;;;;20347:6:0;;;;20381:21;;20339:78;;;;20381:21;20347:6;20339:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19515:910:0:o;10711:98::-;10769:7;10796:5;10800:1;10796;:5;:::i;:::-;10789:12;10711:98;-1:-1:-1;;;10711:98:0:o;10817:::-;10875:7;10902:5;10906:1;10902;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;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;1397:180::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;-1:-1:-1;1548:23:1;;1397:180;-1:-1:-1;1397:180:1:o;1790:456::-;1867:6;1875;1883;1936:2;1924:9;1915:7;1911:23;1907:32;1904:52;;;1952:1;1949;1942:12;1904:52;1991:9;1978:23;2010:31;2035:5;2010:31;:::i;:::-;2060:5;-1:-1:-1;2117:2:1;2102:18;;2089:32;2130:33;2089:32;2130:33;:::i;:::-;1790:456;;2182:7;;-1:-1:-1;;;2236:2:1;2221:18;;;;2208:32;;1790:456::o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3085:380::-;3164:1;3160:12;;;;3207;;;3228:61;;3282:4;3274:6;3270:17;3260:27;;3228:61;3335:2;3327:6;3324:14;3304:18;3301:38;3298:161;;3381:10;3376:3;3372:20;3369:1;3362:31;3416:4;3413:1;3406:15;3444:4;3441:1;3434:15;3298:161;;3085:380;;;:::o;3470:356::-;3672:2;3654:21;;;3691:18;;;3684:30;3750:34;3745:2;3730:18;;3723:62;3817:2;3802:18;;3470:356::o;3831:127::-;3892:10;3887:3;3883:20;3880:1;3873:31;3923:4;3920:1;3913:15;3947:4;3944:1;3937:15;3963:125;4028:9;;;4049:10;;;4046:36;;;4062:18;;:::i;6364:128::-;6431:9;;;6452:11;;;6449:37;;;6466:18;;:::i;6629:127::-;6690:10;6685:3;6681:20;6678:1;6671:31;6721:4;6718:1;6711:15;6745:4;6742:1;6735:15;6761:251;6831:6;6884:2;6872:9;6863:7;6859:23;6855:32;6852:52;;;6900:1;6897;6890:12;6852:52;6932:9;6926:16;6951:31;6976:5;6951:31;:::i;7017:980::-;7279:4;7327:3;7316:9;7312:19;7358:6;7347:9;7340:25;7384:2;7422:6;7417:2;7406:9;7402:18;7395:34;7465:3;7460:2;7449:9;7445:18;7438:31;7489:6;7524;7518:13;7555:6;7547;7540:22;7593:3;7582:9;7578:19;7571:26;;7632:2;7624:6;7620:15;7606:29;;7653:1;7663:195;7677:6;7674:1;7671:13;7663:195;;;7742:13;;-1:-1:-1;;;;;7738:39:1;7726:52;;7833:15;;;;7798:12;;;;7774:1;7692:9;7663:195;;;-1:-1:-1;;;;;;;7914:32:1;;;;7909:2;7894:18;;7887:60;-1:-1:-1;;;7978:3:1;7963:19;7956:35;7875:3;7017:980;-1:-1:-1;;;7017:980:1:o;8465:168::-;8538:9;;;8569;;8586:15;;;8580:22;;8566:37;8556:71;;8607:18;;:::i;8638:217::-;8678:1;8704;8694:132;;8748:10;8743:3;8739:20;8736:1;8729:31;8783:4;8780:1;8773:15;8811:4;8808:1;8801:15;8694:132;-1:-1:-1;8840:9:1;;8638:217::o

Swarm Source

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