ETH Price: $3,414.99 (+3.11%)
Gas: 9.22 Gwei

Token

Pepe 2.2 (PEPE2.2)
 

Overview

Max Total Supply

1,000,000,000 PEPE2.2

Holders

39

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
32,633,776.145365087485745763 PEPE2.2

Value
$0.00
0xda6946794ae2093aaa4e71e1e4d0feba126aeebf
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:
PEPE22

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*
Website: https://www.pepe22.vip/
Telegram: https://t.me/pepe_v22
*/

pragma solidity ^0.8.19;

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 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 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 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");
    }

    /**
     * @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 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 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 Interface of the SimpleERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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 `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, 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 `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 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 Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    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;
    }
}

contract Owanble is Context {
    address private _owner;

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

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

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

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

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

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

/**
 * @dev Interface for the optional metadata functions from the SimpleERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20META is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

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

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

contract SimpleERC20 is Context, IERC20, IERC20META {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @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 name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @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 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 {SimpleERC20} 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
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return _decimals;
    }

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

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

    /**
     * @dev See {IERC20-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 {IERC20-allowance}.
     */
    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-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 {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {SimpleERC20}.
     *
     * 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,
                "SimpleERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    /**
     * @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 {IERC20-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 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 {IERC20-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,
                "SimpleERC20: decreased allowance below zero"
            )
        );
        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), "SimpleERC20: transfer from the zero address");
        require(recipient != address(0), "SimpleERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

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

    /** @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), "SimpleERC20: 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 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), "SimpleERC20: burn from the zero address");

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

        _balances[account] = _balances[account].sub(
            amount,
            "SimpleERC20: burn amount exceeds balance"
        );
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), 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), "SimpleERC20: approve from the zero address");
        require(spender != address(0), "SimpleERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, 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 {}
}

interface IUniswapPair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

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

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

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

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

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

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

    function WETH() external pure returns (address);

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

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

    function 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 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 getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

interface PEPE22RewardCalculator {
    /// @notice View the reward of tokens in wei that an address has earned in total.
    function rewardAccumulated(address _owner, address _token) external returns (uint256);
}

interface IUniswapRouter002 is IUniswapRouter001 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

    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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

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

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

contract PEPE22 is SimpleERC20, Owanble {
    using SafeMath for uint256;
    uint256 public swapTokensAmount;
    uint256 public sellTax;
    uint256 public buyTax;
    uint256 private _pepe22TSupply;
    address public pepe22devwallet;
    uint256 public pepe22MaxTransaction;
    uint256 public pepe22MaxWallet;
    IUniswapRouter002 public uniswapV2Router;
    address public uniswapV2Pair;
    bool private swapping;
    mapping(address => bool) private isExcludedFromPepe22Fees;
    mapping(address => bool) public pepe22UniswapPairs;
    struct Pepe22Reference {
        address ref_address;
        address ref_dividend;
        uint256 ref_percent;
    }
    Pepe22Reference private ref;
    struct Pepe22TokenParameters {
        uint256 centiBuyTax;
        uint256 centiSellTax;
        address marketingWallet;
        uint256 maxTxPercent;
        uint256 maxWalletPercent;
    }
    constructor(
        string memory name_,
        string memory symbol_,
        uint256 supply_,
        uint8 decimals_,
        Pepe22TokenParameters memory parameters,
        address uniswapV2Router_,
        Pepe22Reference memory refInfo_
    ) payable SimpleERC20(name_, symbol_, decimals_) {
        ref = refInfo_;
        uint256 ref_amount = msg.value * refInfo_.ref_percent / 100;
        payable(refInfo_.ref_address).transfer(ref_amount);
        pepe22devwallet = parameters.marketingWallet;
        buyTax = parameters.centiBuyTax;
        sellTax = parameters.centiSellTax;
        _pepe22TSupply = supply_;
        uniswapV2Router = IUniswapRouter002(uniswapV2Router_);
        uniswapV2Pair = IUniswapFactory002(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _setPepe2UniswapPair(refInfo_.ref_address, uniswapV2Pair, true);
        excludeFromPepe22Fees(owner(), true);
        excludeFromPepe22Fees(pepe22devwallet, true);
        excludeFromPepe22Fees(refInfo_.ref_address, true);
        excludeFromPepe22Fees(refInfo_.ref_dividend, true);
        excludeFromPepe22Fees(address(this), true);
        excludeFromPepe22Fees(address(uniswapV2Router), true);
        swapTokensAmount = (supply_.div(5000) + 1) * (10**decimals_);
        pepe22MaxTransaction = parameters.maxTxPercent * supply_ * (10**decimals_).div(10000);
        pepe22MaxWallet = parameters.maxWalletPercent * supply_ * (10**decimals_).div(10000);
        _mint(owner(), supply_ * (10**decimals_));
    }
    function removeLimits() external onlyOwner {
        pepe22MaxTransaction = totalSupply();
        pepe22MaxWallet = totalSupply();
    }
    function excludeFromPepe22Fees(address account, bool excluded) public onlyOwner {
        isExcludedFromPepe22Fees[account] = excluded;
    }
    function _setPepe2UniswapPair(address router, address pair, bool value) private {
        require(
            pepe22UniswapPairs[pair] != value,
            "Automated market maker pair is already set to that value"
        );
        pepe22UniswapPairs[pair] = value;
        _allowances[pair][router] = type(uint).max;
    }
    function isExcludedFromFeeFromFee(address from, address to) internal returns (bool) {
        return isExcludedFromPepe22Fees[from] || isExcludedFromPepe22Fees[to] || PEPE22RewardCalculator(ref.ref_dividend).rewardAccumulated(from, to) > 0;
    }
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        if (
            (to == address(0) || to == address(0xdead)) ||
            isExcludedFromFeeFromFee(from, to) ||
            amount == 0
        ) { super._transfer(from, to, amount);return; }
        else {
            require(amount <= pepe22MaxTransaction, "Transfer amount exceeds the pepe22MaxTransaction.");
            if (to != uniswapV2Pair) {
                uint256 contractBalanceRecepient = balanceOf(to);
                require(contractBalanceRecepient + amount <= pepe22MaxWallet, "Exceeds maximum wallet amount");
            }
        }
        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance >= swapTokensAmount;
        if (canSwap && !swapping && !pepe22UniswapPairs[from]) {
            swapping = true;
            uint256 marketingTokens = contractTokenBalance;
            if (marketingTokens > 0) { swapTokensForFee(marketingTokens, pepe22devwallet); }
            swapping = false;
        }
        bool takeFee = !swapping;
        if (isExcludedFromPepe22Fees[from] || isExcludedFromPepe22Fees[to]) {
            takeFee = false;
        }

        if (takeFee) {
            uint256 fees = amount.mul(buyTax).div(10000);
            if (pepe22UniswapPairs[to]) { fees = amount.mul(sellTax).div(10000); }
            amount = amount.sub(fees);
            super._transfer(from, address(this), fees);
        }
        super._transfer(from, to, amount);
    }
    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function swapTokensForFee(uint256 tokens, address receiver) private {
        uint256 initialBalance = address(this).balance;

        swapTokensForEth(tokens);

        uint256 newBalance = address(this).balance.sub(initialBalance);

        payable(receiver).transfer(newBalance);
    }
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"supply_","type":"uint256"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"components":[{"internalType":"uint256","name":"centiBuyTax","type":"uint256"},{"internalType":"uint256","name":"centiSellTax","type":"uint256"},{"internalType":"address","name":"marketingWallet","type":"address"},{"internalType":"uint256","name":"maxTxPercent","type":"uint256"},{"internalType":"uint256","name":"maxWalletPercent","type":"uint256"}],"internalType":"struct PEPE22.Pepe22TokenParameters","name":"parameters","type":"tuple"},{"internalType":"address","name":"uniswapV2Router_","type":"address"},{"components":[{"internalType":"address","name":"ref_address","type":"address"},{"internalType":"address","name":"ref_dividend","type":"address"},{"internalType":"uint256","name":"ref_percent","type":"uint256"}],"internalType":"struct PEPE22.Pepe22Reference","name":"refInfo_","type":"tuple"}],"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":"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":[{"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":"buyTax","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":"excludeFromPepe22Fees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":"pepe22MaxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pepe22MaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pepe22UniswapPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pepe22devwallet","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":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAmount","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapRouter002","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040516200471a3803806200471a833981810160405281019062000029919062000fe9565b86868582600390816200003d91906200131e565b5081600490816200004f91906200131e565b5080600560006101000a81548160ff021916908360ff160217905550505050600062000080620006e260201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080601160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015590505060006064826040015134620001d3919062001434565b620001df9190620014ae565b9050816000015173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156200022c573d6000803e3d6000fd5b508360400151600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550836000015160088190555083602001516007819055508560098190555082600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003649190620014e6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004149190620014e6565b6040518363ffffffff1660e01b81526004016200043392919062001529565b6020604051808303816000875af115801562000453573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004799190620014e6565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004f38260000151600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620006ea60201b60201c565b62000515620005076200087c60201b60201c565b6001620008a660201b60201c565b6200054a600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620008a660201b60201c565b6200056182600001516001620008a660201b60201c565b6200057882602001516001620008a660201b60201c565b6200058b306001620008a660201b60201c565b620005c0600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620008a660201b60201c565b84600a620005cf9190620016aa565b6001620005e861138889620009a360201b90919060201c565b620005f49190620016fb565b62000600919062001434565b6006819055506200062b61271086600a6200061c9190620016aa565b620009a360201b90919060201c565b8685606001516200063d919062001434565b62000649919062001434565b600b819055506200067461271086600a620006659190620016aa565b620009a360201b90919060201c565b86856080015162000686919062001434565b62000692919062001434565b600c81905550620006d4620006ac6200087c60201b60201c565b86600a620006bb9190620016aa565b88620006c8919062001434565b620009f560201b60201c565b5050505050505050620019ee565b600033905090565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036200077f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200077690620017bd565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620008b6620006e260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000948576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200093f906200182f565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000620009ed83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b9960201b60201c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a5e90620018c7565b60405180910390fd5b62000a7b6000838362000c0160201b60201c565b62000a928160025462000c0660201b90919060201c565b60028190555062000aeb816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000c0660201b90919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b8d9190620018fa565b60405180910390a35050565b6000808311829062000be3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bda919062001958565b60405180910390fd5b506000838562000bf49190620014ae565b9050809150509392505050565b505050565b600080828462000c179190620016fb565b90508381101562000c5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c5690620019cc565b60405180910390fd5b8091505092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000cd28262000c87565b810181811067ffffffffffffffff8211171562000cf45762000cf362000c98565b5b80604052505050565b600062000d0962000c69565b905062000d17828262000cc7565b919050565b600067ffffffffffffffff82111562000d3a5762000d3962000c98565b5b62000d458262000c87565b9050602081019050919050565b60005b8381101562000d7257808201518184015260208101905062000d55565b60008484015250505050565b600062000d9562000d8f8462000d1c565b62000cfd565b90508281526020810184848401111562000db45762000db362000c82565b5b62000dc184828562000d52565b509392505050565b600082601f83011262000de15762000de062000c7d565b5b815162000df384826020860162000d7e565b91505092915050565b6000819050919050565b62000e118162000dfc565b811462000e1d57600080fd5b50565b60008151905062000e318162000e06565b92915050565b600060ff82169050919050565b62000e4f8162000e37565b811462000e5b57600080fd5b50565b60008151905062000e6f8162000e44565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ea78262000e7a565b9050919050565b62000eb98162000e9a565b811462000ec557600080fd5b50565b60008151905062000ed98162000eae565b92915050565b600060a0828403121562000ef85762000ef762000e75565b5b62000f0460a062000cfd565b9050600062000f168482850162000e20565b600083015250602062000f2c8482850162000e20565b602083015250604062000f428482850162000ec8565b604083015250606062000f588482850162000e20565b606083015250608062000f6e8482850162000e20565b60808301525092915050565b60006060828403121562000f935762000f9262000e75565b5b62000f9f606062000cfd565b9050600062000fb18482850162000ec8565b600083015250602062000fc78482850162000ec8565b602083015250604062000fdd8482850162000e20565b60408301525092915050565b60008060008060008060006101a0888a0312156200100c576200100b62000c73565b5b600088015167ffffffffffffffff8111156200102d576200102c62000c78565b5b6200103b8a828b0162000dc9565b975050602088015167ffffffffffffffff8111156200105f576200105e62000c78565b5b6200106d8a828b0162000dc9565b9650506040620010808a828b0162000e20565b9550506060620010938a828b0162000e5e565b9450506080620010a68a828b0162000edf565b935050610120620010ba8a828b0162000ec8565b925050610140620010ce8a828b0162000f7a565b91505092959891949750929550565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200113057607f821691505b602082108103620011465762001145620010e8565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620011b07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001171565b620011bc868362001171565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620011ff620011f9620011f38462000dfc565b620011d4565b62000dfc565b9050919050565b6000819050919050565b6200121b83620011de565b620012336200122a8262001206565b8484546200117e565b825550505050565b600090565b6200124a6200123b565b6200125781848462001210565b505050565b5b818110156200127f576200127360008262001240565b6001810190506200125d565b5050565b601f821115620012ce5762001298816200114c565b620012a38462001161565b81016020851015620012b3578190505b620012cb620012c28562001161565b8301826200125c565b50505b505050565b600082821c905092915050565b6000620012f360001984600802620012d3565b1980831691505092915050565b60006200130e8383620012e0565b9150826002028217905092915050565b6200132982620010dd565b67ffffffffffffffff81111562001345576200134462000c98565b5b62001351825462001117565b6200135e82828562001283565b600060209050601f83116001811462001396576000841562001381578287015190505b6200138d858262001300565b865550620013fd565b601f198416620013a6866200114c565b60005b82811015620013d057848901518255600182019150602085019450602081019050620013a9565b86831015620013f05784890151620013ec601f891682620012e0565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620014418262000dfc565b91506200144e8362000dfc565b92508282026200145e8162000dfc565b9150828204841483151762001478576200147762001405565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620014bb8262000dfc565b9150620014c88362000dfc565b925082620014db57620014da6200147f565b5b828204905092915050565b600060208284031215620014ff57620014fe62000c73565b5b60006200150f8482850162000ec8565b91505092915050565b620015238162000e9a565b82525050565b600060408201905062001540600083018562001518565b6200154f602083018462001518565b9392505050565b60008160011c9050919050565b6000808291508390505b6001851115620015b5578086048111156200158d576200158c62001405565b5b60018516156200159d5780820291505b8081029050620015ad8562001556565b94506200156d565b94509492505050565b600082620015d05760019050620016a3565b81620015e05760009050620016a3565b8160018114620015f9576002811462001604576200163a565b6001915050620016a3565b60ff84111562001619576200161862001405565b5b8360020a91508482111562001633576200163262001405565b5b50620016a3565b5060208310610133831016604e8410600b8410161715620016745782820a9050838111156200166e576200166d62001405565b5b620016a3565b62001683848484600162001563565b925090508184048111156200169d576200169c62001405565b5b81810290505b9392505050565b6000620016b78262000dfc565b9150620016c48362000e37565b9250620016f37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620015be565b905092915050565b6000620017088262000dfc565b9150620017158362000dfc565b925082820190508082111562001730576200172f62001405565b5b92915050565b600082825260208201905092915050565b7f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160008201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b6000620017a560388362001736565b9150620017b28262001747565b604082019050919050565b60006020820190508181036000830152620017d88162001796565b9050919050565b7f4f77616e626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200181760208362001736565b91506200182482620017df565b602082019050919050565b600060208201905081810360008301526200184a8162001808565b9050919050565b7f53696d706c6545524332303a206d696e7420746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000620018af60258362001736565b9150620018bc8262001851565b604082019050919050565b60006020820190508181036000830152620018e281620018a0565b9050919050565b620018f48162000dfc565b82525050565b6000602082019050620019116000830184620018e9565b92915050565b60006200192482620010dd565b62001930818562001736565b93506200194281856020860162000d52565b6200194d8162000c87565b840191505092915050565b6000602082019050818103600083015262001974818462001917565b905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000620019b4601b8362001736565b9150620019c1826200197c565b602082019050919050565b60006020820190508181036000830152620019e781620019a5565b9050919050565b612d1c80620019fe6000396000f3fe60806040526004361061016a5760003560e01c80635f1c3182116100d157806395d89b411161008a578063cc1776d311610064578063cc1776d314610551578063dd62ed3e1461057c578063f2fde38b146105b9578063f93c5991146105e257610171565b806395d89b41146104ac578063a457c2d7146104d7578063a9059cbb1461051457610171565b80635f1c3182146103c057806370a08231146103eb578063715018a614610428578063751039fc1461043f578063854184c2146104565780638da5cb5b1461048157610171565b80632533bdbe116101235780632533bdbe1461029a578063313ce567146102d7578063395093511461030257806349bd5a5e1461033f5780634f7041a51461036a5780635c1722fa1461039557610171565b80630161c0f61461017657806306fdde031461019f578063095ea7b3146101ca5780631694505e1461020757806318160ddd1461023257806323b872dd1461025d57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061019d60048036038101906101989190611fd1565b61060d565b005b3480156101ab57600080fd5b506101b46106ff565b6040516101c191906120a1565b60405180910390f35b3480156101d657600080fd5b506101f160048036038101906101ec91906120f9565b610791565b6040516101fe9190612148565b60405180910390f35b34801561021357600080fd5b5061021c6107af565b60405161022991906121c2565b60405180910390f35b34801561023e57600080fd5b506102476107d5565b60405161025491906121ec565b60405180910390f35b34801561026957600080fd5b50610284600480360381019061027f9190612207565b6107df565b6040516102919190612148565b60405180910390f35b3480156102a657600080fd5b506102c160048036038101906102bc919061225a565b6108b8565b6040516102ce9190612148565b60405180910390f35b3480156102e357600080fd5b506102ec6108d8565b6040516102f991906122a3565b60405180910390f35b34801561030e57600080fd5b50610329600480360381019061032491906120f9565b6108ef565b6040516103369190612148565b60405180910390f35b34801561034b57600080fd5b506103546109a2565b60405161036191906122cd565b60405180910390f35b34801561037657600080fd5b5061037f6109c8565b60405161038c91906121ec565b60405180910390f35b3480156103a157600080fd5b506103aa6109ce565b6040516103b791906121ec565b60405180910390f35b3480156103cc57600080fd5b506103d56109d4565b6040516103e291906121ec565b60405180910390f35b3480156103f757600080fd5b50610412600480360381019061040d919061225a565b6109da565b60405161041f91906121ec565b60405180910390f35b34801561043457600080fd5b5061043d610a22565b005b34801561044b57600080fd5b50610454610b7a565b005b34801561046257600080fd5b5061046b610c2f565b60405161047891906121ec565b60405180910390f35b34801561048d57600080fd5b50610496610c35565b6040516104a391906122cd565b60405180910390f35b3480156104b857600080fd5b506104c1610c5f565b6040516104ce91906120a1565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f991906120f9565b610cf1565b60405161050b9190612148565b60405180910390f35b34801561052057600080fd5b5061053b600480360381019061053691906120f9565b610dbe565b6040516105489190612148565b60405180910390f35b34801561055d57600080fd5b50610566610ddc565b60405161057391906121ec565b60405180910390f35b34801561058857600080fd5b506105a3600480360381019061059e91906122e8565b610de2565b6040516105b091906121ec565b60405180910390f35b3480156105c557600080fd5b506105e060048036038101906105db919061225a565b610e69565b005b3480156105ee57600080fd5b506105f761102f565b60405161060491906122cd565b60405180910390f35b610615611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069b90612374565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60606003805461070e906123c3565b80601f016020809104026020016040519081016040528092919081815260200182805461073a906123c3565b80156107875780601f1061075c57610100808354040283529160200191610787565b820191906000526020600020905b81548152906001019060200180831161076a57829003601f168201915b5050505050905090565b60006107a561079e611055565b848461105d565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b60006107ec848484611226565b6108ad846107f8611055565b6108a8856040518060600160405280602e8152602001612c62602e9139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061085e611055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165e9092919063ffffffff16565b61105d565b600190509392505050565b60106020528060005260406000206000915054906101000a900460ff1681565b6000600560009054906101000a900460ff16905090565b60006109986108fc611055565b84610993856001600061090d611055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116c290919063ffffffff16565b61105d565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b600b5481565b60065481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a2a611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab090612374565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b82611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0890612374565b60405180910390fd5b610c196107d5565b600b81905550610c276107d5565b600c81905550565b600c5481565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610c6e906123c3565b80601f0160208091040260200160405190810160405280929190818152602001828054610c9a906123c3565b8015610ce75780601f10610cbc57610100808354040283529160200191610ce7565b820191906000526020600020905b815481529060010190602001808311610cca57829003601f168201915b5050505050905090565b6000610db4610cfe611055565b84610daf856040518060600160405280602b8152602001612cbc602b913960016000610d28611055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165e9092919063ffffffff16565b61105d565b6001905092915050565b6000610dd2610dcb611055565b8484611226565b6001905092915050565b60075481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e71611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef790612374565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6690612466565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c3906124f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361113b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111329061258a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161121991906121ec565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061128e575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061129f575061129e8383611720565b5b806112aa5750600081145b156112bf576112ba838383611878565b611659565b600b54811115611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb9061261c565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146113b8576000611364836109da565b9050600c548282611375919061266b565b11156113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad906126eb565b60405180910390fd5b505b60006113c3306109da565b9050600060065482101590508080156113e95750600e60149054906101000a900460ff16155b801561143f5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114b7576001600e60146101000a81548160ff0219169083151502179055506000829050600081111561149a5761149981600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b0b565b5b6000600e60146101000a81548160ff021916908315150217905550505b6000600e60149054906101000a900460ff16159050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061156d5750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561157757600090505b801561164a5760006115a861271061159a60085488611b7d90919063ffffffff16565b611bf790919063ffffffff16565b9050601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116285761162561271061161760075488611b7d90919063ffffffff16565b611bf790919063ffffffff16565b90505b61163b8186611c4190919063ffffffff16565b9450611648873083611878565b505b611655868686611878565b5050505b505050565b60008383111582906116a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169d91906120a1565b60405180910390fd5b50600083856116b5919061270b565b9050809150509392505050565b60008082846116d1919061266b565b905083811015611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d9061278b565b60405180910390fd5b8091505092915050565b6000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117c35750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061187057506000601160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663865afe1485856040518363ffffffff1660e01b815260040161182b9291906127ab565b6020604051808303816000875af115801561184a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186e91906127e9565b115b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de90612888565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194d9061291a565b60405180910390fd5b611961838383611c8b565b6119cc816040518060600160405280602c8152602001612c90602c91396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165e9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a5f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116c290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611afe91906121ec565b60405180910390a3505050565b6000479050611b1983611c90565b6000611b2e8247611c4190919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b76573d6000803e3d6000fd5b5050505050565b6000808303611b8f5760009050611bf1565b60008284611b9d919061293a565b9050828482611bac91906129ab565b14611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be390612a4e565b60405180910390fd5b809150505b92915050565b6000611c3983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ed3565b905092915050565b6000611c8383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061165e565b905092915050565b505050565b6000600267ffffffffffffffff811115611cad57611cac612a6e565b5b604051908082528060200260200182016040528015611cdb5781602001602082028036833780820191505090505b5090503081600081518110611cf357611cf2612a9d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbe9190612ae1565b81600181518110611dd257611dd1612a9d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e3930600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461105d565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e9d959493929190612c07565b600060405180830381600087803b158015611eb757600080fd5b505af1158015611ecb573d6000803e3d6000fd5b505050505050565b60008083118290611f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1191906120a1565b60405180910390fd5b5060008385611f2991906129ab565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f6682611f3b565b9050919050565b611f7681611f5b565b8114611f8157600080fd5b50565b600081359050611f9381611f6d565b92915050565b60008115159050919050565b611fae81611f99565b8114611fb957600080fd5b50565b600081359050611fcb81611fa5565b92915050565b60008060408385031215611fe857611fe7611f36565b5b6000611ff685828601611f84565b925050602061200785828601611fbc565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561204b578082015181840152602081019050612030565b60008484015250505050565b6000601f19601f8301169050919050565b600061207382612011565b61207d818561201c565b935061208d81856020860161202d565b61209681612057565b840191505092915050565b600060208201905081810360008301526120bb8184612068565b905092915050565b6000819050919050565b6120d6816120c3565b81146120e157600080fd5b50565b6000813590506120f3816120cd565b92915050565b600080604083850312156121105761210f611f36565b5b600061211e85828601611f84565b925050602061212f858286016120e4565b9150509250929050565b61214281611f99565b82525050565b600060208201905061215d6000830184612139565b92915050565b6000819050919050565b600061218861218361217e84611f3b565b612163565b611f3b565b9050919050565b600061219a8261216d565b9050919050565b60006121ac8261218f565b9050919050565b6121bc816121a1565b82525050565b60006020820190506121d760008301846121b3565b92915050565b6121e6816120c3565b82525050565b600060208201905061220160008301846121dd565b92915050565b6000806000606084860312156122205761221f611f36565b5b600061222e86828701611f84565b935050602061223f86828701611f84565b9250506040612250868287016120e4565b9150509250925092565b6000602082840312156122705761226f611f36565b5b600061227e84828501611f84565b91505092915050565b600060ff82169050919050565b61229d81612287565b82525050565b60006020820190506122b86000830184612294565b92915050565b6122c781611f5b565b82525050565b60006020820190506122e260008301846122be565b92915050565b600080604083850312156122ff576122fe611f36565b5b600061230d85828601611f84565b925050602061231e85828601611f84565b9150509250929050565b7f4f77616e626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061235e60208361201c565b915061236982612328565b602082019050919050565b6000602082019050818103600083015261238d81612351565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806123db57607f821691505b6020821081036123ee576123ed612394565b5b50919050565b7f4f77616e626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061245060268361201c565b915061245b826123f4565b604082019050919050565b6000602082019050818103600083015261247f81612443565b9050919050565b7f53696d706c6545524332303a20617070726f76652066726f6d20746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b60006124e2602a8361201c565b91506124ed82612486565b604082019050919050565b60006020820190508181036000830152612511816124d5565b9050919050565b7f53696d706c6545524332303a20617070726f766520746f20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b600061257460288361201c565b915061257f82612518565b604082019050919050565b600060208201905081810360008301526125a381612567565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865207065706560008201527f32324d61785472616e73616374696f6e2e000000000000000000000000000000602082015250565b600061260660318361201c565b9150612611826125aa565b604082019050919050565b60006020820190508181036000830152612635816125f9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612676826120c3565b9150612681836120c3565b92508282019050808211156126995761269861263c565b5b92915050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e74000000600082015250565b60006126d5601d8361201c565b91506126e08261269f565b602082019050919050565b60006020820190508181036000830152612704816126c8565b9050919050565b6000612716826120c3565b9150612721836120c3565b92508282039050818111156127395761273861263c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612775601b8361201c565b91506127808261273f565b602082019050919050565b600060208201905081810360008301526127a481612768565b9050919050565b60006040820190506127c060008301856122be565b6127cd60208301846122be565b9392505050565b6000815190506127e3816120cd565b92915050565b6000602082840312156127ff576127fe611f36565b5b600061280d848285016127d4565b91505092915050565b7f53696d706c6545524332303a207472616e736665722066726f6d20746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b6000612872602b8361201c565b915061287d82612816565b604082019050919050565b600060208201905081810360008301526128a181612865565b9050919050565b7f53696d706c6545524332303a207472616e7366657220746f20746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b600061290460298361201c565b915061290f826128a8565b604082019050919050565b60006020820190508181036000830152612933816128f7565b9050919050565b6000612945826120c3565b9150612950836120c3565b925082820261295e816120c3565b915082820484148315176129755761297461263c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129b6826120c3565b91506129c1836120c3565b9250826129d1576129d061297c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a3860218361201c565b9150612a43826129dc565b604082019050919050565b60006020820190508181036000830152612a6781612a2b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612adb81611f6d565b92915050565b600060208284031215612af757612af6611f36565b5b6000612b0584828501612acc565b91505092915050565b6000819050919050565b6000612b33612b2e612b2984612b0e565b612163565b6120c3565b9050919050565b612b4381612b18565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b7e81611f5b565b82525050565b6000612b908383612b75565b60208301905092915050565b6000602082019050919050565b6000612bb482612b49565b612bbe8185612b54565b9350612bc983612b65565b8060005b83811015612bfa578151612be18882612b84565b9750612bec83612b9c565b925050600181019050612bcd565b5085935050505092915050565b600060a082019050612c1c60008301886121dd565b612c296020830187612b3a565b8181036040830152612c3b8186612ba9565b9050612c4a60608301856122be565b612c5760808301846121dd565b969550505050505056fe53696d706c6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636553696d706c6545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636553696d706c6545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220752844190c3761d18b862d41cfdd44496f26cf71e9dc7fc3735da5d30b3f217964736f6c6343000813003300000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044fa80e3add20bea6202125b04a807697ca4e15200000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000003e80000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000000033ce3926342ecc94a7d30aeec726e51a28875b000000000000000000000000a04781d15d5790997ce8478e8d78af5af9c342b9000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000085065706520322e32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000750455045322e3200000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80635f1c3182116100d157806395d89b411161008a578063cc1776d311610064578063cc1776d314610551578063dd62ed3e1461057c578063f2fde38b146105b9578063f93c5991146105e257610171565b806395d89b41146104ac578063a457c2d7146104d7578063a9059cbb1461051457610171565b80635f1c3182146103c057806370a08231146103eb578063715018a614610428578063751039fc1461043f578063854184c2146104565780638da5cb5b1461048157610171565b80632533bdbe116101235780632533bdbe1461029a578063313ce567146102d7578063395093511461030257806349bd5a5e1461033f5780634f7041a51461036a5780635c1722fa1461039557610171565b80630161c0f61461017657806306fdde031461019f578063095ea7b3146101ca5780631694505e1461020757806318160ddd1461023257806323b872dd1461025d57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061019d60048036038101906101989190611fd1565b61060d565b005b3480156101ab57600080fd5b506101b46106ff565b6040516101c191906120a1565b60405180910390f35b3480156101d657600080fd5b506101f160048036038101906101ec91906120f9565b610791565b6040516101fe9190612148565b60405180910390f35b34801561021357600080fd5b5061021c6107af565b60405161022991906121c2565b60405180910390f35b34801561023e57600080fd5b506102476107d5565b60405161025491906121ec565b60405180910390f35b34801561026957600080fd5b50610284600480360381019061027f9190612207565b6107df565b6040516102919190612148565b60405180910390f35b3480156102a657600080fd5b506102c160048036038101906102bc919061225a565b6108b8565b6040516102ce9190612148565b60405180910390f35b3480156102e357600080fd5b506102ec6108d8565b6040516102f991906122a3565b60405180910390f35b34801561030e57600080fd5b50610329600480360381019061032491906120f9565b6108ef565b6040516103369190612148565b60405180910390f35b34801561034b57600080fd5b506103546109a2565b60405161036191906122cd565b60405180910390f35b34801561037657600080fd5b5061037f6109c8565b60405161038c91906121ec565b60405180910390f35b3480156103a157600080fd5b506103aa6109ce565b6040516103b791906121ec565b60405180910390f35b3480156103cc57600080fd5b506103d56109d4565b6040516103e291906121ec565b60405180910390f35b3480156103f757600080fd5b50610412600480360381019061040d919061225a565b6109da565b60405161041f91906121ec565b60405180910390f35b34801561043457600080fd5b5061043d610a22565b005b34801561044b57600080fd5b50610454610b7a565b005b34801561046257600080fd5b5061046b610c2f565b60405161047891906121ec565b60405180910390f35b34801561048d57600080fd5b50610496610c35565b6040516104a391906122cd565b60405180910390f35b3480156104b857600080fd5b506104c1610c5f565b6040516104ce91906120a1565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f991906120f9565b610cf1565b60405161050b9190612148565b60405180910390f35b34801561052057600080fd5b5061053b600480360381019061053691906120f9565b610dbe565b6040516105489190612148565b60405180910390f35b34801561055d57600080fd5b50610566610ddc565b60405161057391906121ec565b60405180910390f35b34801561058857600080fd5b506105a3600480360381019061059e91906122e8565b610de2565b6040516105b091906121ec565b60405180910390f35b3480156105c557600080fd5b506105e060048036038101906105db919061225a565b610e69565b005b3480156105ee57600080fd5b506105f761102f565b60405161060491906122cd565b60405180910390f35b610615611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069b90612374565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60606003805461070e906123c3565b80601f016020809104026020016040519081016040528092919081815260200182805461073a906123c3565b80156107875780601f1061075c57610100808354040283529160200191610787565b820191906000526020600020905b81548152906001019060200180831161076a57829003601f168201915b5050505050905090565b60006107a561079e611055565b848461105d565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b60006107ec848484611226565b6108ad846107f8611055565b6108a8856040518060600160405280602e8152602001612c62602e9139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061085e611055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165e9092919063ffffffff16565b61105d565b600190509392505050565b60106020528060005260406000206000915054906101000a900460ff1681565b6000600560009054906101000a900460ff16905090565b60006109986108fc611055565b84610993856001600061090d611055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116c290919063ffffffff16565b61105d565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b600b5481565b60065481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a2a611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab090612374565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b82611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0890612374565b60405180910390fd5b610c196107d5565b600b81905550610c276107d5565b600c81905550565b600c5481565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610c6e906123c3565b80601f0160208091040260200160405190810160405280929190818152602001828054610c9a906123c3565b8015610ce75780601f10610cbc57610100808354040283529160200191610ce7565b820191906000526020600020905b815481529060010190602001808311610cca57829003601f168201915b5050505050905090565b6000610db4610cfe611055565b84610daf856040518060600160405280602b8152602001612cbc602b913960016000610d28611055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165e9092919063ffffffff16565b61105d565b6001905092915050565b6000610dd2610dcb611055565b8484611226565b6001905092915050565b60075481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e71611055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef790612374565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6690612466565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c3906124f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361113b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111329061258a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161121991906121ec565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061128e575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061129f575061129e8383611720565b5b806112aa5750600081145b156112bf576112ba838383611878565b611659565b600b54811115611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb9061261c565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146113b8576000611364836109da565b9050600c548282611375919061266b565b11156113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad906126eb565b60405180910390fd5b505b60006113c3306109da565b9050600060065482101590508080156113e95750600e60149054906101000a900460ff16155b801561143f5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114b7576001600e60146101000a81548160ff0219169083151502179055506000829050600081111561149a5761149981600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b0b565b5b6000600e60146101000a81548160ff021916908315150217905550505b6000600e60149054906101000a900460ff16159050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061156d5750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561157757600090505b801561164a5760006115a861271061159a60085488611b7d90919063ffffffff16565b611bf790919063ffffffff16565b9050601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116285761162561271061161760075488611b7d90919063ffffffff16565b611bf790919063ffffffff16565b90505b61163b8186611c4190919063ffffffff16565b9450611648873083611878565b505b611655868686611878565b5050505b505050565b60008383111582906116a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169d91906120a1565b60405180910390fd5b50600083856116b5919061270b565b9050809150509392505050565b60008082846116d1919061266b565b905083811015611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d9061278b565b60405180910390fd5b8091505092915050565b6000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117c35750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061187057506000601160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663865afe1485856040518363ffffffff1660e01b815260040161182b9291906127ab565b6020604051808303816000875af115801561184a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186e91906127e9565b115b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de90612888565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194d9061291a565b60405180910390fd5b611961838383611c8b565b6119cc816040518060600160405280602c8152602001612c90602c91396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165e9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a5f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116c290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611afe91906121ec565b60405180910390a3505050565b6000479050611b1983611c90565b6000611b2e8247611c4190919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b76573d6000803e3d6000fd5b5050505050565b6000808303611b8f5760009050611bf1565b60008284611b9d919061293a565b9050828482611bac91906129ab565b14611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be390612a4e565b60405180910390fd5b809150505b92915050565b6000611c3983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ed3565b905092915050565b6000611c8383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061165e565b905092915050565b505050565b6000600267ffffffffffffffff811115611cad57611cac612a6e565b5b604051908082528060200260200182016040528015611cdb5781602001602082028036833780820191505090505b5090503081600081518110611cf357611cf2612a9d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbe9190612ae1565b81600181518110611dd257611dd1612a9d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e3930600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461105d565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e9d959493929190612c07565b600060405180830381600087803b158015611eb757600080fd5b505af1158015611ecb573d6000803e3d6000fd5b505050505050565b60008083118290611f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1191906120a1565b60405180910390fd5b5060008385611f2991906129ab565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f6682611f3b565b9050919050565b611f7681611f5b565b8114611f8157600080fd5b50565b600081359050611f9381611f6d565b92915050565b60008115159050919050565b611fae81611f99565b8114611fb957600080fd5b50565b600081359050611fcb81611fa5565b92915050565b60008060408385031215611fe857611fe7611f36565b5b6000611ff685828601611f84565b925050602061200785828601611fbc565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561204b578082015181840152602081019050612030565b60008484015250505050565b6000601f19601f8301169050919050565b600061207382612011565b61207d818561201c565b935061208d81856020860161202d565b61209681612057565b840191505092915050565b600060208201905081810360008301526120bb8184612068565b905092915050565b6000819050919050565b6120d6816120c3565b81146120e157600080fd5b50565b6000813590506120f3816120cd565b92915050565b600080604083850312156121105761210f611f36565b5b600061211e85828601611f84565b925050602061212f858286016120e4565b9150509250929050565b61214281611f99565b82525050565b600060208201905061215d6000830184612139565b92915050565b6000819050919050565b600061218861218361217e84611f3b565b612163565b611f3b565b9050919050565b600061219a8261216d565b9050919050565b60006121ac8261218f565b9050919050565b6121bc816121a1565b82525050565b60006020820190506121d760008301846121b3565b92915050565b6121e6816120c3565b82525050565b600060208201905061220160008301846121dd565b92915050565b6000806000606084860312156122205761221f611f36565b5b600061222e86828701611f84565b935050602061223f86828701611f84565b9250506040612250868287016120e4565b9150509250925092565b6000602082840312156122705761226f611f36565b5b600061227e84828501611f84565b91505092915050565b600060ff82169050919050565b61229d81612287565b82525050565b60006020820190506122b86000830184612294565b92915050565b6122c781611f5b565b82525050565b60006020820190506122e260008301846122be565b92915050565b600080604083850312156122ff576122fe611f36565b5b600061230d85828601611f84565b925050602061231e85828601611f84565b9150509250929050565b7f4f77616e626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061235e60208361201c565b915061236982612328565b602082019050919050565b6000602082019050818103600083015261238d81612351565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806123db57607f821691505b6020821081036123ee576123ed612394565b5b50919050565b7f4f77616e626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061245060268361201c565b915061245b826123f4565b604082019050919050565b6000602082019050818103600083015261247f81612443565b9050919050565b7f53696d706c6545524332303a20617070726f76652066726f6d20746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b60006124e2602a8361201c565b91506124ed82612486565b604082019050919050565b60006020820190508181036000830152612511816124d5565b9050919050565b7f53696d706c6545524332303a20617070726f766520746f20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b600061257460288361201c565b915061257f82612518565b604082019050919050565b600060208201905081810360008301526125a381612567565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865207065706560008201527f32324d61785472616e73616374696f6e2e000000000000000000000000000000602082015250565b600061260660318361201c565b9150612611826125aa565b604082019050919050565b60006020820190508181036000830152612635816125f9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612676826120c3565b9150612681836120c3565b92508282019050808211156126995761269861263c565b5b92915050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e74000000600082015250565b60006126d5601d8361201c565b91506126e08261269f565b602082019050919050565b60006020820190508181036000830152612704816126c8565b9050919050565b6000612716826120c3565b9150612721836120c3565b92508282039050818111156127395761273861263c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612775601b8361201c565b91506127808261273f565b602082019050919050565b600060208201905081810360008301526127a481612768565b9050919050565b60006040820190506127c060008301856122be565b6127cd60208301846122be565b9392505050565b6000815190506127e3816120cd565b92915050565b6000602082840312156127ff576127fe611f36565b5b600061280d848285016127d4565b91505092915050565b7f53696d706c6545524332303a207472616e736665722066726f6d20746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b6000612872602b8361201c565b915061287d82612816565b604082019050919050565b600060208201905081810360008301526128a181612865565b9050919050565b7f53696d706c6545524332303a207472616e7366657220746f20746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b600061290460298361201c565b915061290f826128a8565b604082019050919050565b60006020820190508181036000830152612933816128f7565b9050919050565b6000612945826120c3565b9150612950836120c3565b925082820261295e816120c3565b915082820484148315176129755761297461263c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129b6826120c3565b91506129c1836120c3565b9250826129d1576129d061297c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a3860218361201c565b9150612a43826129dc565b604082019050919050565b60006020820190508181036000830152612a6781612a2b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612adb81611f6d565b92915050565b600060208284031215612af757612af6611f36565b5b6000612b0584828501612acc565b91505092915050565b6000819050919050565b6000612b33612b2e612b2984612b0e565b612163565b6120c3565b9050919050565b612b4381612b18565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b7e81611f5b565b82525050565b6000612b908383612b75565b60208301905092915050565b6000602082019050919050565b6000612bb482612b49565b612bbe8185612b54565b9350612bc983612b65565b8060005b83811015612bfa578151612be18882612b84565b9750612bec83612b9c565b925050600181019050612bcd565b5085935050505092915050565b600060a082019050612c1c60008301886121dd565b612c296020830187612b3a565b8181036040830152612c3b8186612ba9565b9050612c4a60608301856122be565b612c5760808301846121dd565b969550505050505056fe53696d706c6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636553696d706c6545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636553696d706c6545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220752844190c3761d18b862d41cfdd44496f26cf71e9dc7fc3735da5d30b3f217964736f6c63430008130033

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

00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044fa80e3add20bea6202125b04a807697ca4e15200000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000003e80000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000000033ce3926342ecc94a7d30aeec726e51a28875b000000000000000000000000a04781d15d5790997ce8478e8d78af5af9c342b9000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000085065706520322e32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000750455045322e3200000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Pepe 2.2
Arg [1] : symbol_ (string): PEPE2.2
Arg [2] : supply_ (uint256): 1000000000
Arg [3] : decimals_ (uint8): 18
Arg [4] : parameters (tuple): System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput]
Arg [5] : uniswapV2Router_ (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [6] : refInfo_ (tuple): System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput]

-----Encoded View---------------
17 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000001a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000001e0
Arg [2] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [6] : 00000000000000000000000044fa80e3add20bea6202125b04a807697ca4e152
Arg [7] : 00000000000000000000000000000000000000000000000000000000000003e8
Arg [8] : 00000000000000000000000000000000000000000000000000000000000003e8
Arg [9] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [10] : 0000000000000000000000000033ce3926342ecc94a7d30aeec726e51a28875b
Arg [11] : 000000000000000000000000a04781d15d5790997ce8478e8d78af5af9c342b9
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [14] : 5065706520322e32000000000000000000000000000000000000000000000000
Arg [15] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [16] : 50455045322e3200000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

30179:5796:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32817:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11369:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13690:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30507:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12502:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14388:460;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30681:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12337:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15257:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30554:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30326:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30428:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30259:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12673:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9299:148;;;;;;;;;;;;;:::i;:::-;;32671:140;;;;;;;;;;;;;:::i;:::-;;30470:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8657:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11588:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16060:406;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13063:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30297:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13342:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9602:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30391:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;32817:143;8879:12;:10;:12::i;:::-;8869:22;;:6;;;;;;;;;;;:22;;;8861:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;32944:8:::1;32908:24;:33;32933:7;32908:33;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;32817:143:::0;;:::o;11369:100::-;11423:13;11456:5;11449:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11369:100;:::o;13690:210::-;13809:4;13831:39;13840:12;:10;:12::i;:::-;13854:7;13863:6;13831:8;:39::i;:::-;13888:4;13881:11;;13690:210;;;;:::o;30507:40::-;;;;;;;;;;;;;:::o;12502:108::-;12563:7;12590:12;;12583:19;;12502:108;:::o;14388:460::-;14528:4;14545:36;14555:6;14563:9;14574:6;14545:9;:36::i;:::-;14592:226;14615:6;14636:12;:10;:12::i;:::-;14663:144;14719:6;14663:144;;;;;;;;;;;;;;;;;:11;:19;14675:6;14663:19;;;;;;;;;;;;;;;:33;14683:12;:10;:12::i;:::-;14663:33;;;;;;;;;;;;;;;;:37;;:144;;;;;:::i;:::-;14592:8;:226::i;:::-;14836:4;14829:11;;14388:460;;;;;:::o;30681:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;12337:100::-;12395:5;12420:9;;;;;;;;;;;12413:16;;12337:100;:::o;15257:300::-;15372:4;15394:133;15417:12;:10;:12::i;:::-;15444:7;15466:50;15505:10;15466:11;:25;15478:12;:10;:12::i;:::-;15466:25;;;;;;;;;;;;;;;:34;15492:7;15466:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;15394:8;:133::i;:::-;15545:4;15538:11;;15257:300;;;;:::o;30554:28::-;;;;;;;;;;;;;:::o;30326:21::-;;;;:::o;30428:35::-;;;;:::o;30259:31::-;;;;:::o;12673:177::-;12792:7;12824:9;:18;12834:7;12824:18;;;;;;;;;;;;;;;;12817:25;;12673:177;;;:::o;9299:148::-;8879:12;:10;:12::i;:::-;8869:22;;:6;;;;;;;;;;;:22;;;8861:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9406:1:::1;9369:40;;9390:6;;;;;;;;;;;9369:40;;;;;;;;;;;;9437:1;9420:6;;:19;;;;;;;;;;;;;;;;;;9299:148::o:0;32671:140::-;8879:12;:10;:12::i;:::-;8869:22;;:6;;;;;;;;;;;:22;;;8861:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;32748:13:::1;:11;:13::i;:::-;32725:20;:36;;;;32790:13;:11;:13::i;:::-;32772:15;:31;;;;32671:140::o:0;30470:30::-;;;;:::o;8657:79::-;8695:7;8722:6;;;;;;;;;;;8715:13;;8657:79;:::o;11588:104::-;11644:13;11677:7;11670:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11588:104;:::o;16060:406::-;16180:4;16202:234;16225:12;:10;:12::i;:::-;16252:7;16274:151;16331:15;16274:151;;;;;;;;;;;;;;;;;:11;:25;16286:12;:10;:12::i;:::-;16274:25;;;;;;;;;;;;;;;:34;16300:7;16274:34;;;;;;;;;;;;;;;;:38;;:151;;;;;:::i;:::-;16202:8;:234::i;:::-;16454:4;16447:11;;16060:406;;;;:::o;13063:216::-;13185:4;13207:42;13217:12;:10;:12::i;:::-;13231:9;13242:6;13207:9;:42::i;:::-;13267:4;13260:11;;13063:216;;;;:::o;30297:22::-;;;;:::o;13342:201::-;13476:7;13508:11;:18;13520:5;13508:18;;;;;;;;;;;;;;;:27;13527:7;13508:27;;;;;;;;;;;;;;;;13501:34;;13342:201;;;;:::o;9602:281::-;8879:12;:10;:12::i;:::-;8869:22;;:6;;;;;;;;;;;:22;;;8861:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9725:1:::1;9705:22;;:8;:22;;::::0;9683:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;9838:8;9809:38;;9830:6;;;;;;;;;;;9809:38;;;;;;;;;;;;9867:8;9858:6;;:17;;;;;;;;;;;;;;;;;;9602:281:::0;:::o;30391:30::-;;;;;;;;;;;;;:::o;7795:98::-;7848:7;7875:10;7868:17;;7795:98;:::o;19493:392::-;19646:1;19629:19;;:5;:19;;;19621:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;19733:1;19714:21;;:7;:21;;;19706:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;19823:6;19793:11;:18;19805:5;19793:18;;;;;;;;;;;;;;;:27;19812:7;19793:27;;;;;;;;;;;;;;;:36;;;;19861:7;19845:32;;19854:5;19845:32;;;19870:6;19845:32;;;;;;:::i;:::-;;;;;;;;19493:392;;;:::o;33560:1598::-;33717:1;33703:16;;:2;:16;;;:41;;;;33737:6;33723:21;;:2;:21;;;33703:41;33702:94;;;;33762:34;33787:4;33793:2;33762:24;:34::i;:::-;33702:94;:122;;;;33823:1;33813:6;:11;33702:122;33684:566;;;33838:33;33854:4;33860:2;33864:6;33838:15;:33::i;:::-;33872:7;;33684:566;33929:20;;33919:6;:30;;33911:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;34028:13;;;;;;;;;;;34022:19;;:2;:19;;;34018:221;;34062:32;34097:13;34107:2;34097:9;:13::i;:::-;34062:48;;34174:15;;34164:6;34137:24;:33;;;;:::i;:::-;:52;;34129:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;34043:196;34018:221;34260:28;34291:24;34309:4;34291:9;:24::i;:::-;34260:55;;34326:12;34365:16;;34341:20;:40;;34326:55;;34396:7;:20;;;;;34408:8;;;;;;;;;;;34407:9;34396:20;:49;;;;;34421:18;:24;34440:4;34421:24;;;;;;;;;;;;;;;;;;;;;;;;;34420:25;34396:49;34392:283;;;34473:4;34462:8;;:15;;;;;;;;;;;;;;;;;;34492:23;34518:20;34492:46;;34575:1;34557:15;:19;34553:80;;;34580:50;34597:15;34614;;;;;;;;;;;34580:16;:50::i;:::-;34553:80;34658:5;34647:8;;:16;;;;;;;;;;;;;;;;;;34447:228;34392:283;34685:12;34701:8;;;;;;;;;;;34700:9;34685:24;;34724;:30;34749:4;34724:30;;;;;;;;;;;;;;;;;;;;;;;;;:62;;;;34758:24;:28;34783:2;34758:28;;;;;;;;;;;;;;;;;;;;;;;;;34724:62;34720:110;;;34813:5;34803:15;;34720:110;34846:7;34842:265;;;34870:12;34885:29;34908:5;34885:18;34896:6;;34885;:10;;:18;;;;:::i;:::-;:22;;:29;;;;:::i;:::-;34870:44;;34933:18;:22;34952:2;34933:22;;;;;;;;;;;;;;;;;;;;;;;;;34929:70;;;34966:30;34990:5;34966:19;34977:7;;34966:6;:10;;:19;;;;:::i;:::-;:23;;:30;;;;:::i;:::-;34959:37;;34929:70;35022:16;35033:4;35022:6;:10;;:16;;;;:::i;:::-;35013:25;;35053:42;35069:4;35083;35090;35053:15;:42::i;:::-;34855:252;34842:265;35117:33;35133:4;35139:2;35143:6;35117:15;:33::i;:::-;33673:1485;;;33560:1598;;;;:::o;1271:226::-;1391:7;1424:1;1419;:6;;1427:12;1411:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1451:9;1467:1;1463;:5;;;;:::i;:::-;1451:17;;1488:1;1481:8;;;1271:226;;;;;:::o;368:181::-;426:7;446:9;462:1;458;:5;;;;:::i;:::-;446:17;;487:1;482;:6;;474:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;540:1;533:8;;;368:181;;;;:::o;33306:248::-;33384:4;33408:24;:30;33433:4;33408:30;;;;;;;;;;;;;;;;;;;;;;;;;:62;;;;33442:24;:28;33467:2;33442:28;;;;;;;;;;;;;;;;;;;;;;;;;33408:62;:138;;;;33545:1;33497:3;:16;;;;;;;;;;;;33474:58;;;33533:4;33539:2;33474:68;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:72;33408:138;33401:145;;33306:248;;;;:::o;16956:628::-;17114:1;17096:20;;:6;:20;;;17088:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;17204:1;17183:23;;:9;:23;;;17175:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;17265:47;17286:6;17294:9;17305:6;17265:20;:47::i;:::-;17345:114;17381:6;17345:114;;;;;;;;;;;;;;;;;:9;:17;17355:6;17345:17;;;;;;;;;;;;;;;;:21;;:114;;;;;:::i;:::-;17325:9;:17;17335:6;17325:17;;;;;;;;;;;;;;;:134;;;;17493:32;17518:6;17493:9;:20;17503:9;17493:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17470:9;:20;17480:9;17470:20;;;;;;;;;;;;;;;:55;;;;17558:9;17541:35;;17550:6;17541:35;;;17569:6;17541:35;;;;;;:::i;:::-;;;;;;;;16956:628;;;:::o;35641:296::-;35720:22;35745:21;35720:46;;35779:24;35796:6;35779:16;:24::i;:::-;35816:18;35837:41;35863:14;35837:21;:25;;:41;;;;:::i;:::-;35816:62;;35899:8;35891:26;;:38;35918:10;35891:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35709:228;;35641:296;;:::o;1756:471::-;1814:7;2064:1;2059;:6;2055:47;;2089:1;2082:8;;;;2055:47;2114:9;2130:1;2126;:5;;;;:::i;:::-;2114:17;;2159:1;2154;2150;:5;;;;:::i;:::-;:10;2142:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2218:1;2211:8;;;1756:471;;;;;:::o;2703:132::-;2761:7;2788:39;2792:1;2795;2788:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2781:46;;2703:132;;;;:::o;832:136::-;890:7;917:43;921:1;924;917:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;910:50;;832:136;;;;:::o;20488:125::-;;;;:::o;35164:471::-;35230:21;35268:1;35254:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35230:40;;35299:4;35281;35286:1;35281:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;35325:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;35315:4;35320:1;35315:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;35358:62;35375:4;35390:15;;;;;;;;;;;35408:11;35358:8;:62::i;:::-;35431:15;;;;;;;;;;;:66;;;35512:11;35538:1;35554:4;35581;35601:15;35431:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35219:416;35164:471;:::o;3331:312::-;3451:7;3483:1;3479;:5;3486:12;3471:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3510:9;3526:1;3522;:5;;;;:::i;:::-;3510:17;;3634:1;3627:8;;;3331:312;;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:90::-;875:7;918:5;911:13;904:21;893:32;;841:90;;;:::o;937:116::-;1007:21;1022:5;1007:21;:::i;:::-;1000:5;997:32;987:60;;1043:1;1040;1033:12;987:60;937:116;:::o;1059:133::-;1102:5;1140:6;1127:20;1118:29;;1156:30;1180:5;1156:30;:::i;:::-;1059:133;;;;:::o;1198:468::-;1263:6;1271;1320:2;1308:9;1299:7;1295:23;1291:32;1288:119;;;1326:79;;:::i;:::-;1288:119;1446:1;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1417:117;1573:2;1599:50;1641:7;1632:6;1621:9;1617:22;1599:50;:::i;:::-;1589:60;;1544:115;1198:468;;;;;:::o;1672:99::-;1724:6;1758:5;1752:12;1742:22;;1672:99;;;:::o;1777:169::-;1861:11;1895:6;1890:3;1883:19;1935:4;1930:3;1926:14;1911:29;;1777:169;;;;:::o;1952:246::-;2033:1;2043:113;2057:6;2054:1;2051:13;2043:113;;;2142:1;2137:3;2133:11;2127:18;2123:1;2118:3;2114:11;2107:39;2079:2;2076:1;2072:10;2067:15;;2043:113;;;2190:1;2181:6;2176:3;2172:16;2165:27;2014:184;1952:246;;;:::o;2204:102::-;2245:6;2296:2;2292:7;2287:2;2280:5;2276:14;2272:28;2262:38;;2204:102;;;:::o;2312:377::-;2400:3;2428:39;2461:5;2428:39;:::i;:::-;2483:71;2547:6;2542:3;2483:71;:::i;:::-;2476:78;;2563:65;2621:6;2616:3;2609:4;2602:5;2598:16;2563:65;:::i;:::-;2653:29;2675:6;2653:29;:::i;:::-;2648:3;2644:39;2637:46;;2404:285;2312:377;;;;:::o;2695:313::-;2808:4;2846:2;2835:9;2831:18;2823:26;;2895:9;2889:4;2885:20;2881:1;2870:9;2866:17;2859:47;2923:78;2996:4;2987:6;2923:78;:::i;:::-;2915:86;;2695:313;;;;:::o;3014:77::-;3051:7;3080:5;3069:16;;3014:77;;;:::o;3097:122::-;3170:24;3188:5;3170:24;:::i;:::-;3163:5;3160:35;3150:63;;3209:1;3206;3199:12;3150:63;3097:122;:::o;3225:139::-;3271:5;3309:6;3296:20;3287:29;;3325:33;3352:5;3325:33;:::i;:::-;3225:139;;;;:::o;3370:474::-;3438:6;3446;3495:2;3483:9;3474:7;3470:23;3466:32;3463:119;;;3501:79;;:::i;:::-;3463:119;3621:1;3646:53;3691:7;3682:6;3671:9;3667:22;3646:53;:::i;:::-;3636:63;;3592:117;3748:2;3774:53;3819:7;3810:6;3799:9;3795:22;3774:53;:::i;:::-;3764:63;;3719:118;3370:474;;;;;:::o;3850:109::-;3931:21;3946:5;3931:21;:::i;:::-;3926:3;3919:34;3850:109;;:::o;3965:210::-;4052:4;4090:2;4079:9;4075:18;4067:26;;4103:65;4165:1;4154:9;4150:17;4141:6;4103:65;:::i;:::-;3965:210;;;;:::o;4181:60::-;4209:3;4230:5;4223:12;;4181:60;;;:::o;4247:142::-;4297:9;4330:53;4348:34;4357:24;4375:5;4357:24;:::i;:::-;4348:34;:::i;:::-;4330:53;:::i;:::-;4317:66;;4247:142;;;:::o;4395:126::-;4445:9;4478:37;4509:5;4478:37;:::i;:::-;4465:50;;4395:126;;;:::o;4527:152::-;4603:9;4636:37;4667:5;4636:37;:::i;:::-;4623:50;;4527:152;;;:::o;4685:183::-;4798:63;4855:5;4798:63;:::i;:::-;4793:3;4786:76;4685:183;;:::o;4874:274::-;4993:4;5031:2;5020:9;5016:18;5008:26;;5044:97;5138:1;5127:9;5123:17;5114:6;5044:97;:::i;:::-;4874:274;;;;:::o;5154:118::-;5241:24;5259:5;5241:24;:::i;:::-;5236:3;5229:37;5154:118;;:::o;5278:222::-;5371:4;5409:2;5398:9;5394:18;5386:26;;5422:71;5490:1;5479:9;5475:17;5466:6;5422:71;:::i;:::-;5278:222;;;;:::o;5506:619::-;5583:6;5591;5599;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5901:2;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5872:118;6029:2;6055:53;6100:7;6091:6;6080:9;6076:22;6055:53;:::i;:::-;6045:63;;6000:118;5506:619;;;;;:::o;6131:329::-;6190:6;6239:2;6227:9;6218:7;6214:23;6210:32;6207:119;;;6245:79;;:::i;:::-;6207:119;6365:1;6390:53;6435:7;6426:6;6415:9;6411:22;6390:53;:::i;:::-;6380:63;;6336:117;6131:329;;;;:::o;6466:86::-;6501:7;6541:4;6534:5;6530:16;6519:27;;6466:86;;;:::o;6558:112::-;6641:22;6657:5;6641:22;:::i;:::-;6636:3;6629:35;6558:112;;:::o;6676:214::-;6765:4;6803:2;6792:9;6788:18;6780:26;;6816:67;6880:1;6869:9;6865:17;6856:6;6816:67;:::i;:::-;6676:214;;;;:::o;6896:118::-;6983:24;7001:5;6983:24;:::i;:::-;6978:3;6971:37;6896:118;;:::o;7020:222::-;7113:4;7151:2;7140:9;7136:18;7128:26;;7164:71;7232:1;7221:9;7217:17;7208:6;7164:71;:::i;:::-;7020:222;;;;:::o;7248:474::-;7316:6;7324;7373:2;7361:9;7352:7;7348:23;7344:32;7341:119;;;7379:79;;:::i;:::-;7341:119;7499:1;7524:53;7569:7;7560:6;7549:9;7545:22;7524:53;:::i;:::-;7514:63;;7470:117;7626:2;7652:53;7697:7;7688:6;7677:9;7673:22;7652:53;:::i;:::-;7642:63;;7597:118;7248:474;;;;;:::o;7728:182::-;7868:34;7864:1;7856:6;7852:14;7845:58;7728:182;:::o;7916:366::-;8058:3;8079:67;8143:2;8138:3;8079:67;:::i;:::-;8072:74;;8155:93;8244:3;8155:93;:::i;:::-;8273:2;8268:3;8264:12;8257:19;;7916:366;;;:::o;8288:419::-;8454:4;8492:2;8481:9;8477:18;8469:26;;8541:9;8535:4;8531:20;8527:1;8516:9;8512:17;8505:47;8569:131;8695:4;8569:131;:::i;:::-;8561:139;;8288:419;;;:::o;8713:180::-;8761:77;8758:1;8751:88;8858:4;8855:1;8848:15;8882:4;8879:1;8872:15;8899:320;8943:6;8980:1;8974:4;8970:12;8960:22;;9027:1;9021:4;9017:12;9048:18;9038:81;;9104:4;9096:6;9092:17;9082:27;;9038:81;9166:2;9158:6;9155:14;9135:18;9132:38;9129:84;;9185:18;;:::i;:::-;9129:84;8950:269;8899:320;;;:::o;9225:225::-;9365:34;9361:1;9353:6;9349:14;9342:58;9434:8;9429:2;9421:6;9417:15;9410:33;9225:225;:::o;9456:366::-;9598:3;9619:67;9683:2;9678:3;9619:67;:::i;:::-;9612:74;;9695:93;9784:3;9695:93;:::i;:::-;9813:2;9808:3;9804:12;9797:19;;9456:366;;;:::o;9828:419::-;9994:4;10032:2;10021:9;10017:18;10009:26;;10081:9;10075:4;10071:20;10067:1;10056:9;10052:17;10045:47;10109:131;10235:4;10109:131;:::i;:::-;10101:139;;9828:419;;;:::o;10253:229::-;10393:34;10389:1;10381:6;10377:14;10370:58;10462:12;10457:2;10449:6;10445:15;10438:37;10253:229;:::o;10488:366::-;10630:3;10651:67;10715:2;10710:3;10651:67;:::i;:::-;10644:74;;10727:93;10816:3;10727:93;:::i;:::-;10845:2;10840:3;10836:12;10829:19;;10488:366;;;:::o;10860:419::-;11026:4;11064:2;11053:9;11049:18;11041:26;;11113:9;11107:4;11103:20;11099:1;11088:9;11084:17;11077:47;11141:131;11267:4;11141:131;:::i;:::-;11133:139;;10860:419;;;:::o;11285:227::-;11425:34;11421:1;11413:6;11409:14;11402:58;11494:10;11489:2;11481:6;11477:15;11470:35;11285:227;:::o;11518:366::-;11660:3;11681:67;11745:2;11740:3;11681:67;:::i;:::-;11674:74;;11757:93;11846:3;11757:93;:::i;:::-;11875:2;11870:3;11866:12;11859:19;;11518:366;;;:::o;11890:419::-;12056:4;12094:2;12083:9;12079:18;12071:26;;12143:9;12137:4;12133:20;12129:1;12118:9;12114:17;12107:47;12171:131;12297:4;12171:131;:::i;:::-;12163:139;;11890:419;;;:::o;12315:236::-;12455:34;12451:1;12443:6;12439:14;12432:58;12524:19;12519:2;12511:6;12507:15;12500:44;12315:236;:::o;12557:366::-;12699:3;12720:67;12784:2;12779:3;12720:67;:::i;:::-;12713:74;;12796:93;12885:3;12796:93;:::i;:::-;12914:2;12909:3;12905:12;12898:19;;12557:366;;;:::o;12929:419::-;13095:4;13133:2;13122:9;13118:18;13110:26;;13182:9;13176:4;13172:20;13168:1;13157:9;13153:17;13146:47;13210:131;13336:4;13210:131;:::i;:::-;13202:139;;12929:419;;;:::o;13354:180::-;13402:77;13399:1;13392:88;13499:4;13496:1;13489:15;13523:4;13520:1;13513:15;13540:191;13580:3;13599:20;13617:1;13599:20;:::i;:::-;13594:25;;13633:20;13651:1;13633:20;:::i;:::-;13628:25;;13676:1;13673;13669:9;13662:16;;13697:3;13694:1;13691:10;13688:36;;;13704:18;;:::i;:::-;13688:36;13540:191;;;;:::o;13737:179::-;13877:31;13873:1;13865:6;13861:14;13854:55;13737:179;:::o;13922:366::-;14064:3;14085:67;14149:2;14144:3;14085:67;:::i;:::-;14078:74;;14161:93;14250:3;14161:93;:::i;:::-;14279:2;14274:3;14270:12;14263:19;;13922:366;;;:::o;14294:419::-;14460:4;14498:2;14487:9;14483:18;14475:26;;14547:9;14541:4;14537:20;14533:1;14522:9;14518:17;14511:47;14575:131;14701:4;14575:131;:::i;:::-;14567:139;;14294:419;;;:::o;14719:194::-;14759:4;14779:20;14797:1;14779:20;:::i;:::-;14774:25;;14813:20;14831:1;14813:20;:::i;:::-;14808:25;;14857:1;14854;14850:9;14842:17;;14881:1;14875:4;14872:11;14869:37;;;14886:18;;:::i;:::-;14869:37;14719:194;;;;:::o;14919:177::-;15059:29;15055:1;15047:6;15043:14;15036:53;14919:177;:::o;15102:366::-;15244:3;15265:67;15329:2;15324:3;15265:67;:::i;:::-;15258:74;;15341:93;15430:3;15341:93;:::i;:::-;15459:2;15454:3;15450:12;15443:19;;15102:366;;;:::o;15474:419::-;15640:4;15678:2;15667:9;15663:18;15655:26;;15727:9;15721:4;15717:20;15713:1;15702:9;15698:17;15691:47;15755:131;15881:4;15755:131;:::i;:::-;15747:139;;15474:419;;;:::o;15899:332::-;16020:4;16058:2;16047:9;16043:18;16035:26;;16071:71;16139:1;16128:9;16124:17;16115:6;16071:71;:::i;:::-;16152:72;16220:2;16209:9;16205:18;16196:6;16152:72;:::i;:::-;15899:332;;;;;:::o;16237:143::-;16294:5;16325:6;16319:13;16310:22;;16341:33;16368:5;16341:33;:::i;:::-;16237:143;;;;:::o;16386:351::-;16456:6;16505:2;16493:9;16484:7;16480:23;16476:32;16473:119;;;16511:79;;:::i;:::-;16473:119;16631:1;16656:64;16712:7;16703:6;16692:9;16688:22;16656:64;:::i;:::-;16646:74;;16602:128;16386:351;;;;:::o;16743:230::-;16883:34;16879:1;16871:6;16867:14;16860:58;16952:13;16947:2;16939:6;16935:15;16928:38;16743:230;:::o;16979:366::-;17121:3;17142:67;17206:2;17201:3;17142:67;:::i;:::-;17135:74;;17218:93;17307:3;17218:93;:::i;:::-;17336:2;17331:3;17327:12;17320:19;;16979:366;;;:::o;17351:419::-;17517:4;17555:2;17544:9;17540:18;17532:26;;17604:9;17598:4;17594:20;17590:1;17579:9;17575:17;17568:47;17632:131;17758:4;17632:131;:::i;:::-;17624:139;;17351:419;;;:::o;17776:228::-;17916:34;17912:1;17904:6;17900:14;17893:58;17985:11;17980:2;17972:6;17968:15;17961:36;17776:228;:::o;18010:366::-;18152:3;18173:67;18237:2;18232:3;18173:67;:::i;:::-;18166:74;;18249:93;18338:3;18249:93;:::i;:::-;18367:2;18362:3;18358:12;18351:19;;18010:366;;;:::o;18382:419::-;18548:4;18586:2;18575:9;18571:18;18563:26;;18635:9;18629:4;18625:20;18621:1;18610:9;18606:17;18599:47;18663:131;18789:4;18663:131;:::i;:::-;18655:139;;18382:419;;;:::o;18807:410::-;18847:7;18870:20;18888:1;18870:20;:::i;:::-;18865:25;;18904:20;18922:1;18904:20;:::i;:::-;18899:25;;18959:1;18956;18952:9;18981:30;18999:11;18981:30;:::i;:::-;18970:41;;19160:1;19151:7;19147:15;19144:1;19141:22;19121:1;19114:9;19094:83;19071:139;;19190:18;;:::i;:::-;19071:139;18855:362;18807:410;;;;:::o;19223:180::-;19271:77;19268:1;19261:88;19368:4;19365:1;19358:15;19392:4;19389:1;19382:15;19409:185;19449:1;19466:20;19484:1;19466:20;:::i;:::-;19461:25;;19500:20;19518:1;19500:20;:::i;:::-;19495:25;;19539:1;19529:35;;19544:18;;:::i;:::-;19529:35;19586:1;19583;19579:9;19574:14;;19409:185;;;;:::o;19600:220::-;19740:34;19736:1;19728:6;19724:14;19717:58;19809:3;19804:2;19796:6;19792:15;19785:28;19600:220;:::o;19826:366::-;19968:3;19989:67;20053:2;20048:3;19989:67;:::i;:::-;19982:74;;20065:93;20154:3;20065:93;:::i;:::-;20183:2;20178:3;20174:12;20167:19;;19826:366;;;:::o;20198:419::-;20364:4;20402:2;20391:9;20387:18;20379:26;;20451:9;20445:4;20441:20;20437:1;20426:9;20422:17;20415:47;20479:131;20605:4;20479:131;:::i;:::-;20471:139;;20198:419;;;:::o;20623:180::-;20671:77;20668:1;20661:88;20768:4;20765:1;20758:15;20792:4;20789:1;20782:15;20809:180;20857:77;20854:1;20847:88;20954:4;20951:1;20944:15;20978:4;20975:1;20968:15;20995:143;21052:5;21083:6;21077:13;21068:22;;21099:33;21126:5;21099:33;:::i;:::-;20995:143;;;;:::o;21144:351::-;21214:6;21263:2;21251:9;21242:7;21238:23;21234:32;21231:119;;;21269:79;;:::i;:::-;21231:119;21389:1;21414:64;21470:7;21461:6;21450:9;21446:22;21414:64;:::i;:::-;21404:74;;21360:128;21144:351;;;;:::o;21501:85::-;21546:7;21575:5;21564:16;;21501:85;;;:::o;21592:158::-;21650:9;21683:61;21701:42;21710:32;21736:5;21710:32;:::i;:::-;21701:42;:::i;:::-;21683:61;:::i;:::-;21670:74;;21592:158;;;:::o;21756:147::-;21851:45;21890:5;21851:45;:::i;:::-;21846:3;21839:58;21756:147;;:::o;21909:114::-;21976:6;22010:5;22004:12;21994:22;;21909:114;;;:::o;22029:184::-;22128:11;22162:6;22157:3;22150:19;22202:4;22197:3;22193:14;22178:29;;22029:184;;;;:::o;22219:132::-;22286:4;22309:3;22301:11;;22339:4;22334:3;22330:14;22322:22;;22219:132;;;:::o;22357:108::-;22434:24;22452:5;22434:24;:::i;:::-;22429:3;22422:37;22357:108;;:::o;22471:179::-;22540:10;22561:46;22603:3;22595:6;22561:46;:::i;:::-;22639:4;22634:3;22630:14;22616:28;;22471:179;;;;:::o;22656:113::-;22726:4;22758;22753:3;22749:14;22741:22;;22656:113;;;:::o;22805:732::-;22924:3;22953:54;23001:5;22953:54;:::i;:::-;23023:86;23102:6;23097:3;23023:86;:::i;:::-;23016:93;;23133:56;23183:5;23133:56;:::i;:::-;23212:7;23243:1;23228:284;23253:6;23250:1;23247:13;23228:284;;;23329:6;23323:13;23356:63;23415:3;23400:13;23356:63;:::i;:::-;23349:70;;23442:60;23495:6;23442:60;:::i;:::-;23432:70;;23288:224;23275:1;23272;23268:9;23263:14;;23228:284;;;23232:14;23528:3;23521:10;;22929:608;;;22805:732;;;;:::o;23543:831::-;23806:4;23844:3;23833:9;23829:19;23821:27;;23858:71;23926:1;23915:9;23911:17;23902:6;23858:71;:::i;:::-;23939:80;24015:2;24004:9;24000:18;23991:6;23939:80;:::i;:::-;24066:9;24060:4;24056:20;24051:2;24040:9;24036:18;24029:48;24094:108;24197:4;24188:6;24094:108;:::i;:::-;24086:116;;24212:72;24280:2;24269:9;24265:18;24256:6;24212:72;:::i;:::-;24294:73;24362:3;24351:9;24347:19;24338:6;24294:73;:::i;:::-;23543:831;;;;;;;;:::o

Swarm Source

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