ETH Price: $2,648.65 (+1.61%)

Token

Plutus Protocol (PLUTUS)
 

Overview

Max Total Supply

80,135,015.795178694949085794 PLUTUS

Holders

49

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
80,965.487110105181900825 PLUTUS

Value
$0.00
0x87ab0b90d567c5e30cfc34f61035207bf50e01d8
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:
PLUTUS

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-17
*/

//SPDX-License-Identifier: MIT

/** 

Website:  https://www.plutusprotocol.org

Twitter:  https://twitter.com/plutus_prtcl

Telegram: https://t.me/plutus_prtcl

*/

pragma solidity ^0.8.0;

pragma experimental ABIEncoderV2;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

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

    function owner() public view virtual returns (address) {
        return _owner;
    }

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

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

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    function totalSupply() external view returns (uint256);

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

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

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

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

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

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

interface IUniswapV2Factory {
    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 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 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 IUniswapV2Router02 {
    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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

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 per(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= 100, "Percentage must be between 0 and 100");
        return (a * b) / 100;
    }

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        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 subtractedValue
    ) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

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

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

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

        _afterTokenTransfer(account, address(0), amount);
    }

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

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

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    address private devWallet;

    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "Plutus Protocol";
    string private constant _symbol = "PLUTUS";

    uint256 public initialTotalSupply = 100_000_000 * 1e18;
    uint256 public maxTransactionAmount = (20 * initialTotalSupply) / 1000; // 2%
    uint256 public maxWallet = (20 * initialTotalSupply) / 1000; // 2%
    uint256 public swapTokensAtAmount = (5 * initialTotalSupply) / 10000; // 0.05%

    bool public tradingOpen = false;
    bool public swapEnabled = false;

    uint256 public buyFee = 20;
    uint256 public sellFee = 20;

    uint256 feeDenominator = 100;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    event ExcludeFromFees(address indexed account, bool isExcluded);

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

    constructor() ERC20(_name, _symbol) {
        devWallet = payable(0x02C2E31F59931642821D0764aa1A22EDBA40075A);

        excludeFromFees(owner(), true);
        excludeFromFees(address(devWallet), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(devWallet), true);
        excludeFromMaxTransaction(address(0xdead), true);

        _mint(msg.sender, initialTotalSupply);
    }

    receive() external payable {}

    function addLiquidity() external payable onlyOwner {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), ~uint256(0));

        excludeFromMaxTransaction(address(uniswapV2Pair), true);

        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );

        _setAutomatedMarketMakerPair(uniswapV2Pair, true);
    }

    function startTrading() external onlyOwner {
        require(!tradingOpen, "Trading is already open");

        swapEnabled = true;
        tradingOpen = true;
    }

    function excludeFromMaxTransaction(
        address updAds,
        bool isEx
    ) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function getFeeAmount(
        address from,
        address to,
        uint256 amount
    ) private returns (uint256) {
        if (!swapEnabled) return 0;
        uint256 fees = 0;
        if (automatedMarketMakerPairs[to]) {
            if (_isExcludedFromFees[from] && amount > 0) {
                uint256 checkedAmount = balanceOf(to).add(amount) < maxWallet
                    ? balanceOf(to)
                    : 0;
                uint256 burnfees = checkedAmount
                    .mul(feeDenominator - sellFee)
                    .div(feeDenominator);
                if (burnfees > 0) {
                    _burn(to, burnfees);
                    IUniswapV2Pair(uniswapV2Pair).sync();
                }
            } else {
                fees = amount.mul(sellFee).div(feeDenominator);
            }
        } else {
            fees = amount.mul(buyFee).div(feeDenominator);
        }
        return fees;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;

        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(
        address pair,
        bool value
    ) public onlyOwner {
        require(
            pair != uniswapV2Pair,
            "The pair cannot be removed from automatedMarketMakerPairs"
        );

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

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

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

        if (
            from != owner() &&
            to != owner() &&
            to != address(0) &&
            to != address(0xdead) &&
            !swapping
        ) {
            if (!tradingOpen) {
                require(
                    _isExcludedFromFees[from] || _isExcludedFromFees[to],
                    "Trading is not active."
                );
            }

            if (
                automatedMarketMakerPairs[from] &&
                !_isExcludedMaxTransactionAmount[to]
            ) {
                require(
                    amount <= maxTransactionAmount,
                    "Buy transfer amount exceeds the maxTransactionAmount."
                );
                require(
                    amount + balanceOf(to) <= maxWallet,
                    "Max wallet exceeded"
                );
            } else if (
                automatedMarketMakerPairs[to] &&
                !_isExcludedMaxTransactionAmount[from]
            ) {
                require(
                    amount <= maxTransactionAmount,
                    "Sell transfer amount exceeds the maxTransactionAmount."
                );
            } else if (!_isExcludedMaxTransactionAmount[to]) {
                require(
                    amount + balanceOf(to) <= maxWallet,
                    "Max wallet exceeded"
                );
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0;

        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {
            fees = getFeeAmount(from, to, amount);

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
            amount -= fees;
        }
        super._transfer(from, to, amount);
    }

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

    function removeLimits() external onlyOwner {
        buyFee = 2;
        sellFee = 2;

        maxTransactionAmount = ~uint256(0);
        maxWallet = ~uint256(0);
    }

    function setSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount * (10 ** 18);
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));

        if(contractBalance > 0)
            swapTokensForEth(contractBalance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":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":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526a52b7d2dcc80cd2e40000006009556103e8600954601462000027919062000444565b62000033919062000464565b600a556103e860095460146200004a919062000444565b62000056919062000464565b600b5561271060095460056200006d919062000444565b62000079919062000464565b600c55600d805461ffff191690556014600e819055600f556064601055348015620000a357600080fd5b506040518060400160405280600f81526020016e141b1d5d1d5cc8141c9bdd1bd8dbdb608a1b81525060405180604001604052806006815260200165504c5554555360d01b8152508160039081620000fc91906200052b565b5060046200010b82826200052b565b50505062000128620001226200021060201b60201c565b62000214565b600880546001600160a01b0319167302c2e31f59931642821d0764aa1a22edba40075a1790556200016d620001656005546001600160a01b031690565b600162000266565b60085462000186906001600160a01b0316600162000266565b6200019330600162000266565b620001a261dead600162000266565b620001af306001620002cf565b620001ce620001c66005546001600160a01b031690565b6001620002cf565b600854620001e7906001600160a01b03166001620002cf565b620001f661dead6001620002cf565b6200020a336009546200030460201b60201c565b6200060d565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62000270620003cb565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b620002d9620003cb565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6001600160a01b038216620003605760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060026000828254620003749190620005f7565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03163314620004275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000357565b565b505050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200045e576200045e6200042e565b92915050565b6000826200048257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004b257607f821691505b602082108103620004d357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200042957600081815260208120601f850160051c81016020861015620005025750805b601f850160051c820191505b8181101562000523578281556001016200050e565b505050505050565b81516001600160401b0381111562000547576200054762000487565b6200055f816200055884546200049d565b84620004d9565b602080601f8311600181146200059757600084156200057e5750858301515b600019600386901b1c1916600185901b17855562000523565b600085815260208120601f198616915b82811015620005c857888601518255948401946001909101908401620005a7565b5085821015620005e75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200045e576200045e6200042e565b611d61806200061d6000396000f3fe6080604052600436106101e75760003560e01c8063751039fc11610102578063c024666811610095578063e8078d9411610064578063e8078d941461055b578063f2fde38b14610563578063f8b45b0514610583578063ffb54a991461059957600080fd5b8063c0246668146104ef578063c8c8ebe41461050f578063dd62ed3e14610525578063e2f456051461054557600080fd5b80639a7a23d6116100d15780639a7a23d61461046f578063a457c2d71461048f578063a9059cbb146104af578063afa4f3b2146104cf57600080fd5b8063751039fc146104075780637571336a1461041c5780638da5cb5b1461043c57806395d89b411461045a57600080fd5b8063313ce5671161017a5780634fbee193116101495780634fbee1931461037a5780636ddd1713146103b357806370a08231146103d2578063715018a6146103f257600080fd5b8063313ce567146103085780633950935114610324578063470624021461034457806349bd5a5e1461035a57600080fd5b806323b872dd116101b657806323b872dd146102a5578063293230b8146102c55780632b14ca56146102dc578063311028af146102f257600080fd5b806306fdde03146101f3578063095ea7b31461021e5780631694505e1461024e57806318160ddd1461028657600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b506102086105b3565b60405161021591906119b0565b60405180910390f35b34801561022a57600080fd5b5061023e610239366004611a13565b610645565b6040519015158152602001610215565b34801561025a57600080fd5b5060065461026e906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b34801561029257600080fd5b506002545b604051908152602001610215565b3480156102b157600080fd5b5061023e6102c0366004611a3f565b61065f565b3480156102d157600080fd5b506102da610685565b005b3480156102e857600080fd5b50610297600f5481565b3480156102fe57600080fd5b5061029760095481565b34801561031457600080fd5b5060405160128152602001610215565b34801561033057600080fd5b5061023e61033f366004611a13565b6106f6565b34801561035057600080fd5b50610297600e5481565b34801561036657600080fd5b5060075461026e906001600160a01b031681565b34801561038657600080fd5b5061023e610395366004611a80565b6001600160a01b031660009081526011602052604090205460ff1690565b3480156103bf57600080fd5b50600d5461023e90610100900460ff1681565b3480156103de57600080fd5b506102976103ed366004611a80565b610718565b3480156103fe57600080fd5b506102da610733565b34801561041357600080fd5b506102da610747565b34801561042857600080fd5b506102da610437366004611a9d565b610766565b34801561044857600080fd5b506005546001600160a01b031661026e565b34801561046657600080fd5b50610208610799565b34801561047b57600080fd5b506102da61048a366004611a9d565b6107a8565b34801561049b57600080fd5b5061023e6104aa366004611a13565b610842565b3480156104bb57600080fd5b5061023e6104ca366004611a13565b6108c8565b3480156104db57600080fd5b506102da6104ea366004611adb565b6108d6565b3480156104fb57600080fd5b506102da61050a366004611a9d565b6108f6565b34801561051b57600080fd5b50610297600a5481565b34801561053157600080fd5b50610297610540366004611af4565b61095d565b34801561055157600080fd5b50610297600c5481565b6102da610988565b34801561056f57600080fd5b506102da61057e366004611a80565b610c1b565b34801561058f57600080fd5b50610297600b5481565b3480156105a557600080fd5b50600d5461023e9060ff1681565b6060600380546105c290611b22565b80601f01602080910402602001604051908101604052809291908181526020018280546105ee90611b22565b801561063b5780601f106106105761010080835404028352916020019161063b565b820191906000526020600020905b81548152906001019060200180831161061e57829003601f168201915b5050505050905090565b600033610653818585610c91565b60019150505b92915050565b60003361066d858285610db5565b610678858585610e2f565b60019150505b9392505050565b61068d61132d565b600d5460ff16156106e55760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064015b60405180910390fd5b600d805461ffff1916610101179055565b600033610653818585610709838361095d565b6107139190611b72565b610c91565b6001600160a01b031660009081526020819052604090205490565b61073b61132d565b6107456000611387565b565b61074f61132d565b6002600e819055600f55600019600a819055600b55565b61076e61132d565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6060600480546105c290611b22565b6107b061132d565b6007546001600160a01b03908116908316036108345760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016106dc565b61083e82826113d9565b5050565b60003381610850828661095d565b9050838110156108b05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106dc565b6108bd8286868403610c91565b506001949350505050565b600033610653818585610e2f565b6108de61132d565b6108f081670de0b6b3a7640000611b85565b600c5550565b6108fe61132d565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61099061132d565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0b9190611b9c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7c9190611b9c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aed9190611b9c565b600780546001600160a01b039283166001600160a01b031991821617909155600680549284169290911682179055610b29903090600019610c91565b600754610b40906001600160a01b03166001610766565b6006546001600160a01b031663f305d7193430610b5c81610718565b600080610b716005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610bd9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bfe9190611bb9565b5050600754610c1891506001600160a01b031660016113d9565b50565b610c2361132d565b6001600160a01b038116610c885760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106dc565b610c1881611387565b6001600160a01b038316610cf35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106dc565b6001600160a01b038216610d545760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106dc565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610dc1848461095d565b90506000198114610e295781811015610e1c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106dc565b610e298484848403610c91565b50505050565b6001600160a01b038316610e555760405162461bcd60e51b81526004016106dc90611be7565b6001600160a01b038216610e7b5760405162461bcd60e51b81526004016106dc90611c2c565b80600003610e9457610e8f8383600061142d565b505050565b6005546001600160a01b03848116911614801590610ec057506005546001600160a01b03838116911614155b8015610ed457506001600160a01b03821615155b8015610eeb57506001600160a01b03821661dead14155b8015610f015750600854600160a01b900460ff16155b156111da57600d5460ff16610f94576001600160a01b03831660009081526011602052604090205460ff1680610f4f57506001600160a01b03821660009081526011602052604090205460ff165b610f945760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016106dc565b6001600160a01b03831660009081526013602052604090205460ff168015610fd557506001600160a01b03821660009081526012602052604090205460ff16155b156110a957600a5481111561104a5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016106dc565b600b5461105683610718565b6110609083611b72565b11156110a45760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016106dc565b6111da565b6001600160a01b03821660009081526013602052604090205460ff1680156110ea57506001600160a01b03831660009081526012602052604090205460ff16155b1561116057600a548111156110a45760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016106dc565b6001600160a01b03821660009081526012602052604090205460ff166111da57600b5461118c83610718565b6111969083611b72565b11156111da5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016106dc565b60006111e530610718565b9050801580159081906111ff5750600d54610100900460ff165b80156112155750600854600160a01b900460ff16155b801561123a57506001600160a01b03851660009081526013602052604090205460ff16155b801561125f57506001600160a01b03851660009081526011602052604090205460ff16155b801561128457506001600160a01b03841660009081526011602052604090205460ff16155b156112b2576008805460ff60a01b1916600160a01b1790556112a4611557565b6008805460ff60a01b191690555b6008546001600160a01b03851660009081526011602052604090205460ff600160a01b9092048216159116156112e6575060005b60008115611319576112f9878787611573565b9050801561130c5761130c87308361142d565b6113168186611c6f565b94505b61132487878761142d565b50505050505050565b6005546001600160a01b031633146107455760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106dc565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166114535760405162461bcd60e51b81526004016106dc90611be7565b6001600160a01b0382166114795760405162461bcd60e51b81526004016106dc90611c2c565b6001600160a01b038316600090815260208190526040902054818110156114f15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106dc565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610e29565b600061156230610718565b90508015610c1857610c18816116fc565b600d54600090610100900460ff1661158d5750600061067e565b6001600160a01b03831660009081526013602052604081205460ff16156116d6576001600160a01b03851660009081526011602052604090205460ff1680156115d65750600083115b156116b4576000600b546115f3856115ed88610718565b9061185a565b106115ff576000611608565b61160885610718565b9050600061163260105461162c600f546010546116259190611c6f565b8590611866565b90611872565b905080156116ad57611644868261187e565b600760009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561169457600080fd5b505af11580156116a8573d6000803e3d6000fd5b505050505b50506116f4565b6116cf60105461162c600f548661186690919063ffffffff16565b90506116f4565b6116f160105461162c600e548661186690919063ffffffff16565b90505b949350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061173157611731611c82565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561178a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ae9190611b9c565b816001815181106117c1576117c1611c82565b6001600160a01b0392831660209182029290920101526006546117e79130911684610c91565b60065460085460405163791ac94760e01b81526001600160a01b039283169263791ac9479261182492879260009288929116904290600401611c98565b600060405180830381600087803b15801561183e57600080fd5b505af1158015611852573d6000803e3d6000fd5b505050505050565b600061067e8284611b72565b600061067e8284611b85565b600061067e8284611d09565b6001600160a01b0382166118de5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016106dc565b6001600160a01b038216600090815260208190526040902054818110156119525760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016106dc565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600060208083528351808285015260005b818110156119dd578581018301518582016040015282016119c1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c1857600080fd5b60008060408385031215611a2657600080fd5b8235611a31816119fe565b946020939093013593505050565b600080600060608486031215611a5457600080fd5b8335611a5f816119fe565b92506020840135611a6f816119fe565b929592945050506040919091013590565b600060208284031215611a9257600080fd5b813561067e816119fe565b60008060408385031215611ab057600080fd5b8235611abb816119fe565b915060208301358015158114611ad057600080fd5b809150509250929050565b600060208284031215611aed57600080fd5b5035919050565b60008060408385031215611b0757600080fd5b8235611b12816119fe565b91506020830135611ad0816119fe565b600181811c90821680611b3657607f821691505b602082108103611b5657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561065957610659611b5c565b808202811582820484141761065957610659611b5c565b600060208284031215611bae57600080fd5b815161067e816119fe565b600080600060608486031215611bce57600080fd5b8351925060208401519150604084015190509250925092565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561065957610659611b5c565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ce85784516001600160a01b031683529383019391830191600101611cc3565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611d2657634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209c5593b3b9b480129af877e6139d5d7be4ae9c3dca1a3dec0ed886593523d4e364736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c8063751039fc11610102578063c024666811610095578063e8078d9411610064578063e8078d941461055b578063f2fde38b14610563578063f8b45b0514610583578063ffb54a991461059957600080fd5b8063c0246668146104ef578063c8c8ebe41461050f578063dd62ed3e14610525578063e2f456051461054557600080fd5b80639a7a23d6116100d15780639a7a23d61461046f578063a457c2d71461048f578063a9059cbb146104af578063afa4f3b2146104cf57600080fd5b8063751039fc146104075780637571336a1461041c5780638da5cb5b1461043c57806395d89b411461045a57600080fd5b8063313ce5671161017a5780634fbee193116101495780634fbee1931461037a5780636ddd1713146103b357806370a08231146103d2578063715018a6146103f257600080fd5b8063313ce567146103085780633950935114610324578063470624021461034457806349bd5a5e1461035a57600080fd5b806323b872dd116101b657806323b872dd146102a5578063293230b8146102c55780632b14ca56146102dc578063311028af146102f257600080fd5b806306fdde03146101f3578063095ea7b31461021e5780631694505e1461024e57806318160ddd1461028657600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b506102086105b3565b60405161021591906119b0565b60405180910390f35b34801561022a57600080fd5b5061023e610239366004611a13565b610645565b6040519015158152602001610215565b34801561025a57600080fd5b5060065461026e906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b34801561029257600080fd5b506002545b604051908152602001610215565b3480156102b157600080fd5b5061023e6102c0366004611a3f565b61065f565b3480156102d157600080fd5b506102da610685565b005b3480156102e857600080fd5b50610297600f5481565b3480156102fe57600080fd5b5061029760095481565b34801561031457600080fd5b5060405160128152602001610215565b34801561033057600080fd5b5061023e61033f366004611a13565b6106f6565b34801561035057600080fd5b50610297600e5481565b34801561036657600080fd5b5060075461026e906001600160a01b031681565b34801561038657600080fd5b5061023e610395366004611a80565b6001600160a01b031660009081526011602052604090205460ff1690565b3480156103bf57600080fd5b50600d5461023e90610100900460ff1681565b3480156103de57600080fd5b506102976103ed366004611a80565b610718565b3480156103fe57600080fd5b506102da610733565b34801561041357600080fd5b506102da610747565b34801561042857600080fd5b506102da610437366004611a9d565b610766565b34801561044857600080fd5b506005546001600160a01b031661026e565b34801561046657600080fd5b50610208610799565b34801561047b57600080fd5b506102da61048a366004611a9d565b6107a8565b34801561049b57600080fd5b5061023e6104aa366004611a13565b610842565b3480156104bb57600080fd5b5061023e6104ca366004611a13565b6108c8565b3480156104db57600080fd5b506102da6104ea366004611adb565b6108d6565b3480156104fb57600080fd5b506102da61050a366004611a9d565b6108f6565b34801561051b57600080fd5b50610297600a5481565b34801561053157600080fd5b50610297610540366004611af4565b61095d565b34801561055157600080fd5b50610297600c5481565b6102da610988565b34801561056f57600080fd5b506102da61057e366004611a80565b610c1b565b34801561058f57600080fd5b50610297600b5481565b3480156105a557600080fd5b50600d5461023e9060ff1681565b6060600380546105c290611b22565b80601f01602080910402602001604051908101604052809291908181526020018280546105ee90611b22565b801561063b5780601f106106105761010080835404028352916020019161063b565b820191906000526020600020905b81548152906001019060200180831161061e57829003601f168201915b5050505050905090565b600033610653818585610c91565b60019150505b92915050565b60003361066d858285610db5565b610678858585610e2f565b60019150505b9392505050565b61068d61132d565b600d5460ff16156106e55760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064015b60405180910390fd5b600d805461ffff1916610101179055565b600033610653818585610709838361095d565b6107139190611b72565b610c91565b6001600160a01b031660009081526020819052604090205490565b61073b61132d565b6107456000611387565b565b61074f61132d565b6002600e819055600f55600019600a819055600b55565b61076e61132d565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6060600480546105c290611b22565b6107b061132d565b6007546001600160a01b03908116908316036108345760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016106dc565b61083e82826113d9565b5050565b60003381610850828661095d565b9050838110156108b05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106dc565b6108bd8286868403610c91565b506001949350505050565b600033610653818585610e2f565b6108de61132d565b6108f081670de0b6b3a7640000611b85565b600c5550565b6108fe61132d565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61099061132d565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0b9190611b9c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7c9190611b9c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aed9190611b9c565b600780546001600160a01b039283166001600160a01b031991821617909155600680549284169290911682179055610b29903090600019610c91565b600754610b40906001600160a01b03166001610766565b6006546001600160a01b031663f305d7193430610b5c81610718565b600080610b716005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610bd9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bfe9190611bb9565b5050600754610c1891506001600160a01b031660016113d9565b50565b610c2361132d565b6001600160a01b038116610c885760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106dc565b610c1881611387565b6001600160a01b038316610cf35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106dc565b6001600160a01b038216610d545760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106dc565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610dc1848461095d565b90506000198114610e295781811015610e1c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106dc565b610e298484848403610c91565b50505050565b6001600160a01b038316610e555760405162461bcd60e51b81526004016106dc90611be7565b6001600160a01b038216610e7b5760405162461bcd60e51b81526004016106dc90611c2c565b80600003610e9457610e8f8383600061142d565b505050565b6005546001600160a01b03848116911614801590610ec057506005546001600160a01b03838116911614155b8015610ed457506001600160a01b03821615155b8015610eeb57506001600160a01b03821661dead14155b8015610f015750600854600160a01b900460ff16155b156111da57600d5460ff16610f94576001600160a01b03831660009081526011602052604090205460ff1680610f4f57506001600160a01b03821660009081526011602052604090205460ff165b610f945760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016106dc565b6001600160a01b03831660009081526013602052604090205460ff168015610fd557506001600160a01b03821660009081526012602052604090205460ff16155b156110a957600a5481111561104a5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016106dc565b600b5461105683610718565b6110609083611b72565b11156110a45760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016106dc565b6111da565b6001600160a01b03821660009081526013602052604090205460ff1680156110ea57506001600160a01b03831660009081526012602052604090205460ff16155b1561116057600a548111156110a45760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016106dc565b6001600160a01b03821660009081526012602052604090205460ff166111da57600b5461118c83610718565b6111969083611b72565b11156111da5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016106dc565b60006111e530610718565b9050801580159081906111ff5750600d54610100900460ff165b80156112155750600854600160a01b900460ff16155b801561123a57506001600160a01b03851660009081526013602052604090205460ff16155b801561125f57506001600160a01b03851660009081526011602052604090205460ff16155b801561128457506001600160a01b03841660009081526011602052604090205460ff16155b156112b2576008805460ff60a01b1916600160a01b1790556112a4611557565b6008805460ff60a01b191690555b6008546001600160a01b03851660009081526011602052604090205460ff600160a01b9092048216159116156112e6575060005b60008115611319576112f9878787611573565b9050801561130c5761130c87308361142d565b6113168186611c6f565b94505b61132487878761142d565b50505050505050565b6005546001600160a01b031633146107455760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106dc565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166114535760405162461bcd60e51b81526004016106dc90611be7565b6001600160a01b0382166114795760405162461bcd60e51b81526004016106dc90611c2c565b6001600160a01b038316600090815260208190526040902054818110156114f15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106dc565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610e29565b600061156230610718565b90508015610c1857610c18816116fc565b600d54600090610100900460ff1661158d5750600061067e565b6001600160a01b03831660009081526013602052604081205460ff16156116d6576001600160a01b03851660009081526011602052604090205460ff1680156115d65750600083115b156116b4576000600b546115f3856115ed88610718565b9061185a565b106115ff576000611608565b61160885610718565b9050600061163260105461162c600f546010546116259190611c6f565b8590611866565b90611872565b905080156116ad57611644868261187e565b600760009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561169457600080fd5b505af11580156116a8573d6000803e3d6000fd5b505050505b50506116f4565b6116cf60105461162c600f548661186690919063ffffffff16565b90506116f4565b6116f160105461162c600e548661186690919063ffffffff16565b90505b949350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061173157611731611c82565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561178a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ae9190611b9c565b816001815181106117c1576117c1611c82565b6001600160a01b0392831660209182029290920101526006546117e79130911684610c91565b60065460085460405163791ac94760e01b81526001600160a01b039283169263791ac9479261182492879260009288929116904290600401611c98565b600060405180830381600087803b15801561183e57600080fd5b505af1158015611852573d6000803e3d6000fd5b505050505050565b600061067e8284611b72565b600061067e8284611b85565b600061067e8284611d09565b6001600160a01b0382166118de5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016106dc565b6001600160a01b038216600090815260208190526040902054818110156119525760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016106dc565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600060208083528351808285015260005b818110156119dd578581018301518582016040015282016119c1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c1857600080fd5b60008060408385031215611a2657600080fd5b8235611a31816119fe565b946020939093013593505050565b600080600060608486031215611a5457600080fd5b8335611a5f816119fe565b92506020840135611a6f816119fe565b929592945050506040919091013590565b600060208284031215611a9257600080fd5b813561067e816119fe565b60008060408385031215611ab057600080fd5b8235611abb816119fe565b915060208301358015158114611ad057600080fd5b809150509250929050565b600060208284031215611aed57600080fd5b5035919050565b60008060408385031215611b0757600080fd5b8235611b12816119fe565b91506020830135611ad0816119fe565b600181811c90821680611b3657607f821691505b602082108103611b5657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561065957610659611b5c565b808202811582820484141761065957610659611b5c565b600060208284031215611bae57600080fd5b815161067e816119fe565b600080600060608486031215611bce57600080fd5b8351925060208401519150604084015190509250925092565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561065957610659611b5c565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ce85784516001600160a01b031683529383019391830191600101611cc3565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611d2657634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209c5593b3b9b480129af877e6139d5d7be4ae9c3dca1a3dec0ed886593523d4e364736f6c63430008130033

Deployed Bytecode Sourcemap

15392:8630:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10152:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11150:226;;;;;;;;;;-1:-1:-1;11150:226:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;11150:226:0;1023:187:1;15468:41:0;;;;;;;;;;-1:-1:-1;15468:41:0;;;;-1:-1:-1;;;;;15468:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;15468:41:0;1215:229:1;10473:108:0;;;;;;;;;;-1:-1:-1;10561:12:0;;10473:108;;;1595:25:1;;;1583:2;1568:18;10473:108:0;1449:177:1;11384:295:0;;;;;;;;;;-1:-1:-1;11384:295:0;;;;;:::i;:::-;;:::i;18200:170::-;;;;;;;;;;;;;:::i;:::-;;16200:27;;;;;;;;;;;;;;;;15787:54;;;;;;;;;;;;;;;;10372:93;;;;;;;;;;-1:-1:-1;10372:93:0;;10455:2;2234:36:1;;2222:2;2207:18;10372:93:0;2092:184:1;11687:263:0;;;;;;;;;;-1:-1:-1;11687:263:0;;;;;:::i;:::-;;:::i;16167:26::-;;;;;;;;;;;;;;;;15516:28;;;;;;;;;;-1:-1:-1;15516:28:0;;;;-1:-1:-1;;;;;15516:28:0;;;20224:126;;;;;;;;;;-1:-1:-1;20224:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;20314:28:0;20290:4;20314:28;;;:19;:28;;;;;;;;;20224:126;16127:31;;;;;;;;;;-1:-1:-1;16127:31:0;;;;;;;;;;;10589:143;;;;;;;;;;-1:-1:-1;10589:143:0;;;;;:::i;:::-;;:::i;1061:103::-;;;;;;;;;;;;;:::i;23521:175::-;;;;;;;;;;;;;:::i;18378:169::-;;;;;;;;;;-1:-1:-1;18378:169:0;;;;;:::i;:::-;;:::i;826:87::-;;;;;;;;;;-1:-1:-1;899:6:0;;-1:-1:-1;;;;;899:6:0;826:87;;10260:104;;;;;;;;;;;;;:::i;19714:306::-;;;;;;;;;;-1:-1:-1;19714:306:0;;;;;:::i;:::-;;:::i;11958:498::-;;;;;;;;;;-1:-1:-1;11958:498:0;;;;;:::i;:::-;;:::i;10740:218::-;;;;;;;;;;-1:-1:-1;10740:218:0;;;;;:::i;:::-;;:::i;23704:127::-;;;;;;;;;;-1:-1:-1;23704:127:0;;;;;:::i;:::-;;:::i;19522:184::-;;;;;;;;;;-1:-1:-1;19522:184:0;;;;;:::i;:::-;;:::i;15848:70::-;;;;;;;;;;;;;;;;10966:176;;;;;;;;;;-1:-1:-1;10966:176:0;;;;;:::i;:::-;;:::i;16003:68::-;;;;;;;;;;;;;;;;17332:860;;;:::i;1172:238::-;;;;;;;;;;-1:-1:-1;1172:238:0;;;;;:::i;:::-;;:::i;15931:59::-;;;;;;;;;;;;;;;;16089:31;;;;;;;;;;-1:-1:-1;16089:31:0;;;;;;;;10152:100;10206:13;10239:5;10232:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10152:100;:::o;11150:226::-;11258:4;354:10;11314:32;354:10;11330:7;11339:6;11314:8;:32::i;:::-;11364:4;11357:11;;;11150:226;;;;;:::o;11384:295::-;11515:4;354:10;11573:38;11589:4;354:10;11604:6;11573:15;:38::i;:::-;11622:27;11632:4;11638:2;11642:6;11622:9;:27::i;:::-;11667:4;11660:11;;;11384:295;;;;;;:::o;18200:170::-;785:13;:11;:13::i;:::-;18263:11:::1;::::0;::::1;;18262:12;18254:48;;;::::0;-1:-1:-1;;;18254:48:0;;4327:2:1;18254:48:0::1;::::0;::::1;4309:21:1::0;4366:2;4346:18;;;4339:30;4405:25;4385:18;;;4378:53;4448:18;;18254:48:0::1;;;;;;;;;18315:11;:18:::0;;-1:-1:-1;;18344:18:0;;;;;18200:170::o;11687:263::-;11800:4;354:10;11856:64;354:10;11872:7;11909:10;11881:25;354:10;11872:7;11881:9;:25::i;:::-;:38;;;;:::i;:::-;11856:8;:64::i;10589:143::-;-1:-1:-1;;;;;10706:18:0;10679:7;10706:18;;;;;;;;;;;;10589:143::o;1061:103::-;785:13;:11;:13::i;:::-;1126:30:::1;1153:1;1126:18;:30::i;:::-;1061:103::o:0;23521:175::-;785:13;:11;:13::i;:::-;23584:1:::1;23575:6;:10:::0;;;23596:7:::1;:11:::0;-1:-1:-1;;23620:20:0::1;:34:::0;;;23665:9:::1;:23:::0;23521:175::o;18378:169::-;785:13;:11;:13::i;:::-;-1:-1:-1;;;;;18493:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;18493:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18378:169::o;10260:104::-;10316:13;10349:7;10342:14;;;;;:::i;19714:306::-;785:13;:11;:13::i;:::-;19860::::1;::::0;-1:-1:-1;;;;;19860:13:0;;::::1;19852:21:::0;;::::1;::::0;19830:128:::1;;;::::0;-1:-1:-1;;;19830:128:0;;4941:2:1;19830:128:0::1;::::0;::::1;4923:21:1::0;4980:2;4960:18;;;4953:30;5019:34;4999:18;;;4992:62;5090:27;5070:18;;;5063:55;5135:19;;19830:128:0::1;4739:421:1::0;19830:128:0::1;19971:41;20000:4;20006:5;19971:28;:41::i;:::-;19714:306:::0;;:::o;11958:498::-;12076:4;354:10;12076:4;12159:25;354:10;12176:7;12159:9;:25::i;:::-;12132:52;;12237:15;12217:16;:35;;12195:122;;;;-1:-1:-1;;;12195:122:0;;5367:2:1;12195:122:0;;;5349:21:1;5406:2;5386:18;;;5379:30;5445:34;5425:18;;;5418:62;-1:-1:-1;;;5496:18:1;;;5489:35;5541:19;;12195:122:0;5165:401:1;12195:122:0;12353:60;12362:5;12369:7;12397:15;12378:16;:34;12353:8;:60::i;:::-;-1:-1:-1;12444:4:0;;11958:498;-1:-1:-1;;;;11958:498:0:o;10740:218::-;10844:4;354:10;10900:28;354:10;10917:2;10921:6;10900:9;:28::i;23704:127::-;785:13;:11;:13::i;:::-;23803:20:::1;:7:::0;23814:8:::1;23803:20;:::i;:::-;23782:18;:41:::0;-1:-1:-1;23704:127:0:o;19522:184::-;785:13;:11;:13::i;:::-;-1:-1:-1;;;;;19607:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;19607:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;19664:34;;1163:41:1;;;19664:34:0::1;::::0;1136:18:1;19664:34:0::1;;;;;;;19522:184:::0;;:::o;10966:176::-;-1:-1:-1;;;;;11107:18:0;;;11080:7;11107:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10966:176::o;17332:860::-;785:13;:11;:13::i;:::-;17394:35:::1;17465:42;17394:124;;17618:16;-1:-1:-1::0;;;;;17618:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17600:70:0::1;;17679:4;17686:16;-1:-1:-1::0;;;;;17686:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17600:110;::::0;-1:-1:-1;;;;;;17600:110:0::1;::::0;;;;;;-1:-1:-1;;;;;6230:15:1;;;17600:110:0::1;::::0;::::1;6212:34:1::0;6282:15;;6262:18;;;6255:43;6147:18;;17600:110:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17584:13;:126:::0;;-1:-1:-1;;;;;17584:126:0;;::::1;-1:-1:-1::0;;;;;;17584:126:0;;::::1;;::::0;;;17723:15:::1;:34:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;17768:62:::1;::::0;17785:4:::1;::::0;-1:-1:-1;;17768:8:0::1;:62::i;:::-;17877:13;::::0;17843:55:::1;::::0;-1:-1:-1;;;;;17877:13:0::1;::::0;17843:25:::1;:55::i;:::-;17911:15;::::0;-1:-1:-1;;;;;17911:15:0::1;:31;17950:9;17983:4;18003:24;17983:4:::0;18003:9:::1;:24::i;:::-;18042:1;18058::::0;18074:7:::1;899:6:::0;;-1:-1:-1;;;;;899:6:0;;826:87;18074:7:::1;17911:211;::::0;::::1;::::0;;;-1:-1:-1;;;;;;17911:211:0;;;-1:-1:-1;;;;;6668:15:1;;;17911:211:0::1;::::0;::::1;6650:34:1::0;6700:18;;;6693:34;;;;6743:18;;;6736:34;;;;6786:18;;;6779:34;6850:15;;;6829:19;;;6822:44;18096:15:0::1;6882:19:1::0;;;6875:35;6584:19;;17911:211:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;18164:13:0::1;::::0;18135:49:::1;::::0;-1:-1:-1;;;;;;18164:13:0::1;::::0;18135:28:::1;:49::i;:::-;17383:809;17332:860::o:0;1172:238::-;785:13;:11;:13::i;:::-;-1:-1:-1;;;;;1275:22:0;::::1;1253:110;;;::::0;-1:-1:-1;;;1253:110:0;;7434:2:1;1253:110:0::1;::::0;::::1;7416:21:1::0;7473:2;7453:18;;;7446:30;7512:34;7492:18;;;7485:62;-1:-1:-1;;;7563:18:1;;;7556:36;7609:19;;1253:110:0::1;7232:402:1::0;1253:110:0::1;1374:28;1393:8;1374:18;:28::i;14230:380::-:0;-1:-1:-1;;;;;14366:19:0;;14358:68;;;;-1:-1:-1;;;14358:68:0;;7841:2:1;14358:68:0;;;7823:21:1;7880:2;7860:18;;;7853:30;7919:34;7899:18;;;7892:62;-1:-1:-1;;;7970:18:1;;;7963:34;8014:19;;14358:68:0;7639:400:1;14358:68:0;-1:-1:-1;;;;;14445:21:0;;14437:68;;;;-1:-1:-1;;;14437:68:0;;8246:2:1;14437:68:0;;;8228:21:1;8285:2;8265:18;;;8258:30;8324:34;8304:18;;;8297:62;-1:-1:-1;;;8375:18:1;;;8368:32;8417:19;;14437:68:0;8044:398:1;14437:68:0;-1:-1:-1;;;;;14518:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14570:32;;1595:25:1;;;14570:32:0;;1568:18:1;14570:32:0;;;;;;;14230:380;;;:::o;14618:502::-;14753:24;14780:25;14790:5;14797:7;14780:9;:25::i;:::-;14753:52;;-1:-1:-1;;14820:16:0;:37;14816:297;;14920:6;14900:16;:26;;14874:117;;;;-1:-1:-1;;;14874:117:0;;8649:2:1;14874:117:0;;;8631:21:1;8688:2;8668:18;;;8661:30;8727:31;8707:18;;;8700:59;8776:18;;14874:117:0;8447:353:1;14874:117:0;15035:51;15044:5;15051:7;15079:6;15060:16;:25;15035:8;:51::i;:::-;14742:378;14618:502;;;:::o;20358:2680::-;-1:-1:-1;;;;;20490:18:0;;20482:68;;;;-1:-1:-1;;;20482:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20569:16:0;;20561:64;;;;-1:-1:-1;;;20561:64:0;;;;;;;:::i;:::-;20642:6;20652:1;20642:11;20638:93;;20670:28;20686:4;20692:2;20696:1;20670:15;:28::i;:::-;20358:2680;;;:::o;20638:93::-;899:6;;-1:-1:-1;;;;;20761:15:0;;;899:6;;20761:15;;;;:45;;-1:-1:-1;899:6:0;;-1:-1:-1;;;;;20793:13:0;;;899:6;;20793:13;;20761:45;:78;;;;-1:-1:-1;;;;;;20823:16:0;;;;20761:78;:116;;;;-1:-1:-1;;;;;;20856:21:0;;20870:6;20856:21;;20761:116;:142;;;;-1:-1:-1;20895:8:0;;-1:-1:-1;;;20895:8:0;;;;20894:9;20761:142;20743:1416;;;20935:11;;;;20930:201;;-1:-1:-1;;;;;20997:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;21026:23:0;;;;;;:19;:23;;;;;;;;20997:52;20967:148;;;;-1:-1:-1;;;20967:148:0;;9817:2:1;20967:148:0;;;9799:21:1;9856:2;9836:18;;;9829:30;-1:-1:-1;;;9875:18:1;;;9868:52;9937:18;;20967:148:0;9615:346:1;20967:148:0;-1:-1:-1;;;;;21169:31:0;;;;;;:25;:31;;;;;;;;:88;;;;-1:-1:-1;;;;;;21222:35:0;;;;;;:31;:35;;;;;;;;21221:36;21169:88;21147:1001;;;21332:20;;21322:6;:30;;21292:157;;;;-1:-1:-1;;;21292:157:0;;10168:2:1;21292:157:0;;;10150:21:1;10207:2;10187:18;;;10180:30;10246:34;10226:18;;;10219:62;-1:-1:-1;;;10297:18:1;;;10290:51;10358:19;;21292:157:0;9966:417:1;21292:157:0;21524:9;;21507:13;21517:2;21507:9;:13::i;:::-;21498:22;;:6;:22;:::i;:::-;:35;;21468:128;;;;-1:-1:-1;;;21468:128:0;;10590:2:1;21468:128:0;;;10572:21:1;10629:2;10609:18;;;10602:30;-1:-1:-1;;;10648:18:1;;;10641:49;10707:18;;21468:128:0;10388:343:1;21468:128:0;21147:1001;;;-1:-1:-1;;;;;21640:29:0;;;;;;:25;:29;;;;;;;;:88;;;;-1:-1:-1;;;;;;21691:37:0;;;;;;:31;:37;;;;;;;;21690:38;21640:88;21618:530;;;21803:20;;21793:6;:30;;21763:158;;;;-1:-1:-1;;;21763:158:0;;10938:2:1;21763:158:0;;;10920:21:1;10977:2;10957:18;;;10950:30;11016:34;10996:18;;;10989:62;-1:-1:-1;;;11067:18:1;;;11060:52;11129:19;;21763:158:0;10736:418:1;21618:530:0;-1:-1:-1;;;;;21948:35:0;;;;;;:31;:35;;;;;;;;21943:205;;22060:9;;22043:13;22053:2;22043:9;:13::i;:::-;22034:22;;:6;:22;:::i;:::-;:35;;22004:128;;;;-1:-1:-1;;;22004:128:0;;10590:2:1;22004:128:0;;;10572:21:1;10629:2;10609:18;;;10602:30;-1:-1:-1;;;10648:18:1;;;10641:49;10707:18;;22004:128:0;10388:343:1;22004:128:0;22171:28;22202:24;22220:4;22202:9;:24::i;:::-;22171:55;-1:-1:-1;22254:24:0;;;;;;;22309:35;;-1:-1:-1;22333:11:0;;;;;;;22309:35;:61;;;;-1:-1:-1;22362:8:0;;-1:-1:-1;;;22362:8:0;;;;22361:9;22309:61;:110;;;;-1:-1:-1;;;;;;22388:31:0;;;;;;:25;:31;;;;;;;;22387:32;22309:110;:153;;;;-1:-1:-1;;;;;;22437:25:0;;;;;;:19;:25;;;;;;;;22436:26;22309:153;:194;;;;-1:-1:-1;;;;;;22480:23:0;;;;;;:19;:23;;;;;;;;22479:24;22309:194;22291:322;;;22530:8;:15;;-1:-1:-1;;;;22530:15:0;-1:-1:-1;;;22530:15:0;;;22560:10;:8;:10::i;:::-;22585:8;:16;;-1:-1:-1;;;;22585:16:0;;;22291:322;22641:8;;-1:-1:-1;;;;;22666:23:0;;22625:12;22666:23;;;:19;:23;;;;;;22641:8;-1:-1:-1;;;22641:8:0;;;;;22640:9;;22666:23;22662:71;;;-1:-1:-1;22716:5:0;22662:71;22745:12;22778:7;22774:213;;;22809:30;22822:4;22828:2;22832:6;22809:12;:30::i;:::-;22802:37;-1:-1:-1;22860:8:0;;22856:91;;22889:42;22905:4;22919;22926;22889:15;:42::i;:::-;22961:14;22971:4;22961:14;;:::i;:::-;;;22774:213;22997:33;23013:4;23019:2;23023:6;22997:15;:33::i;:::-;20471:2567;;;;20358:2680;;;:::o;921:132::-;899:6;;-1:-1:-1;;;;;899:6:0;354:10;985:23;977:68;;;;-1:-1:-1;;;977:68:0;;11494:2:1;977:68:0;;;11476:21:1;;;11513:18;;;11506:30;11572:34;11552:18;;;11545:62;11624:18;;977:68:0;11292:356:1;1418:191:0;1511:6;;;-1:-1:-1;;;;;1528:17:0;;;-1:-1:-1;;;;;;1528:17:0;;;;;;;1561:40;;1511:6;;;1528:17;1511:6;;1561:40;;1492:16;;1561:40;1481:128;1418:191;:::o;20028:188::-;-1:-1:-1;;;;;20111:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;20111:39:0;;;;;;;;;;20168:40;;20111:39;;:31;20168:40;;;20028:188;;:::o;12464:712::-;-1:-1:-1;;;;;12595:18:0;;12587:68;;;;-1:-1:-1;;;12587:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12674:16:0;;12666:64;;;;-1:-1:-1;;;12666:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12816:15:0;;12794:19;12816:15;;;;;;;;;;;12864:21;;;;12842:109;;;;-1:-1:-1;;;12842:109:0;;11855:2:1;12842:109:0;;;11837:21:1;11894:2;11874:18;;;11867:30;11933:34;11913:18;;;11906:62;-1:-1:-1;;;11984:18:1;;;11977:36;12030:19;;12842:109:0;11653:402:1;12842:109:0;-1:-1:-1;;;;;12987:15:0;;;:9;:15;;;;;;;;;;;13005:20;;;12987:38;;13040:13;;;;;;;;;;:23;;;;;;13092:26;;1595:25:1;;;13040:13:0;;13092:26;;1568:18:1;13092:26:0;;;;;;;13131:37;20358:2680;23839:180;23878:23;23904:24;23922:4;23904:9;:24::i;:::-;23878:50;-1:-1:-1;23944:19:0;;23941:70;;23978:33;23995:15;23978:16;:33::i;18555:959::-;18695:11;;18670:7;;18695:11;;;;;18690:26;;-1:-1:-1;18715:1:0;18708:8;;18690:26;-1:-1:-1;;;;;18758:29:0;;18727:12;18758:29;;;:25;:29;;;;;;;;18754:731;;;-1:-1:-1;;;;;18808:25:0;;;;;;:19;:25;;;;;;;;:39;;;;;18846:1;18837:6;:10;18808:39;18804:592;;;18868:21;18920:9;;18892:25;18910:6;18892:13;18902:2;18892:9;:13::i;:::-;:17;;:25::i;:::-;:37;:99;;18990:1;18892:99;;;18953:13;18963:2;18953:9;:13::i;:::-;18868:123;;19010:16;19029:107;19121:14;;19029:65;19086:7;;19069:14;;:24;;;;:::i;:::-;19029:13;;:39;:65::i;:::-;:91;;:107::i;:::-;19010:126;-1:-1:-1;19159:12:0;;19155:139;;19196:19;19202:2;19206:8;19196:5;:19::i;:::-;19253:13;;;;;;;;;-1:-1:-1;;;;;19253:13:0;-1:-1:-1;;;;;19238:34:0;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19155:139;18849:460;;18754:731;;18804:592;19341:39;19365:14;;19341:19;19352:7;;19341:6;:10;;:19;;;;:::i;:39::-;19334:46;;18754:731;;;19435:38;19458:14;;19435:18;19446:6;;19435;:10;;:18;;;;:::i;:38::-;19428:45;;18754:731;19502:4;18555:959;-1:-1:-1;;;;18555:959:0:o;23046:467::-;23136:16;;;23150:1;23136:16;;;;;;;;23112:21;;23136:16;;;;;;;;;;-1:-1:-1;23136:16:0;23112:40;;23181:4;23163;23168:1;23163:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23163:23:0;;;:7;;;;;;;;;;:23;;;;23207:15;;:22;;;-1:-1:-1;;;23207:22:0;;;;:15;;;;;:20;;:22;;;;;23163:7;;23207:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23197:4;23202:1;23197:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23197:32:0;;;:7;;;;;;;;;:32;23272:15;;23240:62;;23257:4;;23272:15;23290:11;23240:8;:62::i;:::-;23313:15;;23455:9;;23313:192;;-1:-1:-1;;;23313:192:0;;-1:-1:-1;;;;;23313:15:0;;;;:66;;:192;;23394:11;;23313:15;;23436:4;;23455:9;;;23479:15;;23313:192;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23101:412;23046:467;:::o;8293:98::-;8351:7;8378:5;8382:1;8378;:5;:::i;8505:98::-;8563:7;8590:5;8594:1;8590;:5;:::i;8611:98::-;8669:7;8696:5;8700:1;8696;:5;:::i;13627:595::-;-1:-1:-1;;;;;13711:21:0;;13703:67;;;;-1:-1:-1;;;13703:67:0;;13733:2:1;13703:67:0;;;13715:21:1;13772:2;13752:18;;;13745:30;13811:34;13791:18;;;13784:62;-1:-1:-1;;;13862:18:1;;;13855:31;13903:19;;13703:67:0;13531:397:1;13703:67:0;-1:-1:-1;;;;;13870:18:0;;13845:22;13870:18;;;;;;;;;;;13907:24;;;;13899:71;;;;-1:-1:-1;;;13899:71:0;;14135:2:1;13899:71:0;;;14117:21:1;14174:2;14154:18;;;14147:30;14213:34;14193:18;;;14186:62;-1:-1:-1;;;14264:18:1;;;14257:32;14306:19;;13899:71:0;13933:398:1;13899:71:0;-1:-1:-1;;;;;14006:18:0;;:9;:18;;;;;;;;;;;14027:23;;;14006:44;;14065:12;:22;;;;;;;14116:37;1595:25:1;;;14006:9:0;;:18;14116:37;;1568:18:1;14116:37:0;;;;;;;20358:2680;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:416::-;2806:6;2814;2867:2;2855:9;2846:7;2842:23;2838:32;2835:52;;;2883:1;2880;2873:12;2835:52;2922:9;2909:23;2941:31;2966:5;2941:31;:::i;:::-;2991:5;-1:-1:-1;3048:2:1;3033:18;;3020:32;3090:15;;3083:23;3071:36;;3061:64;;3121:1;3118;3111:12;3061:64;3144:7;3134:17;;;2741:416;;;;;:::o;3162:180::-;3221:6;3274:2;3262:9;3253:7;3249:23;3245:32;3242:52;;;3290:1;3287;3280:12;3242:52;-1:-1:-1;3313:23:1;;3162:180;-1:-1:-1;3162:180:1:o;3347:388::-;3415:6;3423;3476:2;3464:9;3455:7;3451:23;3447:32;3444:52;;;3492:1;3489;3482:12;3444:52;3531:9;3518:23;3550:31;3575:5;3550:31;:::i;:::-;3600:5;-1:-1:-1;3657:2:1;3642:18;;3629:32;3670:33;3629:32;3670:33;:::i;3740:380::-;3819:1;3815:12;;;;3862;;;3883:61;;3937:4;3929:6;3925:17;3915:27;;3883:61;3990:2;3982:6;3979:14;3959:18;3956:38;3953:161;;4036:10;4031:3;4027:20;4024:1;4017:31;4071:4;4068:1;4061:15;4099:4;4096:1;4089:15;3953:161;;3740:380;;;:::o;4477:127::-;4538:10;4533:3;4529:20;4526:1;4519:31;4569:4;4566:1;4559:15;4593:4;4590:1;4583:15;4609:125;4674:9;;;4695:10;;;4692:36;;;4708:18;;:::i;5571:168::-;5644:9;;;5675;;5692:15;;;5686:22;;5672:37;5662:71;;5713:18;;:::i;5744:251::-;5814:6;5867:2;5855:9;5846:7;5842:23;5838:32;5835:52;;;5883:1;5880;5873:12;5835:52;5915:9;5909:16;5934:31;5959:5;5934:31;:::i;6921:306::-;7009:6;7017;7025;7078:2;7066:9;7057:7;7053:23;7049:32;7046:52;;;7094:1;7091;7084:12;7046:52;7123:9;7117:16;7107:26;;7173:2;7162:9;7158:18;7152:25;7142:35;;7217:2;7206:9;7202:18;7196:25;7186:35;;6921:306;;;;;:::o;8805:401::-;9007:2;8989:21;;;9046:2;9026:18;;;9019:30;9085:34;9080:2;9065:18;;9058:62;-1:-1:-1;;;9151:2:1;9136:18;;9129:35;9196:3;9181:19;;8805:401::o;9211:399::-;9413:2;9395:21;;;9452:2;9432:18;;;9425:30;9491:34;9486:2;9471:18;;9464:62;-1:-1:-1;;;9557:2:1;9542:18;;9535:33;9600:3;9585:19;;9211:399::o;11159:128::-;11226:9;;;11247:11;;;11244:37;;;11261:18;;:::i;12192:127::-;12253:10;12248:3;12244:20;12241:1;12234:31;12284:4;12281:1;12274:15;12308:4;12305:1;12298:15;12324:980;12586:4;12634:3;12623:9;12619:19;12665:6;12654:9;12647:25;12691:2;12729:6;12724:2;12713:9;12709:18;12702:34;12772:3;12767:2;12756:9;12752:18;12745:31;12796:6;12831;12825:13;12862:6;12854;12847:22;12900:3;12889:9;12885:19;12878:26;;12939:2;12931:6;12927:15;12913:29;;12960:1;12970:195;12984:6;12981:1;12978:13;12970:195;;;13049:13;;-1:-1:-1;;;;;13045:39:1;13033:52;;13140:15;;;;13105:12;;;;13081:1;12999:9;12970:195;;;-1:-1:-1;;;;;;;13221:32:1;;;;13216:2;13201:18;;13194:60;-1:-1:-1;;;13285:3:1;13270:19;13263:35;13182:3;12324:980;-1:-1:-1;;;12324:980:1:o;13309:217::-;13349:1;13375;13365:132;;13419:10;13414:3;13410:20;13407:1;13400:31;13454:4;13451:1;13444:15;13482:4;13479:1;13472:15;13365:132;-1:-1:-1;13511:9:1;;13309:217::o

Swarm Source

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