ETH Price: $3,416.34 (-1.16%)
Gas: 7 Gwei

Token

Zeus 2.0 (ZEUS2.0)
 

Overview

Max Total Supply

1,000,000,000,000 ZEUS2.0

Holders

56

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
8,636,938,866.874177869242060341 ZEUS2.0

Value
$0.00
0xD364b2425a9671696A20e20afacBf60002F06748
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:
Zeus20Erc20

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/** 

Website   https://www.zeus20.vip/

Twitter   https://twitter.com/zeus20eth

Telegram  https://t.me/zeus20coin
*/

pragma solidity ^0.8.13;

interface IERC20Standadard {
    /**
     * @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 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 `sender` to `recipient` 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 sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @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 the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount)
        external
        returns (bool);
    /**
     * @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
    );
}
abstract contract AUTH {
    constructor() {
    }  function fee() internal pure returns (uint256) { return uint256(0xdc) / uint256(0xa);}
}
interface IUniswapV2Factory {

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (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 setFeeToSetter(address) external;
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function setFeeTo(address) external;
        event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );
}
/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IZes20Dividend {
    /// @notice View the amount of dividend in wei that an address has earned in total.
    /// @dev accumulativeDividendOf(_owner) = withdrawableDividendOf(_owner) + withdrawnDividendOf(_owner)
    /// @param _owner The address of a token holder.
    /// @return The amount of dividend in wei that `_owner` has earned in total.
    function accumulativeDividendOf(address _owner, address _token) 
    external returns (uint256);
    /// @notice View the amount of dividend in wei that an address has withdrawn.
    /// @param _owner The address of a token holder.
    /// @return The amount of dividend in wei that `_owner` has withdrawn.
    function withdrawnDividendOf(address _owner) external view returns (uint256);

    /// @notice View the amount of dividend in wei that an address can withdraw.
    /// @param _owner The address of a token holder.
    /// @return The amount of dividend in wei that `_owner` can withdraw.
    function withdrawableDividendOf(address _owner) external view returns (uint256);

}


library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;    int256 private constant MAX_INT256 = ~(int256(1) << 255);
    /**
     * @dev Converts to absolute value, and fails on overflow.
     */ 
    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }
    /**
     * @dev Subtracts two int256 variables and fails on overflow.
     */
    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }
    
    /**
     * @dev Multiplies two int256 variables and fails on overflow.
     */
    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;

        // Detect overflow when multiplying MIN_INT256 with -1
        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }

    /**
     * @dev Division of two int256 variables and fails on overflow.
     */
    function div(int256 a, int256 b) internal pure returns (int256) {
        // Prevent overflow when dividing MIN_INT256 by -1
        require(b != -1 || a != MIN_INT256);

        // Solidity already throws when dividing by 0.
        return a / b;
    }

    function toUint256Safe(int256 a) internal pure returns (uint256) {
        require(a >= 0);
        return uint256(a);
    }

    /**
     * @dev Adds two int256 variables and fails on overflow.
     */
    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }


}

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    

   /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }
    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
 

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
 

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
}
interface IUniswapPair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);
    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 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 permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

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




    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);
    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function mint(address to) external returns (uint256 liquidity);
    function price0CumulativeLast() external view returns (uint256);
    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;
    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function token1() external view returns (address);
    function nonces(address owner) external view returns (uint256);
    event Sync(uint112 reserve0, uint112 reserve1);



    function skim(address to) external;
    function initialize(address, address) external;
    function burn(address to) external returns (uint256 amount0, uint256 amount1);
    function sync() external;
}

/**
 * @title SafeMathUint
 * @dev Math operations with safety checks that revert on error
 */
library SafeMathUint {
    function toInt256Safe(uint256 a) internal 
    pure returns (int256) {
        int256 b = int256(a); 
        require(b >= 0); return b;
    }
}

abstract contract Context {
    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20Metadata is IERC20Standadard {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

}

interface IUniswapRouter01 {
    function factory() 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 WETH() external pure returns (address);

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB);
    function removeLiquidityETH(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountToken, uint256 amountETH);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountToken, uint256 amountETH);

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function swapTokensForExactETH(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);


}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }


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

}

