ETH Price: $2,640.74 (+0.30%)

Token

Cult Of Elon (Cult Of Elon)
 

Overview

Max Total Supply

1,000,000,000,000 Cult Of Elon

Holders

62

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
7,014,891,156.414306322817117647 Cult Of Elon

Value
$0.00
0x47ac4885669a0e9e34d49c127aec66f7254541b2
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:
CultOfElon

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-25
*/

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

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

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () public {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint 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 (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint 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 (uint);

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    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 (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

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

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

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

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

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

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

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

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

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

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

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

interface IERC20Metadata 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 ERC20 is Context, IERC20, IERC20Metadata {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @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_) public {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @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 {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @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 {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    /**
     * @dev Atomically 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, "ERC20: 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), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

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

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

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

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

    uint256 buyFee;
    uint256 sellFee;
    bool private swapping;

    bool private isTradingEnabled;

    uint256 private startTime;

    uint256 public swapTokensAtAmount = 85 * 10**5 * (10**18);

    uint256 public maxSellAmt = 2 * 10**18;

    IUniswapV2Router02 public uniswapV2Router;
    address public immutable uniswapV2Pair;

    mapping (address => bool) private _isExcluded;

    mapping (address => bool) public _isBlacklisted;

    constructor() public ERC20("Cult Of Elon", "Cult Of Elon") {
    	IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;

        _isExcluded[owner()] = true;
        _isExcluded[address(this)] = true;

        _isBlacklisted[address(0)] = true;

        buyFee = 80;
        sellFee = 110;

        _mint(owner(),  10**12 * (10**18));
    }

    receive() external payable {

  	}

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(!_isBlacklisted[from] && !_isBlacklisted[to], "To or From address is blacklisted.");

        if (!isTradingEnabled) {
            require(_isExcluded[to] || _isExcluded[from], "Trading is not yet enabled. Be patient!");
        } else if (block.timestamp - startTime < 20 && from == uniswapV2Pair) {
            require(amount <= 50**9 * (50**18), "Over max buy amt.");
        } else if (to == uniswapV2Pair) {
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = uniswapV2Router.WETH();

            uint[] memory amounts = uniswapV2Router.getAmountsOut(amount, path);

            require(amounts[1] <= maxSellAmt);
        }

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

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

        if(
            canSwap &&
            !swapping &&
            from != uniswapV2Pair &&
            from != owner() &&
            to != owner()
        ) {

            swapping = true;

            uint256 swapTokens = contractTokenBalance.div(100);
            swapAndLiquify(swapTokens);

            uint256 sellTokens = balanceOf(address(this));
            swapAndSendDividends(sellTokens);

            swapping = false;
        }

        bool takeFee = !swapping;

        if(_isExcluded[from] || _isExcluded[to]) {
            takeFee = false;
        }

        if(takeFee) {
            uint256 fees;
            if (from == uniswapV2Pair) {
                fees = amount.mul(buyFee).div(1000);
            } else if (to == uniswapV2Pair) {
                fees = amount.mul(sellFee).div(1000);
            }
            amount = amount.sub(fees);
            super._transfer(from, address(this), fees);
        }
        super._transfer(from, to, amount);

    }

    function swapAndLiquify(uint256 tokens) private {
        uint256 half = tokens.div(2);
        uint256 otherHalf = tokens.sub(half);
        uint256 initialBalance = address(this).balance;
        swapTokensForEth(half);
        uint256 newBalance = address(this).balance.sub(initialBalance);
        addLiquidity(otherHalf, newBalance);
    }

     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 addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
         _approve(address(this), address(uniswapV2Router), tokenAmount);

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

     }

    function swapAndSendDividends(uint256 tokens) private {
        swapTokensForEth(tokens);
        payable(owner()).transfer(address(this).balance);
    }

     function setBlacklist(address account, bool value) external onlyOwner {
        _isBlacklisted[account] = value;
    }

    function enableTrading() external onlyOwner {
        require(!isTradingEnabled);
        isTradingEnabled = true;
        startTime = block.timestamp;
    }

    function setSwapAtAmount(uint256 amount) external onlyOwner {
        swapTokensAtAmount = amount;
    }

    function setMaxSellAmt(uint256 amount) external onlyOwner {
        maxSellAmt = amount;
    }

    function setBuyFee(uint256 value) external onlyOwner {
        buyFee = value;
    }

    function setSellFee(uint256 value) external onlyOwner {
        sellFee = value;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"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":[],"name":"enableTrading","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":"maxSellAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxSellAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526a0707f1ec5dcde3d8800000600a55671bc16d674ec80000600b553480156200002c57600080fd5b506040518060400160405280600c81526020017f43756c74204f6620456c6f6e00000000000000000000000000000000000000008152506040518060400160405280600c81526020017f43756c74204f6620456c6f6e00000000000000000000000000000000000000008152508160039080519060200190620000b1929190620007d9565b508060049080519060200190620000ca929190620007d9565b5050506000620000df6200053b60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001e057600080fd5b505afa158015620001f5573d6000803e3d6000fd5b505050506040513d60208110156200020c57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028057600080fd5b505afa15801562000295573d6000803e3d6000fd5b505050506040513d6020811015620002ac57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200032757600080fd5b505af11580156200033c573d6000803e3d6000fd5b505050506040513d60208110156200035357600080fd5b8101908080519060200190929190505050905081600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250506001600d6000620003f46200054360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506050600681905550606e60078190555062000533620005196200054360201b60201c565b6c0c9f2c9cd04674edea400000006200056d60201b60201c565b50506200087f565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b62000625600083836200074b60201b60201c565b62000641816002546200075060201b620017e91790919060201c565b6002819055506200069f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200075060201b620017e91790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b600080828401905083811015620007cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200081c57805160ff19168380011785556200084d565b828001600101855582156200084d579182015b828111156200084c5782518255916020019190600101906200082f565b5b5090506200085c919062000860565b5090565b5b808211156200087b57600081600090555060010162000861565b5090565b60805160601c613088620008b660003980610ef05280611c895280611d6d528061214e528061235a52806123de52506130886000f3fe60806040526004361061016a5760003560e01c806349bd5a5e116100d15780638da5cb5b1161008a578063a9059cbb11610064578063a9059cbb14610804578063dd62ed3e14610875578063e2f45605146108fa578063f2fde38b1461092557610171565b80638da5cb5b146106c257806395d89b4114610703578063a457c2d71461079357610171565b806349bd5a5e146105785780636402511e146105b957806370a08231146105f4578063715018a6146106595780638a8c523c146106705780638b4cee081461068757610171565b80631cdd3be3116101235780631cdd3be31461037b57806323b872dd146103e2578063313ce5671461047357806333cdacd9146104a157806339509351146104cc57806340e90a7e1461053d57610171565b806306fdde0314610176578063095ea7b3146102065780630cc835a314610277578063153b0d1e146102b25780631694505e1461030f57806318160ddd1461035057610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b610976565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101cb5780820151818401526020810190506101b0565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021257600080fd5b5061025f6004803603604081101561022957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a18565b60405180821515815260200191505060405180910390f35b34801561028357600080fd5b506102b06004803603602081101561029a57600080fd5b8101908080359060200190929190505050610a36565b005b3480156102be57600080fd5b5061030d600480360360408110156102d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610b0a565b005b34801561031b57600080fd5b50610324610c2f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035c57600080fd5b50610365610c55565b6040518082815260200191505060405180910390f35b34801561038757600080fd5b506103ca6004803603602081101561039e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c5f565b60405180821515815260200191505060405180910390f35b3480156103ee57600080fd5b5061045b6004803603606081101561040557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c7f565b60405180821515815260200191505060405180910390f35b34801561047f57600080fd5b50610488610d58565b604051808260ff16815260200191505060405180910390f35b3480156104ad57600080fd5b506104b6610d61565b6040518082815260200191505060405180910390f35b3480156104d857600080fd5b50610525600480360360408110156104ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d67565b60405180821515815260200191505060405180910390f35b34801561054957600080fd5b506105766004803603602081101561056057600080fd5b8101908080359060200190929190505050610e1a565b005b34801561058457600080fd5b5061058d610eee565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105c557600080fd5b506105f2600480360360208110156105dc57600080fd5b8101908080359060200190929190505050610f12565b005b34801561060057600080fd5b506106436004803603602081101561061757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fe6565b6040518082815260200191505060405180910390f35b34801561066557600080fd5b5061066e61102e565b005b34801561067c57600080fd5b506106856111b9565b005b34801561069357600080fd5b506106c0600480360360208110156106aa57600080fd5b81019080803590602001909291905050506112c1565b005b3480156106ce57600080fd5b506106d7611395565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561070f57600080fd5b506107186113bf565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561075857808201518184015260208101905061073d565b50505050905090810190601f1680156107855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561079f57600080fd5b506107ec600480360360408110156107b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611461565b60405180821515815260200191505060405180910390f35b34801561081057600080fd5b5061085d6004803603604081101561082757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061152e565b60405180821515815260200191505060405180910390f35b34801561088157600080fd5b506108e46004803603604081101561089857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061154c565b6040518082815260200191505060405180910390f35b34801561090657600080fd5b5061090f6115d3565b6040518082815260200191505060405180910390f35b34801561093157600080fd5b506109746004803603602081101561094857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115d9565b005b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a0e5780601f106109e357610100808354040283529160200191610a0e565b820191906000526020600020905b8154815290600101906020018083116109f157829003601f168201915b5050505050905090565b6000610a2c610a25611871565b8484611879565b6001905092915050565b610a3e611871565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060068190555050565b610b12611871565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000610c8c848484611a70565b610d4d84610c98611871565b610d4885604051806060016040528060288152602001612f7460289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cfe611871565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124939092919063ffffffff16565b611879565b600190509392505050565b60006012905090565b600b5481565b6000610e10610d74611871565b84610e0b8560016000610d85611871565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e990919063ffffffff16565b611879565b6001905092915050565b610e22611871565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b8190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610f1a611871565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fdc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a8190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611036611871565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111c1611871565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611283576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600860019054906101000a900460ff161561129d57600080fd5b6001600860016101000a81548160ff02191690831515021790555042600981905550565b6112c9611871565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461138b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060078190555050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114575780601f1061142c57610100808354040283529160200191611457565b820191906000526020600020905b81548152906001019060200180831161143a57829003601f168201915b5050505050905090565b600061152461146e611871565b8461151f8560405180606001604052806025815260200161302e6025913960016000611498611871565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124939092919063ffffffff16565b611879565b6001905092915050565b600061154261153b611871565b8484611a70565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b6115e1611871565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611729576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612ee56026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080828401905083811015611867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612fe86024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611985576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f0b6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b145750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061300c6022913960400191505060405180910390fd5b600860019054906101000a900460ff16611c7857600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c1e5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180612f9c6027913960400191505060405180910390fd5b6120fa565b60146009544203108015611cd757507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611d6b5773014e1878814c9cd8a33321216cbecfb248000000811115611d66576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4f766572206d61782062757920616d742e00000000000000000000000000000081525060200191505060405180910390fd5b6120f9565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120f8576060600267ffffffffffffffff81118015611dd957600080fd5b50604051908082528060200260200182016040528015611e085781602001602082028036833780820191505090505b5090503081600081518110611e1957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ebb57600080fd5b505afa158015611ecf573d6000803e3d6000fd5b505050506040513d6020811015611ee557600080fd5b810190808051906020019092919050505081600181518110611f0357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506060600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f84846040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015611fd7578082015181840152602081019050611fbc565b50505050905001935050505060006040518083038186803b158015611ffb57600080fd5b505afa15801561200f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561203957600080fd5b810190808051604051939291908464010000000082111561205957600080fd5b8382019150602082018581111561206f57600080fd5b825186602082028301116401000000008211171561208c57600080fd5b8083526020830192505050908051906020019060200280838360005b838110156120c35780820151818401526020810190506120a8565b505050509050016040525050509050600b54816001815181106120e257fe5b602002602001015111156120f557600080fd5b50505b5b5b60008114156121145761210f83836000612553565b61248e565b600061211f30610fe6565b90506000600a5482101590508080156121455750600860009054906101000a900460ff16155b801561219d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156121dc57506121ac611395565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561221b57506121eb611395565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612290576001600860006101000a81548160ff021916908315150217905550600061225160648461281490919063ffffffff16565b905061225c8161285e565b600061226730610fe6565b9050612272816128c3565b6000600860006101000a81548160ff02191690831515021790555050505b6000600860009054906101000a900460ff16159050600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123465750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561235057600090505b801561247f5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614156123dc576123d56103e86123c76006548861291d90919063ffffffff16565b61281490919063ffffffff16565b905061245d565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561245c576124596103e861244b6007548861291d90919063ffffffff16565b61281490919063ffffffff16565b90505b5b61247081866129a390919063ffffffff16565b945061247d873083612553565b505b61248a868686612553565b5050505b505050565b6000838311158290612540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156125055780820151818401526020810190506124ea565b50505050905090810190601f1680156125325780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125d9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fc36025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561265f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612ec26023913960400191505060405180910390fd5b61266a8383836129ed565b6126d581604051806060016040528060268152602001612f2d602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124939092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612768816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e990919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600061285683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129f2565b905092915050565b600061287460028361281490919063ffffffff16565b9050600061288b82846129a390919063ffffffff16565b9050600047905061289b83612ab8565b60006128b082476129a390919063ffffffff16565b90506128bc8382612d6c565b5050505050565b6128cc81612ab8565b6128d4611395565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612919573d6000803e3d6000fd5b5050565b600080831415612930576000905061299d565b600082840290508284828161294157fe5b0414612998576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612f536021913960400191505060405180910390fd5b809150505b92915050565b60006129e583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612493565b905092915050565b505050565b60008083118290612a9e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612a63578082015181840152602081019050612a48565b50505050905090810190601f168015612a905780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612aaa57fe5b049050809150509392505050565b6060600267ffffffffffffffff81118015612ad257600080fd5b50604051908082528060200260200182016040528015612b015781602001602082028036833780820191505090505b5090503081600081518110612b1257fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612bb457600080fd5b505afa158015612bc8573d6000803e3d6000fd5b505050506040513d6020811015612bde57600080fd5b810190808051906020019092919050505081600181518110612bfc57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c6330600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611879565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015612d27578082015181840152602081019050612d0c565b505050509050019650505050505050600060405180830381600087803b158015612d5057600080fd5b505af1158015612d64573d6000803e3d6000fd5b505050505050565b612d9930600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611879565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080612de5611395565b426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015612e6a57600080fd5b505af1158015612e7e573d6000803e3d6000fd5b50505050506040513d6060811015612e9557600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636554726164696e67206973206e6f742079657420656e61626c65642e2042652070617469656e742145524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373546f206f722046726f6d206164647265737320697320626c61636b6c69737465642e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ef3d087d2f0d5e6a713d7832851cc5ef57fcec8f403b1104da42f02bb740e1ee64736f6c634300060c0033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c806349bd5a5e116100d15780638da5cb5b1161008a578063a9059cbb11610064578063a9059cbb14610804578063dd62ed3e14610875578063e2f45605146108fa578063f2fde38b1461092557610171565b80638da5cb5b146106c257806395d89b4114610703578063a457c2d71461079357610171565b806349bd5a5e146105785780636402511e146105b957806370a08231146105f4578063715018a6146106595780638a8c523c146106705780638b4cee081461068757610171565b80631cdd3be3116101235780631cdd3be31461037b57806323b872dd146103e2578063313ce5671461047357806333cdacd9146104a157806339509351146104cc57806340e90a7e1461053d57610171565b806306fdde0314610176578063095ea7b3146102065780630cc835a314610277578063153b0d1e146102b25780631694505e1461030f57806318160ddd1461035057610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b610976565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101cb5780820151818401526020810190506101b0565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021257600080fd5b5061025f6004803603604081101561022957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a18565b60405180821515815260200191505060405180910390f35b34801561028357600080fd5b506102b06004803603602081101561029a57600080fd5b8101908080359060200190929190505050610a36565b005b3480156102be57600080fd5b5061030d600480360360408110156102d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610b0a565b005b34801561031b57600080fd5b50610324610c2f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035c57600080fd5b50610365610c55565b6040518082815260200191505060405180910390f35b34801561038757600080fd5b506103ca6004803603602081101561039e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c5f565b60405180821515815260200191505060405180910390f35b3480156103ee57600080fd5b5061045b6004803603606081101561040557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c7f565b60405180821515815260200191505060405180910390f35b34801561047f57600080fd5b50610488610d58565b604051808260ff16815260200191505060405180910390f35b3480156104ad57600080fd5b506104b6610d61565b6040518082815260200191505060405180910390f35b3480156104d857600080fd5b50610525600480360360408110156104ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d67565b60405180821515815260200191505060405180910390f35b34801561054957600080fd5b506105766004803603602081101561056057600080fd5b8101908080359060200190929190505050610e1a565b005b34801561058457600080fd5b5061058d610eee565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105c557600080fd5b506105f2600480360360208110156105dc57600080fd5b8101908080359060200190929190505050610f12565b005b34801561060057600080fd5b506106436004803603602081101561061757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fe6565b6040518082815260200191505060405180910390f35b34801561066557600080fd5b5061066e61102e565b005b34801561067c57600080fd5b506106856111b9565b005b34801561069357600080fd5b506106c0600480360360208110156106aa57600080fd5b81019080803590602001909291905050506112c1565b005b3480156106ce57600080fd5b506106d7611395565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561070f57600080fd5b506107186113bf565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561075857808201518184015260208101905061073d565b50505050905090810190601f1680156107855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561079f57600080fd5b506107ec600480360360408110156107b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611461565b60405180821515815260200191505060405180910390f35b34801561081057600080fd5b5061085d6004803603604081101561082757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061152e565b60405180821515815260200191505060405180910390f35b34801561088157600080fd5b506108e46004803603604081101561089857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061154c565b6040518082815260200191505060405180910390f35b34801561090657600080fd5b5061090f6115d3565b6040518082815260200191505060405180910390f35b34801561093157600080fd5b506109746004803603602081101561094857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115d9565b005b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a0e5780601f106109e357610100808354040283529160200191610a0e565b820191906000526020600020905b8154815290600101906020018083116109f157829003601f168201915b5050505050905090565b6000610a2c610a25611871565b8484611879565b6001905092915050565b610a3e611871565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060068190555050565b610b12611871565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000610c8c848484611a70565b610d4d84610c98611871565b610d4885604051806060016040528060288152602001612f7460289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cfe611871565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124939092919063ffffffff16565b611879565b600190509392505050565b60006012905090565b600b5481565b6000610e10610d74611871565b84610e0b8560016000610d85611871565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e990919063ffffffff16565b611879565b6001905092915050565b610e22611871565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b8190555050565b7f00000000000000000000000000cc85a7664dbb84fc0c91fda6c86e401ffd1e5e81565b610f1a611871565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fdc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a8190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611036611871565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111c1611871565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611283576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600860019054906101000a900460ff161561129d57600080fd5b6001600860016101000a81548160ff02191690831515021790555042600981905550565b6112c9611871565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461138b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060078190555050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114575780601f1061142c57610100808354040283529160200191611457565b820191906000526020600020905b81548152906001019060200180831161143a57829003601f168201915b5050505050905090565b600061152461146e611871565b8461151f8560405180606001604052806025815260200161302e6025913960016000611498611871565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124939092919063ffffffff16565b611879565b6001905092915050565b600061154261153b611871565b8484611a70565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b6115e1611871565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611729576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612ee56026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080828401905083811015611867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612fe86024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611985576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f0b6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b145750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061300c6022913960400191505060405180910390fd5b600860019054906101000a900460ff16611c7857600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c1e5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180612f9c6027913960400191505060405180910390fd5b6120fa565b60146009544203108015611cd757507f00000000000000000000000000cc85a7664dbb84fc0c91fda6c86e401ffd1e5e73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611d6b5773014e1878814c9cd8a33321216cbecfb248000000811115611d66576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4f766572206d61782062757920616d742e00000000000000000000000000000081525060200191505060405180910390fd5b6120f9565b7f00000000000000000000000000cc85a7664dbb84fc0c91fda6c86e401ffd1e5e73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120f8576060600267ffffffffffffffff81118015611dd957600080fd5b50604051908082528060200260200182016040528015611e085781602001602082028036833780820191505090505b5090503081600081518110611e1957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ebb57600080fd5b505afa158015611ecf573d6000803e3d6000fd5b505050506040513d6020811015611ee557600080fd5b810190808051906020019092919050505081600181518110611f0357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506060600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f84846040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015611fd7578082015181840152602081019050611fbc565b50505050905001935050505060006040518083038186803b158015611ffb57600080fd5b505afa15801561200f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561203957600080fd5b810190808051604051939291908464010000000082111561205957600080fd5b8382019150602082018581111561206f57600080fd5b825186602082028301116401000000008211171561208c57600080fd5b8083526020830192505050908051906020019060200280838360005b838110156120c35780820151818401526020810190506120a8565b505050509050016040525050509050600b54816001815181106120e257fe5b602002602001015111156120f557600080fd5b50505b5b5b60008114156121145761210f83836000612553565b61248e565b600061211f30610fe6565b90506000600a5482101590508080156121455750600860009054906101000a900460ff16155b801561219d57507f00000000000000000000000000cc85a7664dbb84fc0c91fda6c86e401ffd1e5e73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156121dc57506121ac611395565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561221b57506121eb611395565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612290576001600860006101000a81548160ff021916908315150217905550600061225160648461281490919063ffffffff16565b905061225c8161285e565b600061226730610fe6565b9050612272816128c3565b6000600860006101000a81548160ff02191690831515021790555050505b6000600860009054906101000a900460ff16159050600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123465750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561235057600090505b801561247f5760007f00000000000000000000000000cc85a7664dbb84fc0c91fda6c86e401ffd1e5e73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614156123dc576123d56103e86123c76006548861291d90919063ffffffff16565b61281490919063ffffffff16565b905061245d565b7f00000000000000000000000000cc85a7664dbb84fc0c91fda6c86e401ffd1e5e73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561245c576124596103e861244b6007548861291d90919063ffffffff16565b61281490919063ffffffff16565b90505b5b61247081866129a390919063ffffffff16565b945061247d873083612553565b505b61248a868686612553565b5050505b505050565b6000838311158290612540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156125055780820151818401526020810190506124ea565b50505050905090810190601f1680156125325780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125d9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fc36025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561265f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612ec26023913960400191505060405180910390fd5b61266a8383836129ed565b6126d581604051806060016040528060268152602001612f2d602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124939092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612768816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e990919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600061285683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129f2565b905092915050565b600061287460028361281490919063ffffffff16565b9050600061288b82846129a390919063ffffffff16565b9050600047905061289b83612ab8565b60006128b082476129a390919063ffffffff16565b90506128bc8382612d6c565b5050505050565b6128cc81612ab8565b6128d4611395565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612919573d6000803e3d6000fd5b5050565b600080831415612930576000905061299d565b600082840290508284828161294157fe5b0414612998576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612f536021913960400191505060405180910390fd5b809150505b92915050565b60006129e583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612493565b905092915050565b505050565b60008083118290612a9e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612a63578082015181840152602081019050612a48565b50505050905090810190601f168015612a905780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612aaa57fe5b049050809150509392505050565b6060600267ffffffffffffffff81118015612ad257600080fd5b50604051908082528060200260200182016040528015612b015781602001602082028036833780820191505090505b5090503081600081518110612b1257fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612bb457600080fd5b505afa158015612bc8573d6000803e3d6000fd5b505050506040513d6020811015612bde57600080fd5b810190808051906020019092919050505081600181518110612bfc57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c6330600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611879565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015612d27578082015181840152602081019050612d0c565b505050509050019650505050505050600060405180830381600087803b158015612d5057600080fd5b505af1158015612d64573d6000803e3d6000fd5b505050505050565b612d9930600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611879565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080612de5611395565b426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015612e6a57600080fd5b505af1158015612e7e573d6000803e3d6000fd5b50505050506040513d6060811015612e9557600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636554726164696e67206973206e6f742079657420656e61626c65642e2042652070617469656e742145524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373546f206f722046726f6d206164647265737320697320626c61636b6c69737465642e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ef3d087d2f0d5e6a713d7832851cc5ef57fcec8f403b1104da42f02bb740e1ee64736f6c634300060c0033

Deployed Bytecode Sourcemap

23027:5428:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14423:100;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16590:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;28268:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;27753:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23365:41;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15543:108;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23514:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17241:355;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15385:93;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23318:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18005:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;28164:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23413:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;28050:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15714:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2136:148;;;;;;;;;;;;;:::i;:::-;;27881:161;;;;;;;;;;;;;:::i;:::-;;28362:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1926:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14642:104;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18726:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16054:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16292:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23252:57;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2290:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14423:100;14477:13;14510:5;14503:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14423:100;:::o;16590:169::-;16673:4;16690:39;16699:12;:10;:12::i;:::-;16713:7;16722:6;16690:8;:39::i;:::-;16747:4;16740:11;;16590:169;;;;:::o;28268:86::-;2061:12;:10;:12::i;:::-;2051:22;;:6;;;;;;;;;;;:22;;;2043:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28341:5:::1;28332:6;:14;;;;28268:86:::0;:::o;27753:120::-;2061:12;:10;:12::i;:::-;2051:22;;:6;;;;;;;;;;;:22;;;2043:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27860:5:::1;27834:14;:23;27849:7;27834:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;27753:120:::0;;:::o;23365:41::-;;;;;;;;;;;;;:::o;15543:108::-;15604:7;15631:12;;15624:19;;15543:108;:::o;23514:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;17241:355::-;17381:4;17398:36;17408:6;17416:9;17427:6;17398:9;:36::i;:::-;17445:121;17454:6;17462:12;:10;:12::i;:::-;17476:89;17514:6;17476:89;;;;;;;;;;;;;;;;;:11;:19;17488:6;17476:19;;;;;;;;;;;;;;;:33;17496:12;:10;:12::i;:::-;17476:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17445:8;:121::i;:::-;17584:4;17577:11;;17241:355;;;;;:::o;15385:93::-;15443:5;15468:2;15461:9;;15385:93;:::o;23318:38::-;;;;:::o;18005:218::-;18093:4;18110:83;18119:12;:10;:12::i;:::-;18133:7;18142:50;18181:10;18142:11;:25;18154:12;:10;:12::i;:::-;18142:25;;;;;;;;;;;;;;;:34;18168:7;18142:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18110:8;:83::i;:::-;18211:4;18204:11;;18005:218;;;;:::o;28164:96::-;2061:12;:10;:12::i;:::-;2051:22;;:6;;;;;;;;;;;:22;;;2043:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28246:6:::1;28233:10;:19;;;;28164:96:::0;:::o;23413:38::-;;;:::o;28050:106::-;2061:12;:10;:12::i;:::-;2051:22;;:6;;;;;;;;;;;:22;;;2043:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28142:6:::1;28121:18;:27;;;;28050:106:::0;:::o;15714:127::-;15788:7;15815:9;:18;15825:7;15815:18;;;;;;;;;;;;;;;;15808:25;;15714:127;;;:::o;2136:148::-;2061:12;:10;:12::i;:::-;2051:22;;:6;;;;;;;;;;;:22;;;2043:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2243:1:::1;2206:40;;2227:6;;;;;;;;;;;2206:40;;;;;;;;;;;;2274:1;2257:6;;:19;;;;;;;;;;;;;;;;;;2136:148::o:0;27881:161::-;2061:12;:10;:12::i;:::-;2051:22;;:6;;;;;;;;;;;:22;;;2043:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27945:16:::1;;;;;;;;;;;27944:17;27936:26;;;::::0;::::1;;27992:4;27973:16;;:23;;;;;;;;;;;;;;;;;;28019:15;28007:9;:27;;;;27881:161::o:0;28362:88::-;2061:12;:10;:12::i;:::-;2051:22;;:6;;;;;;;;;;;:22;;;2043:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28437:5:::1;28427:7;:15;;;;28362:88:::0;:::o;1926:79::-;1964:7;1991:6;;;;;;;;;;;1984:13;;1926:79;:::o;14642:104::-;14698:13;14731:7;14724:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14642:104;:::o;18726:269::-;18819:4;18836:129;18845:12;:10;:12::i;:::-;18859:7;18868:96;18907:15;18868:96;;;;;;;;;;;;;;;;;:11;:25;18880:12;:10;:12::i;:::-;18868:25;;;;;;;;;;;;;;;:34;18894:7;18868:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18836:8;:129::i;:::-;18983:4;18976:11;;18726:269;;;;:::o;16054:175::-;16140:4;16157:42;16167:12;:10;:12::i;:::-;16181:9;16192:6;16157:9;:42::i;:::-;16217:4;16210:11;;16054:175;;;;:::o;16292:151::-;16381:7;16408:11;:18;16420:5;16408:18;;;;;;;;;;;;;;;:27;16427:7;16408:27;;;;;;;;;;;;;;;;16401:34;;16292:151;;;;:::o;23252:57::-;;;;:::o;2290:244::-;2061:12;:10;:12::i;:::-;2051:22;;:6;;;;;;;;;;;:22;;;2043:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2399:1:::1;2379:22;;:8;:22;;;;2371:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2489:8;2460:38;;2481:6;;;;;;;;;;;2460:38;;;;;;;;;;;;2518:8;2509:6;;:17;;;;;;;;;;;;;;;;;;2290:244:::0;:::o;50:181::-;108:7;128:9;144:1;140;:5;128:17;;169:1;164;:6;;156:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;222:1;215:8;;;50:181;;;;:::o;1502:98::-;1555:7;1582:10;1575:17;;1502:98;:::o;21912:380::-;22065:1;22048:19;;:5;:19;;;;22040:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22146:1;22127:21;;:7;:21;;;;22119:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22230:6;22200:11;:18;22212:5;22200:18;;;;;;;;;;;;;;;:27;22219:7;22200:27;;;;;;;;;;;;;;;:36;;;;22268:7;22252:32;;22261:5;22252:32;;;22277:6;22252:32;;;;;;;;;;;;;;;;;;21912:380;;;:::o;24256:2099::-;24389:14;:20;24404:4;24389:20;;;;;;;;;;;;;;;;;;;;;;;;;24388:21;:44;;;;;24414:14;:18;24429:2;24414:18;;;;;;;;;;;;;;;;;;;;;;;;;24413:19;24388:44;24380:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24489:16;;;;;;;;;;;24484:607;;24530:11;:15;24542:2;24530:15;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;24549:11;:17;24561:4;24549:17;;;;;;;;;;;;;;;;;;;;;;;;;24530:36;24522:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24484:607;;;24662:2;24650:9;;24632:15;:27;:32;:57;;;;;24676:13;24668:21;;:4;:21;;;24632:57;24628:463;;;24724:16;24714:6;:26;;24706:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24628:463;;;24790:13;24784:19;;:2;:19;;;24780:311;;;24820:21;24858:1;24844:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24820:40;;24893:4;24875;24880:1;24875:7;;;;;;;;;;;;;:23;;;;;;;;;;;24923:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24913:4;24918:1;24913:7;;;;;;;;;;;;;:32;;;;;;;;;;;24962:21;24986:15;;;;;;;;;;;:29;;;25016:6;25024:4;24986:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24962:67;;25068:10;;25054:7;25062:1;25054:10;;;;;;;;;;;;;;:24;;25046:33;;;;;;24780:311;;;24628:463;24484:607;25116:1;25106:6;:11;25103:92;;;25134:28;25150:4;25156:2;25160:1;25134:15;:28::i;:::-;25177:7;;25103:92;25205:28;25236:24;25254:4;25236:9;:24::i;:::-;25205:55;;25271:12;25310:18;;25286:20;:42;;25271:57;;25358:7;:33;;;;;25383:8;;;;;;;;;;;25382:9;25358:33;:71;;;;;25416:13;25408:21;;:4;:21;;;;25358:71;:103;;;;;25454:7;:5;:7::i;:::-;25446:15;;:4;:15;;;;25358:103;:133;;;;;25484:7;:5;:7::i;:::-;25478:13;;:2;:13;;;;25358:133;25341:456;;;25531:4;25520:8;;:15;;;;;;;;;;;;;;;;;;25552:18;25573:29;25598:3;25573:20;:24;;:29;;;;:::i;:::-;25552:50;;25617:26;25632:10;25617:14;:26::i;:::-;25660:18;25681:24;25699:4;25681:9;:24::i;:::-;25660:45;;25720:32;25741:10;25720:20;:32::i;:::-;25780:5;25769:8;;:16;;;;;;;;;;;;;;;;;;25341:456;;;25809:12;25825:8;;;;;;;;;;;25824:9;25809:24;;25849:11;:17;25861:4;25849:17;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;25870:11;:15;25882:2;25870:15;;;;;;;;;;;;;;;;;;;;;;;;;25849:36;25846:83;;;25912:5;25902:15;;25846:83;25944:7;25941:361;;;25968:12;26007:13;25999:21;;:4;:21;;;25995:199;;;26048:28;26071:4;26048:18;26059:6;;26048;:10;;:18;;;;:::i;:::-;:22;;:28;;;;:::i;:::-;26041:35;;25995:199;;;26108:13;26102:19;;:2;:19;;;26098:96;;;26149:29;26173:4;26149:19;26160:7;;26149:6;:10;;:19;;;;:::i;:::-;:23;;:29;;;;:::i;:::-;26142:36;;26098:96;25995:199;26217:16;26228:4;26217:6;:10;;:16;;;;:::i;:::-;26208:25;;26248:42;26264:4;26278;26285;26248:15;:42::i;:::-;25941:361;;26312:33;26328:4;26334:2;26338:6;26312:15;:33::i;:::-;24256:2099;;;;;;;:::o;379:192::-;465:7;498:1;493;:6;;501:12;485:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;525:9;541:1;537;:5;525:17;;562:1;555:8;;;379:192;;;;;:::o;19485:573::-;19643:1;19625:20;;:6;:20;;;;19617:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19727:1;19706:23;;:9;:23;;;;19698:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19782:47;19803:6;19811:9;19822:6;19782:20;:47::i;:::-;19862:71;19884:6;19862:71;;;;;;;;;;;;;;;;;:9;:17;19872:6;19862:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;19842:9;:17;19852:6;19842:17;;;;;;;;;;;;;;;:91;;;;19967:32;19992:6;19967:9;:20;19977:9;19967:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;19944:9;:20;19954:9;19944:20;;;;;;;;;;;;;;;:55;;;;20032:9;20015:35;;20024:6;20015:35;;;20043:6;20015:35;;;;;;;;;;;;;;;;;;19485:573;;;:::o;829:132::-;887:7;914:39;918:1;921;914:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;907:46;;829:132;;;;:::o;26363:351::-;26422:12;26437:13;26448:1;26437:6;:10;;:13;;;;:::i;:::-;26422:28;;26461:17;26481:16;26492:4;26481:6;:10;;:16;;;;:::i;:::-;26461:36;;26508:22;26533:21;26508:46;;26565:22;26582:4;26565:16;:22::i;:::-;26598:18;26619:41;26645:14;26619:21;:25;;:41;;;;:::i;:::-;26598:62;;26671:35;26684:9;26695:10;26671:12;:35::i;:::-;26363:351;;;;;:::o;27588:156::-;27653:24;27670:6;27653:16;:24::i;:::-;27696:7;:5;:7::i;:::-;27688:25;;:48;27714:21;27688:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27588:156;:::o;577:246::-;635:7;664:1;659;:6;655:47;;;689:1;682:8;;;;655:47;712:9;728:1;724;:5;712:17;;757:1;752;748;:5;;;;;;:10;740:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;814:1;807:8;;;577:246;;;;;:::o;237:136::-;295:7;322:43;326:1;329;322:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;315:50;;237:136;;;;:::o;22895:125::-;;;;:::o;967:189::-;1053:7;1085:1;1081;:5;1088:12;1073:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1112:9;1128:1;1124;:5;;;;;;1112:17;;1147:1;1140:8;;;967:189;;;;;:::o;26723:474::-;26789:21;26827:1;26813:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26789:40;;26858:4;26840;26845:1;26840:7;;;;;;;;;;;;;:23;;;;;;;;;;;26884:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26874:4;26879:1;26874:7;;;;;;;;;;;;;:32;;;;;;;;;;;26917:62;26934:4;26949:15;;;;;;;;;;;26967:11;26917:8;:62::i;:::-;26990:15;;;;;;;;;;;:66;;;27071:11;27097:1;27113:4;27140;27160:15;26990:196;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26723:474;;:::o;27206:374::-;27288:62;27305:4;27320:15;;;;;;;;;;;27338:11;27288:8;:62::i;:::-;27364:15;;;;;;;;;;;:31;;;27403:9;27437:4;27458:11;27485:1;27502;27519:7;:5;:7::i;:::-;27542:15;27364:205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27206:374;;:::o

Swarm Source

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