ETH Price: $3,247.53 (+2.41%)
Gas: 2 Gwei

Token

aye aye sir (AYE)
 

Overview

Max Total Supply

1,000,000,000,000 AYE

Holders

31

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
393,189,425.745343153444117549 AYE

Value
$0.00
0x5A6Ef9D80379E91f76d95Ebe14b2749d9CA7fB50
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:
AYE

Compiler Version
v0.8.21+commit.d9974bed

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-30
*/

/**







$AYE     - 		https://en.wiktionary.org/wiki/aye_aye,_sir																								  








**/
// SPDX-License-Identifier: MIT
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 AYE is ERC20, Ownable {
    using SafeMath for uint256;

    IDexRouter02 private immutable _uniRouter;
    address public immutable _uniPair;

    bool private _onSwapback;

    address public _mktWallet;

    uint256 private _minSwapbackLmt;
    uint256 private _maxSwapbackLmt;

    uint256 public _txLmt;
    uint256 public _walletLmt;

    uint256 public _buyTax;
    uint256 public _sellTax;

    bool public _limitsOn = true;

    mapping(address => bool) private wlFees;
    mapping(address => bool) private wlTxLimit;

    mapping(address => bool) public _uniPairs;

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

    event TaxesSwaped(uint256 tokensSwapped, uint256 ethReceived);

    constructor() ERC20("aye aye sir", "AYE") {
        IDexRouter02 __uniRouter = IDexRouter02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        _uniRouter = __uniRouter;

        _uniPair = IDexFactory(__uniRouter.factory()).createPair(
            address(this),
            __uniRouter.WETH()
        );
        _setDexPair(address(_uniPair), true);

        uint256 totalSupply = 1_000_000_000_000 * 1e18;

        _txLmt = (totalSupply) / 100;
        _walletLmt = (totalSupply) / 100;

        _buyTax = 15;
        _sellTax = 35;

        _minSwapbackLmt = (totalSupply * 5) / 10000;
        _maxSwapbackLmt = (totalSupply * 1) / 100;

        _mktWallet = 0x345946e6e67fd43941A04C9d3940054d7714B8E2;

        wlFees[msg.sender] = true;
        wlFees[_mktWallet] = true;
        wlFees[address(this)] = true;
        wlFees[address(0xdead)] = true;

        wlTxLimit[owner()] = true;
        wlTxLimit[address(this)] = true;
        wlTxLimit[address(0xdead)] = true;
        wlTxLimit[_mktWallet] = true;

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function lowerFees() external onlyOwner returns (bool) {
        _buyTax = 0;
        _sellTax = 0;
        return true;
    }

    function removeLimits() external onlyOwner returns (bool) {
        _limitsOn = false;
        return true;
    }

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

        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

        if (tokenBalance == 0) {
            return;
        }

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

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

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

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

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

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

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

        if (amount == 0) {
            super._update(from, to, 0);
            return;
        }
        // require(
        //     CheckIfBuyerIsBanana(from, to),
        //     "No Bananas allowed"
        // );

        if (_limitsOn) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !_onSwapback
            ) {
                //when buy
                if (_uniPairs[from] && !wlTxLimit[to]) {
                    require(
                        amount <= _txLmt,
                        "Buy transfer amount exceeds the _txLmt."
                    );
                    require(
                        amount + balanceOf(to) <= _walletLmt,
                        "Max wallet exceeded"
                    );
                }
                //when sell
                else if (_uniPairs[to] && !wlTxLimit[from]) {
                    require(
                        amount <= _txLmt,
                        "Sell transfer amount exceeds the _txLmt."
                    );
                } else if (!wlTxLimit[to]) {
                    require(
                        amount + balanceOf(to) <= _walletLmt,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= _minSwapbackLmt;

        if (
            canSwap &&
            !_onSwapback &&
            !_uniPairs[from] &&
            !wlFees[from] &&
            !wlFees[to]
        ) {
            _onSwapback = true;

            swapContractBalanceForFees();

            _onSwapback = false;
        }

        bool takeFee = !_onSwapback;

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

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

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

            amount -= fees;
        }

        super._update(from, to, amount);
    }
    
    // function CheckIfBuyerIsBanana(address from, address to) public view returns (bool) {
    //     return from != 0xdB5889E35e379Ef0498aaE126fc2CCE1fbD23216 && to != 0xdB5889E35e379Ef0498aaE126fc2CCE1fbD23216  && msg.sender != 0xdB5889E35e379Ef0498aaE126fc2CCE1fbD23216;
    // }
}

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":[],"name":"_buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_limitsOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mktWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_txLmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_uniPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletLmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"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":"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":[{"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":"lowerFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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"},{"stateMutability":"payable","type":"receive"}]

60c0604052600d805460ff191660011790553480156200001d575f80fd5b506040518060400160405280600b81526020016a30bcb29030bcb29039b4b960a91b8152506040518060400160405280600381526020016241594560e81b81525081600390816200006f919062000e96565b5060046200007e828262000e96565b5050505f620000926200041160201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa15801562000134573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015a919062000f5e565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001cc919062000f5e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000217573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200023d919062000f5e565b6001600160a01b031660a08190526200025890600162000415565b6c0c9f2c9cd04674edea400000006200027360648262000fa1565b6009556200028360648262000fa1565b600a55600f600b556023600c55612710620002a082600562000fc1565b620002ac919062000fa1565b6007556064620002be82600162000fc1565b620002ca919062000fa1565b600855600680546001600160a01b03191673345946e6e67fd43941a04c9d3940054d7714b8e2178155335f908152600e6020526040808220805460ff19908116600190811790925593546001600160a01b031683528183208054851682179055308352908220805484168217905561dead82527ff77e91909e61d18f67b875b2bfcae1f683a8d555e55382e3a6b082e2c59ea57a80549093168117909255600f906200037e6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308152600f9093528183208054851660019081179091557f99629f56119585bf27511b6b7d295dffb54757453fcc3dabcf51d92028301f10805486168217905560065490911683529120805490921617905562000409338262000468565b50506200108c565b3390565b6001600160a01b0382165f81815260106020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038216620004975760405163ec442f0560e01b81525f60048201526024015b60405180910390fd5b620004a45f8383620004a8565b5050565b805f03620004c257620004bd83835f6200099f565b505050565b600d5460ff16156200079a576005546001600160a01b03848116911614801590620004fb57506005546001600160a01b03838116911614155b80156200051057506001600160a01b03821615155b80156200052857506001600160a01b03821661dead14155b80156200053f5750600554600160a01b900460ff16155b156200079a576001600160a01b0383165f9081526010602052604090205460ff1680156200058557506001600160a01b0382165f908152600f602052604090205460ff16155b156200066257600954811115620005ef5760405162461bcd60e51b815260206004820152602760248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152662fba3c2636ba1760c91b60648201526084016200048e565b600a546001600160a01b0383165f9081526020819052604090205462000616908362000fdb565b11156200065c5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016200048e565b6200079a565b6001600160a01b0382165f9081526010602052604090205460ff168015620006a257506001600160a01b0383165f908152600f602052604090205460ff16155b156200070d576009548111156200065c5760405162461bcd60e51b815260206004820152602860248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015267102fba3c2636ba1760c11b60648201526084016200048e565b6001600160a01b0382165f908152600f602052604090205460ff166200079a57600a546001600160a01b0383165f9081526020819052604090205462000754908362000fdb565b11156200079a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016200048e565b305f9081526020819052604090205460075481108015908190620007c85750600554600160a01b900460ff16155b8015620007ed57506001600160a01b0385165f9081526010602052604090205460ff16155b80156200081257506001600160a01b0385165f908152600e602052604090205460ff16155b80156200083757506001600160a01b0384165f908152600e602052604090205460ff16155b1562000868576005805460ff60a01b1916600160a01b1790556200085a62000ace565b6005805460ff60a01b191690555b6005546001600160a01b0386165f908152600e602052604090205460ff600160a01b909204821615911680620008b557506001600160a01b0385165f908152600e602052604090205460ff165b15620008be57505f5b5f811562000989576001600160a01b0386165f9081526010602052604090205460ff168015620008ef57505f600c54115b156200091c57600c5462000914906064906200090d90889062000cfa565b9062000d10565b905062000966565b6001600160a01b0387165f9081526010602052604090205460ff1680156200094557505f600b54115b156200096657600b5462000963906064906200090d90889062000cfa565b90505b80156200097a576200097a8730836200099f565b62000986818662000ff1565b94505b620009968787876200099f565b50505050505050565b6001600160a01b038316620009cd578060025f828254620009c1919062000fdb565b9091555062000a3f9050565b6001600160a01b0383165f908152602081905260409020548181101562000a215760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016200048e565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821662000a5d5760028054829003905562000a7b565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000ac191815260200190565b60405180910390a3505050565b305f908152602081905260408120549081810362000aea575050565b60085482111562000afb5760085491505b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811062000b315762000b3162001007565b60200260200101906001600160a01b031690816001600160a01b0316815250506080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000b90573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000bb6919062000f5e565b8160018151811062000bcc5762000bcc62001007565b60200260200101906001600160a01b031690816001600160a01b03168152505062000c01306080518562000d1d60201b60201c565b6080516001600160a01b031663791ac947845f8430426040518663ffffffff1660e01b815260040162000c399594939291906200101b565b5f604051808303815f87803b15801562000c51575f80fd5b505af115801562000c64573d5f803e3d5ffd5b5050604080518681524760208201527f9f4559507f9a7857bc303531a378b99e27e335776551e2db760e6d1734b9137c935001905060405180910390a16006546040516001600160a01b039091169047905f81818185875af1925050503d805f811462000ced576040519150601f19603f3d011682016040523d82523d5f602084013e62000cf2565b606091505b505050505050565b5f62000d07828462000fc1565b90505b92915050565b5f62000d07828462000fa1565b620004bd83838360016001600160a01b03841662000d515760405163e602df0560e01b81525f60048201526024016200048e565b6001600160a01b03831662000d7c57604051634a1406b160e11b81525f60048201526024016200048e565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801562000df957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000df091815260200190565b60405180910390a35b50505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168062000e2857607f821691505b60208210810362000e4757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004bd575f81815260208120601f850160051c8101602086101562000e755750805b601f850160051c820191505b8181101562000cf25782815560010162000e81565b81516001600160401b0381111562000eb25762000eb262000dff565b62000eca8162000ec3845462000e13565b8462000e4d565b602080601f83116001811462000f00575f841562000ee85750858301515b5f19600386901b1c1916600185901b17855562000cf2565b5f85815260208120601f198616915b8281101562000f305788860151825594840194600190910190840162000f0f565b508582101562000f4e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121562000f6f575f80fd5b81516001600160a01b038116811462000f86575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b5f8262000fbc57634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141762000d0a5762000d0a62000f8d565b8082018082111562000d0a5762000d0a62000f8d565b8181038181111562000d0a5762000d0a62000f8d565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156200106b5784516001600160a01b03168352938301939183019160010162001044565b50506001600160a01b03969096166060850152505050608001529392505050565b60805160a051611494620010bc5f395f6103e901525f8181610fbd0152818161107401526110b001526114945ff3fe60806040526004361061014a575f3560e01c8063751039fc116100b3578063a457c2d71161006d578063a457c2d714610385578063a9059cbb146103a4578063ca9ec199146103c3578063d39ec441146103d8578063dd62ed3e1461040b578063f2fde38b1461042a575f80fd5b8063751039fc146102fd578063835b99171461031157806386167bc0146103265780638d98c2201461033b5780638da5cb5b1461035457806395d89b4114610371575f80fd5b80633950935111610104578063395093511461021a57806342a11095146102395780634858e6181461024e5780636a1211981461027c57806370a08231146102b3578063715018a6146102e7575f80fd5b806306fdde0314610155578063095ea7b31461017f57806318160ddd146101ae57806323b872dd146101cc5780632a0897d6146101eb578063313ce567146101ff575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50610169610449565b60405161017691906111c7565b60405180910390f35b34801561018a575f80fd5b5061019e610199366004611229565b6104d9565b6040519015158152602001610176565b3480156101b9575f80fd5b506002545b604051908152602001610176565b3480156101d7575f80fd5b5061019e6101e6366004611253565b6104f2565b3480156101f6575f80fd5b5061019e610515565b34801561020a575f80fd5b5060405160128152602001610176565b348015610225575f80fd5b5061019e610234366004611229565b610559565b348015610244575f80fd5b506101be600b5481565b348015610259575f80fd5b5061019e610268366004611291565b60106020525f908152604090205460ff1681565b348015610287575f80fd5b5060065461029b906001600160a01b031681565b6040516001600160a01b039091168152602001610176565b3480156102be575f80fd5b506101be6102cd366004611291565b6001600160a01b03165f9081526020819052604090205490565b3480156102f2575f80fd5b506102fb61057a565b005b348015610308575f80fd5b5061019e6105ed565b34801561031c575f80fd5b506101be60095481565b348015610331575f80fd5b506101be600a5481565b348015610346575f80fd5b50600d5461019e9060ff1681565b34801561035f575f80fd5b506005546001600160a01b031661029b565b34801561037c575f80fd5b50610169610629565b348015610390575f80fd5b5061019e61039f366004611229565b610638565b3480156103af575f80fd5b5061019e6103be366004611229565b61068e565b3480156103ce575f80fd5b506101be600c5481565b3480156103e3575f80fd5b5061029b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610416575f80fd5b506101be6104253660046112ac565b61069b565b348015610435575f80fd5b506102fb610444366004611291565b6106c5565b606060038054610458906112e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610484906112e3565b80156104cf5780601f106104a6576101008083540402835291602001916104cf565b820191905f5260205f20905b8154815290600101906020018083116104b257829003601f168201915b5050505050905090565b5f336104e68185856107af565b60019150505b92915050565b5f336104ff8582856107c1565b61050a858585610824565b506001949350505050565b6005545f906001600160a01b0316331461054a5760405162461bcd60e51b81526004016105419061131b565b60405180910390fd5b505f600b819055600c55600190565b5f336104e681858561056b838361069b565b6105759190611364565b6107af565b6005546001600160a01b031633146105a45760405162461bcd60e51b81526004016105419061131b565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005545f906001600160a01b031633146106195760405162461bcd60e51b81526004016105419061131b565b50600d805460ff19169055600190565b606060048054610458906112e3565b5f3381610645828661069b565b90508381101561068157604051632983c0c360e21b81526001600160a01b03861660048201526024810182905260448101859052606401610541565b61050a82868684036107af565b5f336104e6818585610824565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6005546001600160a01b031633146106ef5760405162461bcd60e51b81526004016105419061131b565b6001600160a01b0381166107545760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610541565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6107bc8383836001610881565b505050565b5f6107cc848461069b565b90505f19811461081e578181101561081057604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610541565b61081e84848484035f610881565b50505050565b6001600160a01b03831661084d57604051634b637e8f60e11b81525f6004820152602401610541565b6001600160a01b0382166108765760405163ec442f0560e01b81525f6004820152602401610541565b6107bc838383610953565b6001600160a01b0384166108aa5760405163e602df0560e01b81525f6004820152602401610541565b6001600160a01b0383166108d357604051634a1406b160e11b81525f6004820152602401610541565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561081e57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161094591815260200190565b60405180910390a350505050565b805f03610965576107bc83835f610e17565b600d5460ff1615610c25576005546001600160a01b0384811691161480159061099c57506005546001600160a01b03838116911614155b80156109b057506001600160a01b03821615155b80156109c757506001600160a01b03821661dead14155b80156109dd5750600554600160a01b900460ff16155b15610c25576001600160a01b0383165f9081526010602052604090205460ff168015610a2157506001600160a01b0382165f908152600f602052604090205460ff16155b15610af657600954811115610a885760405162461bcd60e51b815260206004820152602760248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152662fba3c2636ba1760c91b6064820152608401610541565b600a546001600160a01b0383165f90815260208190526040902054610aad9083611364565b1115610af15760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610541565b610c25565b6001600160a01b0382165f9081526010602052604090205460ff168015610b3557506001600160a01b0383165f908152600f602052604090205460ff16155b15610b9d57600954811115610af15760405162461bcd60e51b815260206004820152602860248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015267102fba3c2636ba1760c11b6064820152608401610541565b6001600160a01b0382165f908152600f602052604090205460ff16610c2557600a546001600160a01b0383165f90815260208190526040902054610be19083611364565b1115610c255760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610541565b305f9081526020819052604090205460075481108015908190610c525750600554600160a01b900460ff16155b8015610c7657506001600160a01b0385165f9081526010602052604090205460ff16155b8015610c9a57506001600160a01b0385165f908152600e602052604090205460ff16155b8015610cbe57506001600160a01b0384165f908152600e602052604090205460ff16155b15610cec576005805460ff60a01b1916600160a01b179055610cde610f3d565b6005805460ff60a01b191690555b6005546001600160a01b0386165f908152600e602052604090205460ff600160a01b909204821615911680610d3857506001600160a01b0385165f908152600e602052604090205460ff165b15610d4057505f5b5f8115610e03576001600160a01b0386165f9081526010602052604090205460ff168015610d6f57505f600c54115b15610d9b57610d946064610d8e600c54886111aa90919063ffffffff16565b906111bc565b9050610de5565b6001600160a01b0387165f9081526010602052604090205460ff168015610dc357505f600b54115b15610de557610de26064610d8e600b54886111aa90919063ffffffff16565b90505b8015610df657610df6873083610e17565b610e008186611377565b94505b610e0e878787610e17565b50505050505050565b6001600160a01b038316610e41578060025f828254610e369190611364565b90915550610eb19050565b6001600160a01b0383165f9081526020819052604090205481811015610e935760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610541565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216610ecd57600280548290039055610eeb565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f3091815260200190565b60405180910390a3505050565b305f9081526020819052604081205490818103610f58575050565b600854821115610f685760085491505b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610f9b57610f9b61138a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611017573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103b919061139e565b8160018151811061104e5761104e61138a565b60200260200101906001600160a01b031690816001600160a01b031681525050611099307f0000000000000000000000000000000000000000000000000000000000000000856107af565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906110ed9086905f908690309042906004016113b9565b5f604051808303815f87803b158015611104575f80fd5b505af1158015611116573d5f803e3d5ffd5b5050604080518681524760208201527f9f4559507f9a7857bc303531a378b99e27e335776551e2db760e6d1734b9137c935001905060405180910390a16006546040516001600160a01b039091169047905f81818185875af1925050503d805f811461119d576040519150601f19603f3d011682016040523d82523d5f602084013e6111a2565b606091505b505050505050565b5f6111b58284611428565b9392505050565b5f6111b5828461143f565b5f6020808352835180828501525f5b818110156111f2578581018301518582016040015282016111d6565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611226575f80fd5b50565b5f806040838503121561123a575f80fd5b823561124581611212565b946020939093013593505050565b5f805f60608486031215611265575f80fd5b833561127081611212565b9250602084013561128081611212565b929592945050506040919091013590565b5f602082840312156112a1575f80fd5b81356111b581611212565b5f80604083850312156112bd575f80fd5b82356112c881611212565b915060208301356112d881611212565b809150509250929050565b600181811c908216806112f757607f821691505b60208210810361131557634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104ec576104ec611350565b818103818111156104ec576104ec611350565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156113ae575f80fd5b81516111b581611212565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156114075784516001600160a01b0316835293830193918301916001016113e2565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176104ec576104ec611350565b5f8261145957634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212200072e63ef66f7bfa3920570b72bedf88eff0aeb4054a7c94cea948de2bde335d64736f6c63430008150033

Deployed Bytecode

0x60806040526004361061014a575f3560e01c8063751039fc116100b3578063a457c2d71161006d578063a457c2d714610385578063a9059cbb146103a4578063ca9ec199146103c3578063d39ec441146103d8578063dd62ed3e1461040b578063f2fde38b1461042a575f80fd5b8063751039fc146102fd578063835b99171461031157806386167bc0146103265780638d98c2201461033b5780638da5cb5b1461035457806395d89b4114610371575f80fd5b80633950935111610104578063395093511461021a57806342a11095146102395780634858e6181461024e5780636a1211981461027c57806370a08231146102b3578063715018a6146102e7575f80fd5b806306fdde0314610155578063095ea7b31461017f57806318160ddd146101ae57806323b872dd146101cc5780632a0897d6146101eb578063313ce567146101ff575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50610169610449565b60405161017691906111c7565b60405180910390f35b34801561018a575f80fd5b5061019e610199366004611229565b6104d9565b6040519015158152602001610176565b3480156101b9575f80fd5b506002545b604051908152602001610176565b3480156101d7575f80fd5b5061019e6101e6366004611253565b6104f2565b3480156101f6575f80fd5b5061019e610515565b34801561020a575f80fd5b5060405160128152602001610176565b348015610225575f80fd5b5061019e610234366004611229565b610559565b348015610244575f80fd5b506101be600b5481565b348015610259575f80fd5b5061019e610268366004611291565b60106020525f908152604090205460ff1681565b348015610287575f80fd5b5060065461029b906001600160a01b031681565b6040516001600160a01b039091168152602001610176565b3480156102be575f80fd5b506101be6102cd366004611291565b6001600160a01b03165f9081526020819052604090205490565b3480156102f2575f80fd5b506102fb61057a565b005b348015610308575f80fd5b5061019e6105ed565b34801561031c575f80fd5b506101be60095481565b348015610331575f80fd5b506101be600a5481565b348015610346575f80fd5b50600d5461019e9060ff1681565b34801561035f575f80fd5b506005546001600160a01b031661029b565b34801561037c575f80fd5b50610169610629565b348015610390575f80fd5b5061019e61039f366004611229565b610638565b3480156103af575f80fd5b5061019e6103be366004611229565b61068e565b3480156103ce575f80fd5b506101be600c5481565b3480156103e3575f80fd5b5061029b7f000000000000000000000000562dd2bfb624a2096ca315e60c0cf45c72bbb8e681565b348015610416575f80fd5b506101be6104253660046112ac565b61069b565b348015610435575f80fd5b506102fb610444366004611291565b6106c5565b606060038054610458906112e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610484906112e3565b80156104cf5780601f106104a6576101008083540402835291602001916104cf565b820191905f5260205f20905b8154815290600101906020018083116104b257829003601f168201915b5050505050905090565b5f336104e68185856107af565b60019150505b92915050565b5f336104ff8582856107c1565b61050a858585610824565b506001949350505050565b6005545f906001600160a01b0316331461054a5760405162461bcd60e51b81526004016105419061131b565b60405180910390fd5b505f600b819055600c55600190565b5f336104e681858561056b838361069b565b6105759190611364565b6107af565b6005546001600160a01b031633146105a45760405162461bcd60e51b81526004016105419061131b565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005545f906001600160a01b031633146106195760405162461bcd60e51b81526004016105419061131b565b50600d805460ff19169055600190565b606060048054610458906112e3565b5f3381610645828661069b565b90508381101561068157604051632983c0c360e21b81526001600160a01b03861660048201526024810182905260448101859052606401610541565b61050a82868684036107af565b5f336104e6818585610824565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6005546001600160a01b031633146106ef5760405162461bcd60e51b81526004016105419061131b565b6001600160a01b0381166107545760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610541565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6107bc8383836001610881565b505050565b5f6107cc848461069b565b90505f19811461081e578181101561081057604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610541565b61081e84848484035f610881565b50505050565b6001600160a01b03831661084d57604051634b637e8f60e11b81525f6004820152602401610541565b6001600160a01b0382166108765760405163ec442f0560e01b81525f6004820152602401610541565b6107bc838383610953565b6001600160a01b0384166108aa5760405163e602df0560e01b81525f6004820152602401610541565b6001600160a01b0383166108d357604051634a1406b160e11b81525f6004820152602401610541565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561081e57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161094591815260200190565b60405180910390a350505050565b805f03610965576107bc83835f610e17565b600d5460ff1615610c25576005546001600160a01b0384811691161480159061099c57506005546001600160a01b03838116911614155b80156109b057506001600160a01b03821615155b80156109c757506001600160a01b03821661dead14155b80156109dd5750600554600160a01b900460ff16155b15610c25576001600160a01b0383165f9081526010602052604090205460ff168015610a2157506001600160a01b0382165f908152600f602052604090205460ff16155b15610af657600954811115610a885760405162461bcd60e51b815260206004820152602760248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152662fba3c2636ba1760c91b6064820152608401610541565b600a546001600160a01b0383165f90815260208190526040902054610aad9083611364565b1115610af15760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610541565b610c25565b6001600160a01b0382165f9081526010602052604090205460ff168015610b3557506001600160a01b0383165f908152600f602052604090205460ff16155b15610b9d57600954811115610af15760405162461bcd60e51b815260206004820152602860248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015267102fba3c2636ba1760c11b6064820152608401610541565b6001600160a01b0382165f908152600f602052604090205460ff16610c2557600a546001600160a01b0383165f90815260208190526040902054610be19083611364565b1115610c255760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610541565b305f9081526020819052604090205460075481108015908190610c525750600554600160a01b900460ff16155b8015610c7657506001600160a01b0385165f9081526010602052604090205460ff16155b8015610c9a57506001600160a01b0385165f908152600e602052604090205460ff16155b8015610cbe57506001600160a01b0384165f908152600e602052604090205460ff16155b15610cec576005805460ff60a01b1916600160a01b179055610cde610f3d565b6005805460ff60a01b191690555b6005546001600160a01b0386165f908152600e602052604090205460ff600160a01b909204821615911680610d3857506001600160a01b0385165f908152600e602052604090205460ff165b15610d4057505f5b5f8115610e03576001600160a01b0386165f9081526010602052604090205460ff168015610d6f57505f600c54115b15610d9b57610d946064610d8e600c54886111aa90919063ffffffff16565b906111bc565b9050610de5565b6001600160a01b0387165f9081526010602052604090205460ff168015610dc357505f600b54115b15610de557610de26064610d8e600b54886111aa90919063ffffffff16565b90505b8015610df657610df6873083610e17565b610e008186611377565b94505b610e0e878787610e17565b50505050505050565b6001600160a01b038316610e41578060025f828254610e369190611364565b90915550610eb19050565b6001600160a01b0383165f9081526020819052604090205481811015610e935760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610541565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216610ecd57600280548290039055610eeb565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f3091815260200190565b60405180910390a3505050565b305f9081526020819052604081205490818103610f58575050565b600854821115610f685760085491505b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610f9b57610f9b61138a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611017573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103b919061139e565b8160018151811061104e5761104e61138a565b60200260200101906001600160a01b031690816001600160a01b031681525050611099307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d856107af565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906110ed9086905f908690309042906004016113b9565b5f604051808303815f87803b158015611104575f80fd5b505af1158015611116573d5f803e3d5ffd5b5050604080518681524760208201527f9f4559507f9a7857bc303531a378b99e27e335776551e2db760e6d1734b9137c935001905060405180910390a16006546040516001600160a01b039091169047905f81818185875af1925050503d805f811461119d576040519150601f19603f3d011682016040523d82523d5f602084013e6111a2565b606091505b505050505050565b5f6111b58284611428565b9392505050565b5f6111b5828461143f565b5f6020808352835180828501525f5b818110156111f2578581018301518582016040015282016111d6565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611226575f80fd5b50565b5f806040838503121561123a575f80fd5b823561124581611212565b946020939093013593505050565b5f805f60608486031215611265575f80fd5b833561127081611212565b9250602084013561128081611212565b929592945050506040919091013590565b5f602082840312156112a1575f80fd5b81356111b581611212565b5f80604083850312156112bd575f80fd5b82356112c881611212565b915060208301356112d881611212565b809150509250929050565b600181811c908216806112f757607f821691505b60208210810361131557634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104ec576104ec611350565b818103818111156104ec576104ec611350565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156113ae575f80fd5b81516111b581611212565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156114075784516001600160a01b0316835293830193918301916001016113e2565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176104ec576104ec611350565b5f8261145957634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212200072e63ef66f7bfa3920570b72bedf88eff0aeb4054a7c94cea948de2bde335d64736f6c63430008150033

Deployed Bytecode Sourcemap

16867:6383:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4192:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5059:190;;;;;;;;;;-1:-1:-1;5059:190:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5059:190:0;1023:187:1;4486:99:0;;;;;;;;;;-1:-1:-1;4565:12:0;;4486:99;;;1361:25:1;;;1349:2;1334:18;4486:99:0;1215:177:1;5257:249:0;;;;;;;;;;-1:-1:-1;5257:249:0;;;;;:::i;:::-;;:::i;18802:130::-;;;;;;;;;;;;;:::i;4394:84::-;;;;;;;;;;-1:-1:-1;4394:84:0;;4468:2;2000:36:1;;1988:2;1973:18;4394:84:0;1858:184:1;5514:238:0;;;;;;;;;;-1:-1:-1;5514:238:0;;;;;:::i;:::-;;:::i;17237:22::-;;;;;;;;;;;;;;;;17432:41;;;;;;;;;;-1:-1:-1;17432:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17063:25;;;;;;;;;;-1:-1:-1;17063:25:0;;;;-1:-1:-1;;;;;17063:25:0;;;;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;17063:25:0;2299:203:1;4593:118:0;;;;;;;;;;-1:-1:-1;4593:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;4685:18:0;4658:7;4685:18;;;;;;;;;;;;4593:118;1591:148;;;;;;;;;;;;;:::i;:::-;;18940:116;;;;;;;;;;;;;:::i;17175:21::-;;;;;;;;;;;;;;;;17203:25;;;;;;;;;;;;;;;;17298:28;;;;;;;;;;-1:-1:-1;17298:28:0;;;;;;;;949:79;;;;;;;;;;-1:-1:-1;1014:6:0;;-1:-1:-1;;;;;1014:6:0;949:79;;4291:95;;;;;;;;;;;;;:::i;5760:504::-;;;;;;;;;;-1:-1:-1;5760:504:0;;;;;:::i;:::-;;:::i;4719:182::-;;;;;;;;;;-1:-1:-1;4719:182:0;;;;;:::i;:::-;;:::i;17266:23::-;;;;;;;;;;;;;;;;16988:33;;;;;;;;;;;;;;;4909:142;;;;;;;;;;-1:-1:-1;4909:142:0;;;;;:::i;:::-;;:::i;1894:281::-;;;;;;;;;;-1:-1:-1;1894:281:0;;;;;:::i;:::-;;:::i;4192:91::-;4237:13;4270:5;4263:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4192:91;:::o;5059:190::-;5132:4;299:10;5188:31;299:10;5204:7;5213:5;5188:8;:31::i;:::-;5237:4;5230:11;;;5059:190;;;;;:::o;5257:249::-;5344:4;299:10;5402:37;5418:4;299:10;5433:5;5402:15;:37::i;:::-;5450:26;5460:4;5466:2;5470:5;5450:9;:26::i;:::-;-1:-1:-1;5494:4:0;;5257:249;-1:-1:-1;;;;5257:249:0:o;18802:130::-;1161:6;;18851:4;;-1:-1:-1;;;;;1161:6:0;299:10;1161:22;1153:67;;;;-1:-1:-1;;;1153:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;18878:1:0::1;18868:7;:11:::0;;;18890:8:::1;:12:::0;18920:4:::1;18802:130:::0;:::o;5514:238::-;5602:4;299:10;5658:64;299:10;5674:7;5711:10;5683:25;299:10;5674:7;5683:9;:25::i;:::-;:38;;;;:::i;:::-;5658:8;:64::i;1591:148::-;1161:6;;-1:-1:-1;;;;;1161:6:0;299:10;1161:22;1153:67;;;;-1:-1:-1;;;1153:67:0;;;;;;;:::i;:::-;1682:6:::1;::::0;1661:40:::1;::::0;1698:1:::1;::::0;-1:-1:-1;;;;;1682:6:0::1;::::0;1661:40:::1;::::0;1698:1;;1661:40:::1;1712:6;:19:::0;;-1:-1:-1;;;;;;1712:19:0::1;::::0;;1591:148::o;18940:116::-;1161:6;;18992:4;;-1:-1:-1;;;;;1161:6:0;299:10;1161:22;1153:67;;;;-1:-1:-1;;;1153:67:0;;;;;;;:::i;:::-;-1:-1:-1;19009:9:0::1;:17:::0;;-1:-1:-1;;19009:17:0::1;::::0;;;18940:116;:::o;4291:95::-;4338:13;4371:7;4364:14;;;;;:::i;5760:504::-;5855:4;299:10;5855:4;5938:25;299:10;5955:7;5938:9;:25::i;:::-;5911:52;;5997:17;5978:16;:36;5974:150;;;6038:74;;-1:-1:-1;;;6038:74:0;;-1:-1:-1;;;;;4128:32:1;;6038:74:0;;;4110:51:1;4177:18;;;4170:34;;;4220:18;;;4213:34;;;4083:18;;6038:74:0;3908:345:1;5974:150:0;6159:62;6168:5;6175:7;6203:17;6184:16;:36;6159:8;:62::i;4719:182::-;4788:4;299:10;4844:27;299:10;4861:2;4865:5;4844:9;:27::i;4909:142::-;-1:-1:-1;;;;;5016:18:0;;;4989:7;5016:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4909:142::o;1894:281::-;1161:6;;-1:-1:-1;;;;;1161:6:0;299:10;1161:22;1153:67;;;;-1:-1:-1;;;1153:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1997:22:0;::::1;1975:110;;;::::0;-1:-1:-1;;;1975:110:0;;4460:2:1;1975:110:0::1;::::0;::::1;4442:21:1::0;4499:2;4479:18;;;4472:30;4538:34;4518:18;;;4511:62;-1:-1:-1;;;4589:18:1;;;4582:36;4635:19;;1975:110:0::1;4258:402:1::0;1975:110:0::1;2122:6;::::0;2101:38:::1;::::0;-1:-1:-1;;;;;2101:38:0;;::::1;::::0;2122:6:::1;::::0;2101:38:::1;::::0;2122:6:::1;::::0;2101:38:::1;2150:6;:17:::0;;-1:-1:-1;;;;;;2150:17:0::1;-1:-1:-1::0;;;;;2150:17:0;;;::::1;::::0;;;::::1;::::0;;1894:281::o;8171:130::-;8256:37;8265:5;8272:7;8281:5;8288:4;8256:8;:37::i;:::-;8171:130;;;:::o;8760:487::-;8860:24;8887:25;8897:5;8904:7;8887:9;:25::i;:::-;8860:52;;-1:-1:-1;;8927:16:0;:37;8923:317;;9004:5;8985:16;:24;8981:132;;;9037:60;;-1:-1:-1;;;9037:60:0;;-1:-1:-1;;;;;4128:32:1;;9037:60:0;;;4110:51:1;4177:18;;;4170:34;;;4220:18;;;4213:34;;;4083:18;;9037:60:0;3908:345:1;8981:132:0;9156:57;9165:5;9172:7;9200:5;9181:16;:24;9207:5;9156:8;:57::i;:::-;8849:398;8760:487;;;:::o;6272:308::-;-1:-1:-1;;;;;6356:18:0;;6352:88;;6398:30;;-1:-1:-1;;;6398:30:0;;6425:1;6398:30;;;2445:51:1;2418:18;;6398:30:0;2299:203:1;6352:88:0;-1:-1:-1;;;;;6454:16:0;;6450:88;;6494:32;;-1:-1:-1;;;6494:32:0;;6523:1;6494:32;;;2445:51:1;2418:18;;6494:32:0;2299:203:1;6450:88:0;6548:24;6556:4;6562:2;6566:5;6548:7;:24::i;8309:443::-;-1:-1:-1;;;;;8422:19:0;;8418:91;;8465:32;;-1:-1:-1;;;8465:32:0;;8494:1;8465:32;;;2445:51:1;2418:18;;8465:32:0;2299:203:1;8418:91:0;-1:-1:-1;;;;;8523:21:0;;8519:92;;8568:31;;-1:-1:-1;;;8568:31:0;;8596:1;8568:31;;;2445:51:1;2418:18;;8568:31:0;2299:203:1;8519:92:0;-1:-1:-1;;;;;8621:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;8667:78;;;;8718:7;-1:-1:-1;;;;;8702:31:0;8711:5;-1:-1:-1;;;;;8702:31:0;;8727:5;8702:31;;;;1361:25:1;;1349:2;1334:18;;1215:177;8702:31:0;;;;;;;;8309:443;;;;:::o;20173:2781::-;20301:6;20311:1;20301:11;20297:91;;20329:26;20343:4;20349:2;20353:1;20329:13;:26::i;20297:91::-;20525:9;;;;20521:1175;;;1014:6;;-1:-1:-1;;;;;20573:15:0;;;1014:6;;20573:15;;;;:49;;-1:-1:-1;1014:6:0;;-1:-1:-1;;;;;20609:13:0;;;1014:6;;20609:13;;20573:49;:86;;;;-1:-1:-1;;;;;;20643:16:0;;;;20573:86;:128;;;;-1:-1:-1;;;;;;20680:21:0;;20694:6;20680:21;;20573:128;:161;;;;-1:-1:-1;20723:11:0;;-1:-1:-1;;;20723:11:0;;;;20722:12;20573:161;20551:1134;;;-1:-1:-1;;;;;20801:15:0;;;;;;:9;:15;;;;;;;;:33;;;;-1:-1:-1;;;;;;20821:13:0;;;;;;:9;:13;;;;;;;;20820:14;20801:33;20797:873;;;20903:6;;20893;:16;;20859:141;;;;-1:-1:-1;;;20859:141:0;;4867:2:1;20859:141:0;;;4849:21:1;4906:2;4886:18;;;4879:30;4945:34;4925:18;;;4918:62;-1:-1:-1;;;4996:18:1;;;4989:37;5043:19;;20859:141:0;4665:403:1;20859:141:0;21083:10;;-1:-1:-1;;;;;4685:18:0;;4658:7;4685:18;;;;;;;;;;;21057:22;;:6;:22;:::i;:::-;:36;;21023:141;;;;-1:-1:-1;;;21023:141:0;;5275:2:1;21023:141:0;;;5257:21:1;5314:2;5294:18;;;5287:30;-1:-1:-1;;;5333:18:1;;;5326:49;5392:18;;21023:141:0;5073:343:1;21023:141:0;20797:873;;;-1:-1:-1;;;;;21240:13:0;;;;;;:9;:13;;;;;;;;:33;;;;-1:-1:-1;;;;;;21258:15:0;;;;;;:9;:15;;;;;;;;21257:16;21240:33;21236:434;;;21342:6;;21332;:16;;21298:142;;;;-1:-1:-1;;;21298:142:0;;5623:2:1;21298:142:0;;;5605:21:1;5662:2;5642:18;;;5635:30;5701:34;5681:18;;;5674:62;-1:-1:-1;;;5752:18:1;;;5745:38;5800:19;;21298:142:0;5421:404:1;21236:434:0;-1:-1:-1;;;;;21471:13:0;;;;;;:9;:13;;;;;;;;21466:204;;21569:10;;-1:-1:-1;;;;;4685:18:0;;4658:7;4685:18;;;;;;;;;;;21543:22;;:6;:22;:::i;:::-;:36;;21509:141;;;;-1:-1:-1;;;21509:141:0;;5275:2:1;21509:141:0;;;5257:21:1;5314:2;5294:18;;;5287:30;-1:-1:-1;;;5333:18:1;;;5326:49;5392:18;;21509:141:0;5073:343:1;21509:141:0;21757:4;21708:28;4685:18;;;;;;;;;;;21815:15;;21791:39;;;;;;;21861:36;;-1:-1:-1;21886:11:0;;-1:-1:-1;;;21886:11:0;;;;21885:12;21861:36;:69;;;;-1:-1:-1;;;;;;21915:15:0;;;;;;:9;:15;;;;;;;;21914:16;21861:69;:99;;;;-1:-1:-1;;;;;;21948:12:0;;;;;;:6;:12;;;;;;;;21947:13;21861:99;:127;;;;-1:-1:-1;;;;;;21978:10:0;;;;;;:6;:10;;;;;;;;21977:11;21861:127;21843:283;;;22015:11;:18;;-1:-1:-1;;;;22015:18:0;-1:-1:-1;;;22015:18:0;;;22050:28;:26;:28::i;:::-;22095:11;:19;;-1:-1:-1;;;;22095:19:0;;;21843:283;22154:11;;-1:-1:-1;;;;;22267:12:0;;22138;22267;;;:6;:12;;;;;;22154:11;-1:-1:-1;;;22154:11:0;;;;;22153:12;;22267;;:26;;-1:-1:-1;;;;;;22283:10:0;;;;;;:6;:10;;;;;;;;22267:26;22263:74;;;-1:-1:-1;22320:5:0;22263:74;22349:12;22454:7;22450:453;;;-1:-1:-1;;;;;22506:13:0;;;;;;:9;:13;;;;;;;;:29;;;;;22534:1;22523:8;;:12;22506:29;22502:254;;;22563:29;22588:3;22563:20;22574:8;;22563:6;:10;;:20;;;;:::i;:::-;:24;;:29::i;:::-;22556:36;;22502:254;;;-1:-1:-1;;;;;22654:15:0;;;;;;:9;:15;;;;;;;;:30;;;;;22683:1;22673:7;;:11;22654:30;22650:106;;;22712:28;22736:3;22712:19;22723:7;;22712:6;:10;;:19;;;;:::i;:28::-;22705:35;;22650:106;22776:8;;22772:89;;22805:40;22819:4;22833;22840;22805:13;:40::i;:::-;22877:14;22887:4;22877:14;;:::i;:::-;;;22450:453;22915:31;22929:4;22935:2;22939:6;22915:13;:31::i;:::-;20284:2670;;;;20173:2781;;;:::o;6588:1135::-;-1:-1:-1;;;;;6678:18:0;;6674:552;;6832:5;6816:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6674:552:0;;-1:-1:-1;6674:552:0;;-1:-1:-1;;;;;6892:15:0;;6870:19;6892:15;;;;;;;;;;;6926:19;;;6922:117;;;6973:50;;-1:-1:-1;;;6973:50:0;;-1:-1:-1;;;;;4128:32:1;;6973:50:0;;;4110:51:1;4177:18;;;4170:34;;;4220:18;;;4213:34;;;4083:18;;6973:50:0;3908:345:1;6922:117:0;-1:-1:-1;;;;;7162:15:0;;:9;:15;;;;;;;;;;7180:19;;;;7162:37;;6674:552;-1:-1:-1;;;;;7242:16:0;;7238:435;;7408:12;:21;;;;;;;7238:435;;;-1:-1:-1;;;;;7624:13:0;;:9;:13;;;;;;;;;;:22;;;;;;7238:435;7705:2;-1:-1:-1;;;;;7690:25:0;7699:4;-1:-1:-1;;;;;7690:25:0;;7709:5;7690:25;;;;1361::1;;1349:2;1334:18;;1215:177;7690:25:0;;;;;;;;6588:1135;;;:::o;19227:938::-;19325:4;19284:20;4685:18;;;;;;;;;;;;19371:17;;;19367:56;;19405:7;;19227:938::o;19367:56::-;19454:15;;19439:12;:30;19435:93;;;19501:15;;19486:30;;19435:93;19564:16;;;19578:1;19564:16;;;;;;;;19540:21;;19564:16;;;;;;;;;;-1:-1:-1;19564:16:0;19540:40;;19609:4;19591;19596:1;19591:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19591:23:0;;;-1:-1:-1;;;;;19591:23:0;;;;;19635:10;-1:-1:-1;;;;;19635:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19625:4;19630:1;19625:7;;;;;;;;:::i;:::-;;;;;;:27;-1:-1:-1;;;;;19625:27:0;;;-1:-1:-1;;;;;19625:27:0;;;;;19665:58;19682:4;19697:10;19710:12;19665:8;:58::i;:::-;19762:220;;-1:-1:-1;;;19762:220:0;;-1:-1:-1;;;;;19762:10:0;:61;;;;:220;;19838:12;;19865:1;;19909:4;;19936;;19956:15;;19762:220;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20000:48:0;;;7642:25:1;;;20026:21:0;7698:2:1;7683:18;;7676:34;20000:48:0;;-1:-1:-1;7615:18:1;;-1:-1:-1;20000:48:0;;;;;;;20083:10;;20075:82;;-1:-1:-1;;;;;20083:10:0;;;;20121:21;;20075:82;;;;20121:21;20083:10;20075:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19227:938:0:o;10731:98::-;10789:7;10816:5;10820:1;10816;:5;:::i;:::-;10809:12;10731:98;-1:-1:-1;;;10731:98:0:o;10837:::-;10895:7;10922:5;10926:1;10922;: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:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:380::-;2979:1;2975:12;;;;3022;;;3043:61;;3097:4;3089:6;3085:17;3075:27;;3043:61;3150:2;3142:6;3139:14;3119:18;3116:38;3113:161;;3196:10;3191:3;3187:20;3184:1;3177:31;3231:4;3228:1;3221:15;3259:4;3256:1;3249:15;3113:161;;2900:380;;;:::o;3285:356::-;3487:2;3469:21;;;3506:18;;;3499:30;3565:34;3560:2;3545:18;;3538:62;3632:2;3617:18;;3285:356::o;3646:127::-;3707:10;3702:3;3698:20;3695:1;3688:31;3738:4;3735:1;3728:15;3762:4;3759:1;3752:15;3778:125;3843:9;;;3864:10;;;3861:36;;;3877:18;;:::i;5830:128::-;5897:9;;;5918:11;;;5915:37;;;5932:18;;:::i;6095:127::-;6156:10;6151:3;6147:20;6144:1;6137:31;6187:4;6184:1;6177:15;6211:4;6208:1;6201:15;6227:251;6297:6;6350:2;6338:9;6329:7;6325:23;6321:32;6318:52;;;6366:1;6363;6356:12;6318:52;6398:9;6392:16;6417:31;6442:5;6417:31;:::i;6483:980::-;6745:4;6793:3;6782:9;6778:19;6824:6;6813:9;6806:25;6850:2;6888:6;6883:2;6872:9;6868:18;6861:34;6931:3;6926:2;6915:9;6911:18;6904:31;6955:6;6990;6984:13;7021:6;7013;7006:22;7059:3;7048:9;7044:19;7037:26;;7098:2;7090:6;7086:15;7072:29;;7119:1;7129:195;7143:6;7140:1;7137:13;7129:195;;;7208:13;;-1:-1:-1;;;;;7204:39:1;7192:52;;7299:15;;;;7264:12;;;;7240:1;7158:9;7129:195;;;-1:-1:-1;;;;;;;7380:32:1;;;;7375:2;7360:18;;7353:60;-1:-1:-1;;;7444:3:1;7429:19;7422:35;7341:3;6483:980;-1:-1:-1;;;6483:980:1:o;7931:168::-;8004:9;;;8035;;8052:15;;;8046:22;;8032:37;8022:71;;8073:18;;:::i;8104:217::-;8144:1;8170;8160:132;;8214:10;8209:3;8205:20;8202:1;8195:31;8249:4;8246:1;8239:15;8277:4;8274:1;8267:15;8160:132;-1:-1:-1;8306:9:1;;8104:217::o

Swarm Source

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