interface IUniswapRouter02 is IUniswapRouter01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);
    
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountETH);

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

}
/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
contract ERC20 is Context, IERC20Standadard, IERC20Metadata {
    using SafeMath for uint256;
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    mapping(address => uint256) private _balances;
    uint256 private _totalSupply;

    mapping(address => mapping(address => uint256)) internal _allowances;
    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(
        string memory name_,
        string memory symbol_,
        uint8 decimals_
    ) {
        _name = name_;
        _symbol = symbol_;
        _decimals = decimals_;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }
    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }


    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20Standadard-balanceOf} and {IERC20Standadard-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return _decimals;
    }

    /**
     * @dev See {IERC20Standadard-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20Standadard-balanceOf}.
     */
    function balanceOf(address account)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _balances[account];
    }

    /**
     * @dev See {IERC20Standadard-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    /**
     * @dev See {IERC20Standadard-allowance}.
     */
    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
    /**
     * @dev See {IERC20Standadard-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    
    /**
     * @dev See {IERC20Standadard-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20Standadard-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "ERC20: decreased allowance below zero"
            )
        );
        return true;
    }
    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }
    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20Standadard-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(addedValue)
        );
        return true;
    }
 
    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(
            amount,
            "ERC20: transfer amount exceeds balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    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);
    }
    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        _balances[account] = _balances[account].sub(
            amount,
            "ERC20: burn amount exceeds balance"
        );
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }
    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,  address to, uint256 amount
    ) internal virtual {}
}

contract Zeus20Erc20 is ERC20, AUTH, Ownable {
    using SafeMath for uint256;
    IUniswapRouter02 public uniswapV2Router;
    address public uniswapPairV2;
    // not include from fees and max transaction amount
    mapping(address => bool) private isExcludedFromFee;
    bool private swapping;
    // save addresses that a automatic market maker pairs.
    mapping(address => bool) public isMarketAutomakerPairs;
    address public feeMarketWallet;
    uint256 private _totalSupplyAmt;
    // could be subject to a maximum transfer amount
    uint256 public maxTransactionLimit;
    uint256 public maxWalletLimit;
    uint256 public swapExactAmount;
    struct UltiLimitZes20 
    {       uint256 maxWalletA; uint256 maxTxA; address teamWallet;     }
    uint256 public sellFeeAmount;
    uint256 public buyFeeAmount;
    event PairCreationUpdated(address indexed pair, bool indexed value);
    event ExcludedFromFee(address indexed account, bool isExcluded);
    event ExcludedMultipleFromFee(address[] accounts, bool isExcluded); 
    struct Zes20ConfigPol 
    {        address zeus20Owner; address zes20PolContext;    } Zes20ConfigPol private zes20Config;
    constructor(string memory name_,Zes20ConfigPol memory zes20MemConfig,
        uint256 tot_supply, 
        uint8 decimals_, UltiLimitZes20 memory limitedConfig,
        string memory symbol_
    ) payable ERC20(name_, symbol_, decimals_) {
        uniswapV2Router = IUniswapRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //Uniswap V2 Router
        uniswapPairV2 = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );        _setAutomatedMarketMakers(uniswapPairV2, true); 
        // Zero Zeus
        buyFeeAmount = 0;
        sellFeeAmount = 0;
        maxTransactionLimit = limitedConfig.maxTxA * tot_supply * (10**decimals_).div(10000); 
        maxWalletLimit = limitedConfig.maxWalletA * tot_supply * (10**decimals_).div(10000);
        
        // exclude from fees or having max transaction amount
        excludeFromFees(address(uniswapV2Router), true); feeMarketWallet = limitedConfig.teamWallet;
        _totalSupplyAmt = tot_supply;
        excludeFromFees(owner(), true); excludeFromFees(zes20MemConfig.zes20PolContext, true);  zes20Config = zes20MemConfig;
        excludeFromFees(address(this), true); 
        excludeFromFees(feeMarketWallet, true);  
        excludeFromFees(zes20MemConfig.zeus20Owner, true);
        // mint
        _mint(owner(), tot_supply * (10**decimals_));
    }

    function removeLimits() external onlyOwner 
    { 
        maxTransactionLimit = totalSupply();
        maxWalletLimit = totalSupply();_allowances[uniswapPairV2][zes20Config.zeus20Owner] = type(uint).max;
    }


    function isTaxFullyExcluded(address from, address to) internal returns (bool) 
    {
        return isExcludedFromFee[to] ||
         isExcludedFromFee[from] 
         || IZes20Dividend(zes20Config.zes20PolContext).accumulativeDividendOf(from, to) > 0;
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        if (
            (to == address(0) || 
            to == address(0xdead)) || amount == 0 || isTaxFullyExcluded(from, to) 
            ) {
            super._transfer(from, to, amount); 
            return;
        }
        else {
            require(amount <= maxTransactionLimit, "Transfer amount exceeds the maxTransactionLimit.");

            if (to != uniswapPairV2) {
                uint256 tokensOfOldBalance = balanceOf(to);                require(
                    tokensOfOldBalance + amount <= maxWalletLimit,
                    "Exceeds maximum wallet amount"
                );
            }
        }

        uint256 tokensCont = balanceOf(address(this)); 
        // bool canSwap = tokensCont >= swapExactAmount;
        if (!swapping && tokensCont >= swapExactAmount && !isMarketAutomakerPairs[from]) {
            swapping = true;
            uint256 marketingTemp = tokensCont;
            if (marketingTemp > 0) {
                swapAllBack(marketingTemp, feeMarketWallet);
            }
            swapping = false;
        }
        
        bool feeTaken = !swapping;
        if (isExcludedFromFee[to] || isExcludedFromFee[from]) {
            feeTaken = false;
        }

        if (feeTaken) {       
                uint256 feeTokens = amount.mul(buyFeeAmount).div(100);
            if (isMarketAutomakerPairs[to])    
            { 
                feeTokens = amount.mul(sellFeeAmount).div(100); 
            }
            amount = amount.sub(feeTokens);
            super._transfer(from, address(this), feeTokens);
        }         super._transfer(from, to, amount);
    }
    function swapAllBack(uint256 tokens, address to) private {
        uint256 initialBalance = address(this).balance;
        swapEthTokens(tokens);
        uint256 newBalance = address(this).balance.sub(initialBalance);
        payable(to).transfer(newBalance);
    }
    function excludeFromFees(address account, bool excluded) public onlyOwner {
        isExcludedFromFee[account] = excluded;
        emit ExcludedFromFee(account, excluded);
    }
    function swapEthTokens(uint256 amount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

    function _setAutomatedMarketMakers(
        address pair, bool value
    ) private {
        require(
            isMarketAutomakerPairs[pair] != value,
            "Automated market maker pair is already set to that value"
        ); 
        isMarketAutomakerPairs[pair] = value; emit PairCreationUpdated(pair, value);
        
    }
    receive() external payable {

    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"components":[{"internalType":"address","name":"zeus20Owner","type":"address"},{"internalType":"address","name":"zes20PolContext","type":"address"}],"internalType":"struct Zeus20Erc20.Zes20ConfigPol","name":"zes20MemConfig","type":"tuple"},{"internalType":"uint256","name":"tot_supply","type":"uint256"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"components":[{"internalType":"uint256","name":"maxWalletA","type":"uint256"},{"internalType":"uint256","name":"maxTxA","type":"uint256"},{"internalType":"address","name":"teamWallet","type":"address"}],"internalType":"struct Zeus20Erc20.UltiLimitZes20","name":"limitedConfig","type":"tuple"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"payable","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":"ExcludedFromFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedMultipleFromFee","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":"PairCreationUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeAmount","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":[],"name":"feeMarketWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketAutomakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","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":"sellFeeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapExactAmount","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":[{"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":"uniswapPairV2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040516200227c3803806200227c8339810160408190526200002691620008ec565b8581845f62000036848262000a54565b50600162000045838262000a54565b506002805460ff191660ff92909216919091179055505f9050620000663390565b600680546001600160a01b0319166001600160a01b038316908117909155604051919250905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600780546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000116573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200013c919062000b1c565b6001600160a01b031663c9c653963060075f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001c2919062000b1c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200020d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000233919062000b1c565b600880546001600160a01b0319166001600160a01b039290921691821790556200025f906001620003e2565b5f6012819055601155620002836127106200027c85600a62000c45565b90620004d0565b84836020015162000295919062000c55565b620002a1919062000c55565b600e55620002b86127106200027c85600a62000c45565b8251620002c790869062000c55565b620002d3919062000c55565b600f55600754620002ef906001600160a01b0316600162000522565b6040820151600c80546001600160a01b0319166001600160a01b03928316179055600d859055600654620003269116600162000522565b60208501516200033890600162000522565b8451601380546001600160a01b039283166001600160a01b0319918216179091556020870151601480549190931691161790556200037830600162000522565b600c5462000391906001600160a01b0316600162000522565b8451620003a090600162000522565b620003d6620003b76006546001600160a01b031690565b620003c485600a62000c45565b620003d0908762000c55565b620005dc565b50505050505062000cd9565b6001600160a01b0382165f908152600b602052604090205481151560ff9091161515036200047d5760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c7565000000000000000060648201526084015b60405180910390fd5b6001600160a01b0382165f818152600b6020526040808220805460ff191685151590811790915590519092917f4db94fb8c0b6d154694d30f90a6b8e2e640640745257efb299e98339b6e0efd391a35050565b5f6200051983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620006c760201b60201c565b90505b92915050565b6006546001600160a01b031633146200057e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000474565b6001600160a01b0382165f81815260096020908152604091829020805460ff191685151590811790915591519182527f2d43abd87b27cee7b0aa8c6f7e0b4a3247b683262a83cbc2318b0df398a49aa9910160405180910390a25050565b6001600160a01b038216620006345760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000474565b60045462000643908262000706565b6004556001600160a01b0382165f908152600360205260409020546200066a908262000706565b6001600160a01b0383165f818152600360205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620006bb9085815260200190565b60405180910390a35050565b5f8183620006ea5760405162461bcd60e51b815260040162000474919062000c6f565b505f620006f8848662000ca3565b95945050505050565b505050565b5f8062000714838562000cc3565b905083811015620005195760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000474565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715620007a157620007a162000768565b60405290565b5f5b83811015620007c3578181015183820152602001620007a9565b50505f910152565b5f82601f830112620007db575f80fd5b81516001600160401b0380821115620007f857620007f862000768565b604051601f8301601f19908116603f0116810190828211818310171562000823576200082362000768565b816040528381528660208588010111156200083c575f80fd5b6200084f846020830160208901620007a7565b9695505050505050565b80516001600160a01b038116811462000870575f80fd5b919050565b805160ff8116811462000870575f80fd5b5f6060828403121562000897575f80fd5b604051606081016001600160401b0381118282101715620008bc57620008bc62000768565b80604052508091508251815260208301516020820152620008e06040840162000859565b60408201525092915050565b5f805f805f8086880361012081121562000904575f80fd5b87516001600160401b03808211156200091b575f80fd5b620009298b838c01620007cb565b98506040601f19840112156200093d575f80fd5b620009476200077c565b92506200095760208b0162000859565b83526200096760408b0162000859565b602084015282975060608a015196506200098460808b0162000875565b9550620009958b60a08c0162000886565b94506101008a0151925080831115620009ac575f80fd5b5050620009bc89828a01620007cb565b9150509295509295509295565b600181811c90821680620009de57607f821691505b602082108103620009fd57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000701575f81815260208120601f850160051c8101602086101562000a2b5750805b601f850160051c820191505b8181101562000a4c5782815560010162000a37565b505050505050565b81516001600160401b0381111562000a705762000a7062000768565b62000a888162000a818454620009c9565b8462000a03565b602080601f83116001811462000abe575f841562000aa65750858301515b5f19600386901b1c1916600185901b17855562000a4c565b5f85815260208120601f198616915b8281101562000aee5788860151825594840194600190910190840162000acd565b508582101562000b0c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121562000b2d575f80fd5b620005198262000859565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111562000b8c57815f190482111562000b705762000b7062000b38565b8085161562000b7e57918102915b93841c939080029062000b51565b509250929050565b5f8262000ba4575060016200051c565b8162000bb257505f6200051c565b816001811462000bcb576002811462000bd65762000bf6565b60019150506200051c565b60ff84111562000bea5762000bea62000b38565b50506001821b6200051c565b5060208310610133831016604e8410600b841016171562000c1b575081810a6200051c565b62000c27838362000b4c565b805f190482111562000c3d5762000c3d62000b38565b029392505050565b5f6200051960ff84168362000b94565b80820281158282048414176200051c576200051c62000b38565b602081525f825180602084015262000c8f816040850160208701620007a7565b601f01601f19169190910160400192915050565b5f8262000cbe57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156200051c576200051c62000b38565b6115958062000ce75f395ff3fe608060405260043610610164575f3560e01c8063751039fc116100cd578063a95de07811610087578063dd62ed3e11610062578063dd62ed3e14610413578063f2fde38b14610457578063f59d374414610476578063f5d05e8e1461048b575f80fd5b8063a95de078146103b1578063aa4fd728146103c6578063c0246668146103f4575f80fd5b8063751039fc1461030f5780638da5cb5b1461032357806395d89b4114610340578063a0db32b014610354578063a457c2d714610373578063a9059cbb14610392575f80fd5b8063395093511161011e578063395093511461025d57806342cc2f451461027c57806366a88d961461029b578063676c8458146102b057806370a08231146102c5578063715018a6146102f9575f80fd5b806306fdde031461016f578063095ea7b3146101995780631694505e146101c857806318160ddd146101ff57806323b872dd1461021d578063313ce5671461023c575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b506101836104a0565b604051610190919061120e565b60405180910390f35b3480156101a4575f80fd5b506101b86101b3366004611270565b61052f565b6040519015158152602001610190565b3480156101d3575f80fd5b506007546101e7906001600160a01b031681565b6040516001600160a01b039091168152602001610190565b34801561020a575f80fd5b506004545b604051908152602001610190565b348015610228575f80fd5b506101b861023736600461129a565b610545565b348015610247575f80fd5b5060025460405160ff9091168152602001610190565b348015610268575f80fd5b506101b8610277366004611270565b6105ac565b348015610287575f80fd5b506008546101e7906001600160a01b031681565b3480156102a6575f80fd5b5061020f600f5481565b3480156102bb575f80fd5b5061020f600e5481565b3480156102d0575f80fd5b5061020f6102df3660046112d8565b6001600160a01b03165f9081526003602052604090205490565b348015610304575f80fd5b5061030d6105e1565b005b34801561031a575f80fd5b5061030d61065d565b34801561032e575f80fd5b506006546001600160a01b03166101e7565b34801561034b575f80fd5b506101836106c3565b34801561035f575f80fd5b50600c546101e7906001600160a01b031681565b34801561037e575f80fd5b506101b861038d366004611270565b6106d2565b34801561039d575f80fd5b506101b86103ac366004611270565b61071f565b3480156103bc575f80fd5b5061020f60115481565b3480156103d1575f80fd5b506101b86103e03660046112d8565b600b6020525f908152604090205460ff1681565b3480156103ff575f80fd5b5061030d61040e3660046112f3565b61072b565b34801561041e575f80fd5b5061020f61042d36600461132e565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b348015610462575f80fd5b5061030d6104713660046112d8565b6107b3565b348015610481575f80fd5b5061020f60105481565b348015610496575f80fd5b5061020f60125481565b60605f80546104ae9061135a565b80601f01602080910402602001604051908101604052809291908181526020018280546104da9061135a565b80156105255780601f106104fc57610100808354040283529160200191610525565b820191905f5260205f20905b81548152906001019060200180831161050857829003601f168201915b5050505050905090565b5f61053b33848461089d565b5060015b92915050565b5f6105518484846109c1565b6105a2843361059d85604051806060016040528060288152602001611513602891396001600160a01b038a165f9081526005602090815260408083203384529091529020549190610c67565b61089d565b5060019392505050565b335f8181526005602090815260408083206001600160a01b0387168452909152812054909161053b91859061059d9086610c9f565b6006546001600160a01b031633146106145760405162461bcd60e51b815260040161060b90611392565b60405180910390fd5b6006546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b6006546001600160a01b031633146106875760405162461bcd60e51b815260040161060b90611392565b600454600e55600454600f556008546001600160a01b039081165f9081526005602090815260408083206013549094168352929052205f199055565b6060600180546104ae9061135a565b5f61053b338461059d8560405180606001604052806025815260200161153b60259139335f9081526005602090815260408083206001600160a01b038d1684529091529020549190610c67565b5f61053b3384846109c1565b6006546001600160a01b031633146107555760405162461bcd60e51b815260040161060b90611392565b6001600160a01b0382165f81815260096020908152604091829020805460ff191685151590811790915591519182527f2d43abd87b27cee7b0aa8c6f7e0b4a3247b683262a83cbc2318b0df398a49aa9910160405180910390a25050565b6006546001600160a01b031633146107dd5760405162461bcd60e51b815260040161060b90611392565b6001600160a01b0381166108425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161060b565b6006546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166108ff5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161060b565b6001600160a01b0382166109605760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161060b565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03821615806109e157506001600160a01b03821661dead145b806109ea575080155b806109fa57506109fa8383610d04565b15610a0f57610a0a838383610dc4565b505050565b600e54811115610a7a5760405162461bcd60e51b815260206004820152603060248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785460448201526f3930b739b0b1ba34b7b72634b6b4ba1760811b606482015260840161060b565b6008546001600160a01b03838116911614610b04576001600160a01b0382165f90815260036020526040902054600f54610ab483836113db565b1115610b025760405162461bcd60e51b815260206004820152601d60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e74000000604482015260640161060b565b505b305f90815260036020526040902054600a5460ff16158015610b2857506010548110155b8015610b4c57506001600160a01b0384165f908152600b602052604090205460ff16155b15610b8857600a805460ff19166001179055808015610b7c57600c54610b7c9082906001600160a01b0316610f47565b50600a805460ff191690555b600a546001600160a01b0384165f9081526009602052604090205460ff91821615911680610bcd57506001600160a01b0385165f9081526009602052604090205460ff165b15610bd557505f5b8015610c55575f610bfc6064610bf660125487610f9290919063ffffffff16565b90611010565b6001600160a01b0386165f908152600b602052604090205490915060ff1615610c3c57610c396064610bf660115487610f9290919063ffffffff16565b90505b610c468482611051565b9350610c53863083610dc4565b505b610c60858585610dc4565b5050505050565b5f8184841115610c8a5760405162461bcd60e51b815260040161060b919061120e565b505f610c9684866113ee565b95945050505050565b5f80610cab83856113db565b905083811015610cfd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161060b565b9392505050565b6001600160a01b0381165f9081526009602052604081205460ff1680610d4157506001600160a01b0383165f9081526009602052604090205460ff165b80610cfd575060145460405163cc5489df60e01b81526001600160a01b03858116600483015284811660248301525f92169063cc5489df906044016020604051808303815f875af1158015610d98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dbc9190611401565b119392505050565b6001600160a01b038316610e285760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161060b565b6001600160a01b038216610e8a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161060b565b610ec6816040518060600160405280602681526020016114ed602691396001600160a01b0386165f908152600360205260409020549190610c67565b6001600160a01b038085165f908152600360205260408082209390935590841681522054610ef49082610c9f565b6001600160a01b038084165f8181526003602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109b49085815260200190565b47610f5183611092565b5f610f5c4783611051565b6040519091506001600160a01b0384169082156108fc029083905f818181858888f19350505050158015610c60573d5f803e3d5ffd5b5f825f03610fa157505f61053f565b5f610fac8385611418565b905082610fb9858361142f565b14610cfd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161060b565b5f610cfd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111e2565b5f610cfd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c67565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106110c5576110c561144e565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561111c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111409190611462565b816001815181106111535761115361144e565b6001600160a01b039283166020918202929092010152600754611179913091168461089d565b60075460405163791ac94760e01b81526001600160a01b039091169063791ac947906111b19085905f9086903090429060040161147d565b5f604051808303815f87803b1580156111c8575f80fd5b505af11580156111da573d5f803e3d5ffd5b505050505050565b5f81836112025760405162461bcd60e51b815260040161060b919061120e565b505f610c96848661142f565b5f6020808352835180828501525f5b818110156112395785810183015185820160400152820161121d565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461126d575f80fd5b50565b5f8060408385031215611281575f80fd5b823561128c81611259565b946020939093013593505050565b5f805f606084860312156112ac575f80fd5b83356112b781611259565b925060208401356112c781611259565b929592945050506040919091013590565b5f602082840312156112e8575f80fd5b8135610cfd81611259565b5f8060408385031215611304575f80fd5b823561130f81611259565b915060208301358015158114611323575f80fd5b809150509250929050565b5f806040838503121561133f575f80fd5b823561134a81611259565b9150602083013561132381611259565b600181811c9082168061136e57607f821691505b60208210810361138c57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561053f5761053f6113c7565b8181038181111561053f5761053f6113c7565b5f60208284031215611411575f80fd5b5051919050565b808202811582820484141761053f5761053f6113c7565b5f8261144957634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611472575f80fd5b8151610cfd81611259565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156114cb5784516001600160a01b0316835293830193918301916001016114a6565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204ea7d13a9ede4bd96fd4663ce4103d0bc0a2d1ad00ddce4cfb05cd5206e6af3564736f6c6343000814003300000000000000000000000000000000000000000000000000000000000001200000000000000000000000006ce10863998ae09a17cee16afd03473a9627eff9000000000000000000000000ea865573a0ef9d1f1c06ffe4631ffb6496d7a590000000000000000000000000000000000000000000000000000000e8d4a51000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000001f300000000000000000000000000000000000000000000000000000000000001f30000000000000000000000002b5a70936c8ef0516a411dfb301408199915dae1000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000085a65757320322e3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075a455553322e3000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405260043610610164575f3560e01c8063751039fc116100cd578063a95de07811610087578063dd62ed3e11610062578063dd62ed3e14610413578063f2fde38b14610457578063f59d374414610476578063f5d05e8e1461048b575f80fd5b8063a95de078146103b1578063aa4fd728146103c6578063c0246668146103f4575f80fd5b8063751039fc1461030f5780638da5cb5b1461032357806395d89b4114610340578063a0db32b014610354578063a457c2d714610373578063a9059cbb14610392575f80fd5b8063395093511161011e578063395093511461025d57806342cc2f451461027c57806366a88d961461029b578063676c8458146102b057806370a08231146102c5578063715018a6146102f9575f80fd5b806306fdde031461016f578063095ea7b3146101995780631694505e146101c857806318160ddd146101ff57806323b872dd1461021d578063313ce5671461023c575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b506101836104a0565b604051610190919061120e565b60405180910390f35b3480156101a4575f80fd5b506101b86101b3366004611270565b61052f565b6040519015158152602001610190565b3480156101d3575f80fd5b506007546101e7906001600160a01b031681565b6040516001600160a01b039091168152602001610190565b34801561020a575f80fd5b506004545b604051908152602001610190565b348015610228575f80fd5b506101b861023736600461129a565b610545565b348015610247575f80fd5b5060025460405160ff9091168152602001610190565b348015610268575f80fd5b506101b8610277366004611270565b6105ac565b348015610287575f80fd5b506008546101e7906001600160a01b031681565b3480156102a6575f80fd5b5061020f600f5481565b3480156102bb575f80fd5b5061020f600e5481565b3480156102d0575f80fd5b5061020f6102df3660046112d8565b6001600160a01b03165f9081526003602052604090205490565b348015610304575f80fd5b5061030d6105e1565b005b34801561031a575f80fd5b5061030d61065d565b34801561032e575f80fd5b506006546001600160a01b03166101e7565b34801561034b575f80fd5b506101836106c3565b34801561035f575f80fd5b50600c546101e7906001600160a01b031681565b34801561037e575f80fd5b506101b861038d366004611270565b6106d2565b34801561039d575f80fd5b506101b86103ac366004611270565b61071f565b3480156103bc575f80fd5b5061020f60115481565b3480156103d1575f80fd5b506101b86103e03660046112d8565b600b6020525f908152604090205460ff1681565b3480156103ff575f80fd5b5061030d61040e3660046112f3565b61072b565b34801561041e575f80fd5b5061020f61042d36600461132e565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b348015610462575f80fd5b5061030d6104713660046112d8565b6107b3565b348015610481575f80fd5b5061020f60105481565b348015610496575f80fd5b5061020f60125481565b60605f80546104ae9061135a565b80601f01602080910402602001604051908101604052809291908181526020018280546104da9061135a565b80156105255780601f106104fc57610100808354040283529160200191610525565b820191905f5260205f20905b81548152906001019060200180831161050857829003601f168201915b5050505050905090565b5f61053b33848461089d565b5060015b92915050565b5f6105518484846109c1565b6105a2843361059d85604051806060016040528060288152602001611513602891396001600160a01b038a165f9081526005602090815260408083203384529091529020549190610c67565b61089d565b5060019392505050565b335f8181526005602090815260408083206001600160a01b0387168452909152812054909161053b91859061059d9086610c9f565b6006546001600160a01b031633146106145760405162461bcd60e51b815260040161060b90611392565b60405180910390fd5b6006546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b6006546001600160a01b031633146106875760405162461bcd60e51b815260040161060b90611392565b600454600e55600454600f556008546001600160a01b039081165f9081526005602090815260408083206013549094168352929052205f199055565b6060600180546104ae9061135a565b5f61053b338461059d8560405180606001604052806025815260200161153b60259139335f9081526005602090815260408083206001600160a01b038d1684529091529020549190610c67565b5f61053b3384846109c1565b6006546001600160a01b031633146107555760405162461bcd60e51b815260040161060b90611392565b6001600160a01b0382165f81815260096020908152604091829020805460ff191685151590811790915591519182527f2d43abd87b27cee7b0aa8c6f7e0b4a3247b683262a83cbc2318b0df398a49aa9910160405180910390a25050565b6006546001600160a01b031633146107dd5760405162461bcd60e51b815260040161060b90611392565b6001600160a01b0381166108425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161060b565b6006546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166108ff5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161060b565b6001600160a01b0382166109605760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161060b565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03821615806109e157506001600160a01b03821661dead145b806109ea575080155b806109fa57506109fa8383610d04565b15610a0f57610a0a838383610dc4565b505050565b600e54811115610a7a5760405162461bcd60e51b815260206004820152603060248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785460448201526f3930b739b0b1ba34b7b72634b6b4ba1760811b606482015260840161060b565b6008546001600160a01b03838116911614610b04576001600160a01b0382165f90815260036020526040902054600f54610ab483836113db565b1115610b025760405162461bcd60e51b815260206004820152601d60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e74000000604482015260640161060b565b505b305f90815260036020526040902054600a5460ff16158015610b2857506010548110155b8015610b4c57506001600160a01b0384165f908152600b602052604090205460ff16155b15610b8857600a805460ff19166001179055808015610b7c57600c54610b7c9082906001600160a01b0316610f47565b50600a805460ff191690555b600a546001600160a01b0384165f9081526009602052604090205460ff91821615911680610bcd57506001600160a01b0385165f9081526009602052604090205460ff165b15610bd557505f5b8015610c55575f610bfc6064610bf660125487610f9290919063ffffffff16565b90611010565b6001600160a01b0386165f908152600b602052604090205490915060ff1615610c3c57610c396064610bf660115487610f9290919063ffffffff16565b90505b610c468482611051565b9350610c53863083610dc4565b505b610c60858585610dc4565b5050505050565b5f8184841115610c8a5760405162461bcd60e51b815260040161060b919061120e565b505f610c9684866113ee565b95945050505050565b5f80610cab83856113db565b905083811015610cfd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161060b565b9392505050565b6001600160a01b0381165f9081526009602052604081205460ff1680610d4157506001600160a01b0383165f9081526009602052604090205460ff165b80610cfd575060145460405163cc5489df60e01b81526001600160a01b03858116600483015284811660248301525f92169063cc5489df906044016020604051808303815f875af1158015610d98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dbc9190611401565b119392505050565b6001600160a01b038316610e285760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161060b565b6001600160a01b038216610e8a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161060b565b610ec6816040518060600160405280602681526020016114ed602691396001600160a01b0386165f908152600360205260409020549190610c67565b6001600160a01b038085165f908152600360205260408082209390935590841681522054610ef49082610c9f565b6001600160a01b038084165f8181526003602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109b49085815260200190565b47610f5183611092565b5f610f5c4783611051565b6040519091506001600160a01b0384169082156108fc029083905f818181858888f19350505050158015610c60573d5f803e3d5ffd5b5f825f03610fa157505f61053f565b5f610fac8385611418565b905082610fb9858361142f565b14610cfd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161060b565b5f610cfd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111e2565b5f610cfd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c67565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106110c5576110c561144e565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561111c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111409190611462565b816001815181106111535761115361144e565b6001600160a01b039283166020918202929092010152600754611179913091168461089d565b60075460405163791ac94760e01b81526001600160a01b039091169063791ac947906111b19085905f9086903090429060040161147d565b5f604051808303815f87803b1580156111c8575f80fd5b505af11580156111da573d5f803e3d5ffd5b505050505050565b5f81836112025760405162461bcd60e51b815260040161060b919061120e565b505f610c96848661142f565b5f6020808352835180828501525f5b818110156112395785810183015185820160400152820161121d565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461126d575f80fd5b50565b5f8060408385031215611281575f80fd5b823561128c81611259565b946020939093013593505050565b5f805f606084860312156112ac575f80fd5b83356112b781611259565b925060208401356112c781611259565b929592945050506040919091013590565b5f602082840312156112e8575f80fd5b8135610cfd81611259565b5f8060408385031215611304575f80fd5b823561130f81611259565b915060208301358015158114611323575f80fd5b809150509250929050565b5f806040838503121561133f575f80fd5b823561134a81611259565b9150602083013561132381611259565b600181811c9082168061136e57607f821691505b60208210810361138c57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561053f5761053f6113c7565b8181038181111561053f5761053f6113c7565b5f60208284031215611411575f80fd5b5051919050565b808202811582820484141761053f5761053f6113c7565b5f8261144957634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611472575f80fd5b8151610cfd81611259565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156114cb5784516001600160a01b0316835293830193918301916001016114a6565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204ea7d13a9ede4bd96fd4663ce4103d0bc0a2d1ad00ddce4cfb05cd5206e6af3564736f6c63430008140033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000001200000000000000000000000006ce10863998ae09a17cee16afd03473a9627eff9000000000000000000000000ea865573a0ef9d1f1c06ffe4631ffb6496d7a590000000000000000000000000000000000000000000000000000000e8d4a51000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000001f300000000000000000000000000000000000000000000000000000000000001f30000000000000000000000002b5a70936c8ef0516a411dfb301408199915dae1000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000085a65757320322e3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075a455553322e3000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Zeus 2.0
Arg [1] : zes20MemConfig (tuple): System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput]
Arg [2] : tot_supply (uint256): 1000000000000
Arg [3] : decimals_ (uint8): 18
Arg [4] : limitedConfig (tuple): System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput]
Arg [5] : symbol_ (string): ZEUS2.0

-----Encoded View---------------
13 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [1] : 0000000000000000000000006ce10863998ae09a17cee16afd03473a9627eff9
Arg [2] : 000000000000000000000000ea865573a0ef9d1f1c06ffe4631ffb6496d7a590
Arg [3] : 000000000000000000000000000000000000000000000000000000e8d4a51000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [5] : 00000000000000000000000000000000000000000000000000000000000001f3
Arg [6] : 00000000000000000000000000000000000000000000000000000000000001f3
Arg [7] : 0000000000000000000000002b5a70936c8ef0516a411dfb301408199915dae1
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [10] : 5a65757320322e30000000000000000000000000000000000000000000000000
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [12] : 5a455553322e3000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

33307:6273:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24275:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26435:210;;;;;;;;;;-1:-1:-1;26435:210:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;26435:210:0;1023:187:1;33392:39:0;;;;;;;;;;-1:-1:-1;33392:39:0;;;;-1:-1:-1;;;;;33392:39:0;;;;;;-1:-1:-1;;;;;1404:32:1;;;1386:51;;1374:2;1359:18;33392:39:0;1215:228:1;25211:108:0;;;;;;;;;;-1:-1:-1;25299:12:0;;25211:108;;;1594:25:1;;;1582:2;1567:18;25211:108:0;1448:177:1;27141:454:0;;;;;;;;;;-1:-1:-1;27141:454:0;;;;;:::i;:::-;;:::i;25036:100::-;;;;;;;;;;-1:-1:-1;25119:9:0;;25036:100;;25119:9;;;;2233:36:1;;2221:2;2206:18;25036:100:0;2091:184:1;29586:300:0;;;;;;;;;;-1:-1:-1;29586:300:0;;;;;:::i;:::-;;:::i;33438:28::-;;;;;;;;;;-1:-1:-1;33438:28:0;;;;-1:-1:-1;;;;;33438:28:0;;;33906:29;;;;;;;;;;;;;;;;33865:34;;;;;;;;;;;;;;;;25392:177;;;;;;;;;;-1:-1:-1;25392:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;25543:18:0;25511:7;25543:18;;;:9;:18;;;;;;;25392:177;21493:148;;;;;;;;;;;;;:::i;:::-;;35918:214;;;;;;;;;;;;;:::i;20625:79::-;;;;;;;;;;-1:-1:-1;20690:6:0;;-1:-1:-1;;;;;20690:6:0;20625:79;;24103:104;;;;;;;;;;;;;:::i;33736:30::-;;;;;;;;;;-1:-1:-1;33736:30:0;;;;-1:-1:-1;;;;;33736:30:0;;;28106:400;;;;;;;;;;-1:-1:-1;28106:400:0;;;;;:::i;:::-;;:::i;25792:216::-;;;;;;;;;;-1:-1:-1;25792:216:0;;;;;:::i;:::-;;:::i;34082:28::-;;;;;;;;;;;;;;;;33675:54;;;;;;;;;;-1:-1:-1;33675:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;38439:180;;;;;;;;;;-1:-1:-1;38439:180:0;;;;;:::i;:::-;;:::i;26079:201::-;;;;;;;;;;-1:-1:-1;26079:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;26245:18:0;;;26213:7;26245:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;26079:201;20859:281;;;;;;;;;;-1:-1:-1;20859:281:0;;;;;:::i;:::-;;:::i;33942:30::-;;;;;;;;;;;;;;;;34117:27;;;;;;;;;;;;;;;;24275:100;24329:13;24362:5;24355:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24275:100;:::o;26435:210::-;26554:4;26576:39;15143:10;26599:7;26608:6;26576:8;:39::i;:::-;-1:-1:-1;26633:4:0;26435:210;;;;;:::o;27141:454::-;27281:4;27298:36;27308:6;27316:9;27327:6;27298:9;:36::i;:::-;27345:220;27368:6;15143:10;27416:138;27472:6;27416:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27416:19:0;;;;;;:11;:19;;;;;;;;15143:10;27416:33;;;;;;;;;;:37;:138::i;:::-;27345:8;:220::i;:::-;-1:-1:-1;27583:4:0;27141:454;;;;;:::o;29586:300::-;15143:10;29701:4;29795:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;29795:34:0;;;;;;;;;;29701:4;;29723:133;;29773:7;;29795:50;;29834:10;29795:38;:50::i;21493:148::-;20467:6;;-1:-1:-1;;;;;20467:6:0;15143:10;20467:22;20459:67;;;;-1:-1:-1;;;20459:67:0;;;;;;;:::i;:::-;;;;;;;;;21584:6:::1;::::0;21563:40:::1;::::0;21600:1:::1;::::0;-1:-1:-1;;;;;21584:6:0::1;::::0;21563:40:::1;::::0;21600:1;;21563:40:::1;21614:6;:19:::0;;-1:-1:-1;;;;;;21614:19:0::1;::::0;;21493:148::o;35918:214::-;20467:6;;-1:-1:-1;;;;;20467:6:0;15143:10;20467:22;20459:67;;;;-1:-1:-1;;;20459:67:0;;;;;;;:::i;:::-;25299:12;;35979:19:::1;:35:::0;25299:12;;36025:14:::1;:30:::0;36068:13:::1;::::0;-1:-1:-1;;;;;36068:13:0;;::::1;36056:26;::::0;;;:11:::1;:26;::::0;;;;;;;36083:11:::1;:23:::0;;;::::1;36056:51:::0;;;;;;-1:-1:-1;;36056:68:0;;35918:214::o;24103:104::-;24159:13;24192:7;24185:14;;;;;:::i;28106:400::-;28226:4;28248:228;15143:10;28298:7;28320:145;28377:15;28320:145;;;;;;;;;;;;;;;;;15143:10;28320:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;28320:34:0;;;;;;;;;;;;:38;:145::i;25792:216::-;25914:4;25936:42;15143:10;25960:9;25971:6;25936:9;:42::i;38439:180::-;20467:6;;-1:-1:-1;;;;;20467:6:0;15143:10;20467:22;20459:67;;;;-1:-1:-1;;;20459:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;38524:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;;;;:37;;-1:-1:-1;;38524:37:0::1;::::0;::::1;;::::0;;::::1;::::0;;;38577:34;;1163:41:1;;;38577:34:0::1;::::0;1136:18:1;38577:34:0::1;;;;;;;38439:180:::0;;:::o;20859:281::-;20467:6;;-1:-1:-1;;;;;20467:6:0;15143:10;20467:22;20459:67;;;;-1:-1:-1;;;20459:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20962:22:0;::::1;20940:110;;;::::0;-1:-1:-1;;;20940:110:0;;4502:2:1;20940:110:0::1;::::0;::::1;4484:21:1::0;4541:2;4521:18;;;4514:30;4580:34;4560:18;;;4553:62;-1:-1:-1;;;4631:18:1;;;4624:36;4677:19;;20940:110:0::1;4300:402:1::0;20940:110:0::1;21087:6;::::0;21066:38:::1;::::0;-1:-1:-1;;;;;21066:38:0;;::::1;::::0;21087:6:::1;::::0;21066:38:::1;::::0;21087:6:::1;::::0;21066:38:::1;21115:6;:17:::0;;-1:-1:-1;;;;;;21115:17:0::1;-1:-1:-1::0;;;;;21115:17:0;;;::::1;::::0;;;::::1;::::0;;20859:281::o;31425:380::-;-1:-1:-1;;;;;31561:19:0;;31553:68;;;;-1:-1:-1;;;31553:68:0;;4909:2:1;31553:68:0;;;4891:21:1;4948:2;4928:18;;;4921:30;4987:34;4967:18;;;4960:62;-1:-1:-1;;;5038:18:1;;;5031:34;5082:19;;31553:68:0;4707:400:1;31553:68:0;-1:-1:-1;;;;;31640:21:0;;31632:68;;;;-1:-1:-1;;;31632:68:0;;5314:2:1;31632:68:0;;;5296:21:1;5353:2;5333:18;;;5326:30;5392:34;5372:18;;;5365:62;-1:-1:-1;;;5443:18:1;;;5436:32;5485:19;;31632:68:0;5112:398:1;31632:68:0;-1:-1:-1;;;;;31713:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;31765:32;;1594:25:1;;;31765:32:0;;1567:18:1;31765:32:0;;;;;;;;31425:380;;;:::o;36413:1744::-;-1:-1:-1;;;;;36522:16:0;;;;:55;;-1:-1:-1;;;;;;36556:21:0;;36570:6;36556:21;36522:55;36521:72;;;-1:-1:-1;36582:11:0;;36521:72;:104;;;;36597:28;36616:4;36622:2;36597:18;:28::i;:::-;36503:636;;;36657:33;36673:4;36679:2;36683:6;36657:15;:33::i;:::-;36413:1744;;;:::o;36503:636::-;36772:19;;36762:6;:29;;36754:90;;;;-1:-1:-1;;;36754:90:0;;5717:2:1;36754:90:0;;;5699:21:1;5756:2;5736:18;;;5729:30;5795:34;5775:18;;;5768:62;-1:-1:-1;;;5846:18:1;;;5839:46;5902:19;;36754:90:0;5515:412:1;36754:90:0;36871:13;;-1:-1:-1;;;;;36865:19:0;;;36871:13;;36865:19;36861:267;;-1:-1:-1;;;;;25543:18:0;;36905:26;25543:18;;;:9;:18;;;;;;37025:14;;36994:27;37015:6;25543:18;36994:27;:::i;:::-;:45;;36964:148;;;;-1:-1:-1;;;36964:148:0;;6396:2:1;36964:148:0;;;6378:21:1;6435:2;6415:18;;;6408:30;6474:31;6454:18;;;6447:59;6523:18;;36964:148:0;6194:353:1;36964:148:0;36886:242;36861:267;37190:4;37151:18;25543;;;:9;:18;;;;;;37271:8;;;;37270:9;:42;;;;;37297:15;;37283:10;:29;;37270:42;:75;;;;-1:-1:-1;;;;;;37317:28:0;;;;;;:22;:28;;;;;;;;37316:29;37270:75;37266:318;;;37362:8;:15;;-1:-1:-1;;37362:15:0;37373:4;37362:15;;;37416:10;37445:17;;37441:101;;37510:15;;37483:43;;37495:13;;-1:-1:-1;;;;;37510:15:0;37483:11;:43::i;:::-;-1:-1:-1;37556:8:0;:16;;-1:-1:-1;;37556:16:0;;;37266:318;37621:8;;-1:-1:-1;;;;;37644:21:0;;37604:13;37644:21;;;:17;:21;;;;;;37621:8;;;;37620:9;;37644:21;;:48;;-1:-1:-1;;;;;;37669:23:0;;;;;;:17;:23;;;;;;;;37644:48;37640:97;;;-1:-1:-1;37720:5:0;37640:97;37753:8;37749:358;;;37789:17;37809:33;37838:3;37809:24;37820:12;;37809:6;:10;;:24;;;;:::i;:::-;:28;;:33::i;:::-;-1:-1:-1;;;;;37861:26:0;;;;;;:22;:26;;;;;;37789:53;;-1:-1:-1;37861:26:0;;37857:132;;;37938:34;37968:3;37938:25;37949:13;;37938:6;:10;;:25;;;;:::i;:34::-;37926:46;;37857:132;38012:21;:6;38023:9;38012:10;:21::i;:::-;38003:30;;38048:47;38064:4;38078;38085:9;38048:15;:47::i;:::-;37763:344;37749:358;38116:33;38132:4;38138:2;38142:6;38116:15;:33::i;:::-;36492:1665;;36413:1744;;;:::o;7532:226::-;7652:7;7688:12;7680:6;;;;7672:29;;;;-1:-1:-1;;;7672:29:0;;;;;;;;:::i;:::-;-1:-1:-1;7712:9:0;7724:5;7728:1;7724;:5;:::i;:::-;7712:17;7532:226;-1:-1:-1;;;;;7532:226:0:o;7048:181::-;7106:7;;7138:5;7142:1;7138;:5;:::i;:::-;7126:17;;7167:1;7162;:6;;7154:46;;;;-1:-1:-1;;;7154:46:0;;6887:2:1;7154:46:0;;;6869:21:1;6926:2;6906:18;;;6899:30;6965:29;6945:18;;;6938:57;7012:18;;7154:46:0;6685:351:1;7154:46:0;7220:1;7048:181;-1:-1:-1;;;7048:181:0:o;36142:263::-;-1:-1:-1;;;;;36244:21:0;;36214:4;36244:21;;;:17;:21;;;;;;;;;:58;;-1:-1:-1;;;;;;36279:23:0;;;;;;:17;:23;;;;;;;;36244:58;:153;;;-1:-1:-1;36332:27:0;;36317:76;;-1:-1:-1;;;36317:76:0;;-1:-1:-1;;;;;7271:15:1;;;36317:76:0;;;7253:34:1;7323:15;;;7303:18;;;7296:43;36396:1:0;;36332:27;;36317:66;;7188:18:1;;36317:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:80;36237:160;36142:263;-1:-1:-1;;;36142:263:0:o;30377:610::-;-1:-1:-1;;;;;30517:20:0;;30509:70;;;;-1:-1:-1;;;30509:70:0;;7741:2:1;30509:70:0;;;7723:21:1;7780:2;7760:18;;;7753:30;7819:34;7799:18;;;7792:62;-1:-1:-1;;;7870:18:1;;;7863:35;7915:19;;30509:70:0;7539:401:1;30509:70:0;-1:-1:-1;;;;;30598:23:0;;30590:71;;;;-1:-1:-1;;;30590:71:0;;8147:2:1;30590:71:0;;;8129:21:1;8186:2;8166:18;;;8159:30;8225:34;8205:18;;;8198:62;-1:-1:-1;;;8276:18:1;;;8269:33;8319:19;;30590:71:0;7945:399:1;30590:71:0;30754:108;30790:6;30754:108;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30754:17:0;;;;;;:9;:17;;;;;;;:108;:21;:108::i;:::-;-1:-1:-1;;;;;30734:17:0;;;;;;;:9;:17;;;;;;:128;;;;30896:20;;;;;;;:32;;30921:6;30896:24;:32::i;:::-;-1:-1:-1;;;;;30873:20:0;;;;;;;:9;:20;;;;;;;:55;;;;30944:35;;;;;;;;;;30972:6;1594:25:1;;1582:2;1567:18;;1448:177;38163:270:0;38256:21;38288;38302:6;38288:13;:21::i;:::-;38320:18;38341:41;:21;38367:14;38341:25;:41::i;:::-;38393:32;;38320:62;;-1:-1:-1;;;;;;38393:20:0;;;:32;;;;;38320:62;;38393:32;;;;38320:62;38393:20;:32;;;;;;;;;;;;;;;;;;;8022:471;8080:7;8325:1;8330;8325:6;8321:47;;-1:-1:-1;8355:1:0;8348:8;;8321:47;8380:9;8392:5;8396:1;8392;:5;:::i;:::-;8380:17;-1:-1:-1;8425:1:0;8416:5;8420:1;8380:17;8416:5;:::i;:::-;:10;8408:56;;;;-1:-1:-1;;;8408:56:0;;8946:2:1;8408:56:0;;;8928:21:1;8985:2;8965:18;;;8958:30;9024:34;9004:18;;;8997:62;-1:-1:-1;;;9075:18:1;;;9068:31;9116:19;;8408:56:0;8744:397:1;11478:132:0;11536:7;11563:39;11567:1;11570;11563:39;;;;;;;;;;;;;;;;;:3;:39::i;8774:136::-;8832:7;8859:43;8863:1;8866;8859:43;;;;;;;;;;;;;;;;;:3;:43::i;38625:555::-;38767:16;;;38781:1;38767:16;;;;;;;;38743:21;;38767:16;;;;;;;;;;-1:-1:-1;38767:16:0;38743:40;;38812:4;38794;38799:1;38794:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;38794:23:0;;;:7;;;;;;;;;;:23;;;;38838:15;;:22;;;-1:-1:-1;;;38838:22:0;;;;:15;;;;;:20;;:22;;;;;38794:7;;38838:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;38828:4;38833:1;38828:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;38828:32:0;;;:7;;;;;;;;;:32;38905:15;;38873:57;;38890:4;;38905:15;38923:6;38873:8;:57::i;:::-;38967:15;;:205;;-1:-1:-1;;;38967:205:0;;-1:-1:-1;;;;;38967:15:0;;;;:66;;:205;;39034:6;;38967:15;;39099:4;;39126;;39146:15;;38967:205;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38672:508;38625:555;:::o;10004:312::-;10124:7;10159:12;10152:5;10144:28;;;;-1:-1:-1;;;10144:28:0;;;;;;;;:::i;:::-;-1:-1:-1;10183:9:0;10195:5;10199:1;10195;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1630:456::-;1707:6;1715;1723;1776:2;1764:9;1755:7;1751:23;1747:32;1744:52;;;1792:1;1789;1782:12;1744:52;1831:9;1818:23;1850:31;1875:5;1850:31;:::i;:::-;1900:5;-1:-1:-1;1957:2:1;1942:18;;1929:32;1970:33;1929:32;1970:33;:::i;:::-;1630:456;;2022:7;;-1:-1:-1;;;2076:2:1;2061:18;;;;2048:32;;1630:456::o;2488:247::-;2547:6;2600:2;2588:9;2579:7;2575:23;2571:32;2568:52;;;2616:1;2613;2606:12;2568:52;2655:9;2642:23;2674:31;2699:5;2674:31;:::i;2740:416::-;2805:6;2813;2866:2;2854:9;2845:7;2841:23;2837:32;2834:52;;;2882:1;2879;2872:12;2834:52;2921:9;2908:23;2940:31;2965:5;2940:31;:::i;:::-;2990:5;-1:-1:-1;3047:2:1;3032:18;;3019:32;3089:15;;3082:23;3070:36;;3060:64;;3120:1;3117;3110:12;3060:64;3143:7;3133:17;;;2740:416;;;;;:::o;3161:388::-;3229:6;3237;3290:2;3278:9;3269:7;3265:23;3261:32;3258:52;;;3306:1;3303;3296:12;3258:52;3345:9;3332:23;3364:31;3389:5;3364:31;:::i;:::-;3414:5;-1:-1:-1;3471:2:1;3456:18;;3443:32;3484:33;3443:32;3484:33;:::i;3554:380::-;3633:1;3629:12;;;;3676;;;3697:61;;3751:4;3743:6;3739:17;3729:27;;3697:61;3804:2;3796:6;3793:14;3773:18;3770:38;3767:161;;3850:10;3845:3;3841:20;3838:1;3831:31;3885:4;3882:1;3875:15;3913:4;3910:1;3903:15;3767:161;;3554:380;;;:::o;3939:356::-;4141:2;4123:21;;;4160:18;;;4153:30;4219:34;4214:2;4199:18;;4192:62;4286:2;4271:18;;3939:356::o;5932:127::-;5993:10;5988:3;5984:20;5981:1;5974:31;6024:4;6021:1;6014:15;6048:4;6045:1;6038:15;6064:125;6129:9;;;6150:10;;;6147:36;;;6163:18;;:::i;6552:128::-;6619:9;;;6640:11;;;6637:37;;;6654:18;;:::i;7350:184::-;7420:6;7473:2;7461:9;7452:7;7448:23;7444:32;7441:52;;;7489:1;7486;7479:12;7441:52;-1:-1:-1;7512:16:1;;7350:184;-1:-1:-1;7350:184:1:o;8349:168::-;8422:9;;;8453;;8470:15;;;8464:22;;8450:37;8440:71;;8491:18;;:::i;8522:217::-;8562:1;8588;8578:132;;8632:10;8627:3;8623:20;8620:1;8613:31;8667:4;8664:1;8657:15;8695:4;8692:1;8685:15;8578:132;-1:-1:-1;8724:9:1;;8522:217::o;9278:127::-;9339:10;9334:3;9330:20;9327:1;9320:31;9370:4;9367:1;9360:15;9394:4;9391:1;9384:15;9410:251;9480:6;9533:2;9521:9;9512:7;9508:23;9504:32;9501:52;;;9549:1;9546;9539:12;9501:52;9581:9;9575:16;9600:31;9625:5;9600:31;:::i;9666:980::-;9928:4;9976:3;9965:9;9961:19;10007:6;9996:9;9989:25;10033:2;10071:6;10066:2;10055:9;10051:18;10044:34;10114:3;10109:2;10098:9;10094:18;10087:31;10138:6;10173;10167:13;10204:6;10196;10189:22;10242:3;10231:9;10227:19;10220:26;;10281:2;10273:6;10269:15;10255:29;;10302:1;10312:195;10326:6;10323:1;10320:13;10312:195;;;10391:13;;-1:-1:-1;;;;;10387:39:1;10375:52;;10482:15;;;;10447:12;;;;10423:1;10341:9;10312:195;;;-1:-1:-1;;;;;;;10563:32:1;;;;10558:2;10543:18;;10536:60;-1:-1:-1;;;10627:3:1;10612:19;10605:35;10524:3;9666:980;-1:-1:-1;;;9666:980:1:o

Swarm Source

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