BNB Price: $615.34 (+3.04%)
 

Overview

Max Total Supply

30,000,000,000BAO

Holders

31,238

Market

Price

$0.00 @ 0.000000 BNB

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1 BAO

Value
$0.00
0xb9e9e795fd530314663f779f7f57950c6bc1eb4b
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
BAO

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at BscScan.com on 2025-03-13
*/

/**
 *Submitted for verification at BscScan.com on 2023-09-15
*/

/**
 *Submitted for verification at BscScan.com on 2022-03-09
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

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

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

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

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

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

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

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

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

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

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 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 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 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 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 Ownable is Context {
    address private _owner;

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

    constructor () {
        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;
    }
}

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) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

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

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_) {
        _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 _cast(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 BAO is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public constant uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
    address public immutable uniswapV2Pair;
    bool public isTradingEnabled;
    uint256 public constant tradingFee = 30; // 3%
    address public feeReceiver;
    uint256 public amountTradingFee;
    bool private swapping;
    uint256 public swapTokensAtAmount; 
    mapping (address => bool) private _isExcludedFromFees;

    constructor(
        string memory name_,
        string memory symbol_,
        uint256 totalSupply_,
        address feeReceiver_
    ) payable ERC20(name_, symbol_)  {
        uint256 totalSupply = totalSupply_ * (10**18);
        swapTokensAtAmount = totalSupply.mul(2).div(1e6); // 0.0002%;
        
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory())
            .createPair(address(this), uniswapV2Router.WETH());

        feeReceiver = feeReceiver_;

        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);

        _approve(address(this), address(uniswapV2Router),  ~uint256(0));
        _cast(owner(), totalSupply);
    }

    receive() external payable {}

    function openTrade() public onlyOwner {
        require(!isTradingEnabled);
        isTradingEnabled = true;
    }

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

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

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

    function setSwapTokensAtAmount(uint256 amount) public onlyOwner {
        swapTokensAtAmount = amount;
    }

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

        if(!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            require(isTradingEnabled, "Trade is not open yet");
        }

        if (!swapping && from != uniswapV2Pair && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]){
            if(balanceOf(from).sub(amount) < 1e18){
                amount = balanceOf(from).sub(1e18);
            }
        }

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

        if(balanceOf(address(this)) >= swapTokensAtAmount &&
            !swapping &&
            from != uniswapV2Pair &&
            from != owner() &&
            to != owner()
        ) {
            swapping = true;
            if(amountTradingFee > 0){
                swapTradingFee(amountTradingFee);
                amountTradingFee = 0;
            }
            swapping = false;
        }

        bool takeFee = !swapping;
        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }else if(from != uniswapV2Pair && to != uniswapV2Pair){
            takeFee = false;
        }

        if(takeFee) {
            uint256 feeAmt = amount.mul(tradingFee).div(1000);
            amountTradingFee = amountTradingFee.add(feeAmt);
            super._transfer(from, address(this),feeAmt);
            amount = amount.sub(feeAmt);
        }
        super._transfer(from, to, amount);
    }

    function swapTradingFee(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        uniswapV2Router.swapExactTokensForETH(
            tokenAmount,
            0,
            path,
            feeReceiver,
            block.timestamp
        );
    }
    
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"totalSupply_","type":"uint256"},{"internalType":"address","name":"feeReceiver_","type":"address"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountTradingFee","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","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":"feeReceiver_","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapTokensAtAmount","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":[],"name":"tradingFee","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"}]

60a060405260405161451b38038061451b83398181016040528101906100259190610bc1565b838381600390816100369190610e61565b5080600490816100469190610e61565b5050505f6100586103a560201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f670de0b6b3a76400008361010a9190610f5d565b9050610135620f42406101276002846103ac60201b90919060201c565b61042360201b90919060201c565b6009819055507310ed43c718714eb63d5aa57b78b54704e256024e73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610198573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bc9190610f9e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307310ed43c718714eb63d5aa57b78b54704e256024e73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610235573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102599190610f9e565b6040518363ffffffff1660e01b8152600401610276929190610fd8565b6020604051808303815f875af1158015610292573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102b69190610f9e565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061034761033a61047260201b60201c565b600161049a60201b60201c565b61035830600161049a60201b60201c565b61037e307310ed43c718714eb63d5aa57b78b54704e256024e5f196105cf60201b60201c565b61039b61038f61047260201b60201c565b8261079260201b60201c565b5050505050611401565b5f33905090565b5f8083036103bc575f905061041d565b5f82846103c99190610f5d565b90508284826103d8919061102c565b14610418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040f906110dc565b60405180910390fd5b809150505b92915050565b5f61046a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061092460201b60201c565b905092915050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6104a86103a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166104cc61047260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614610522576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051990611144565b60405180910390fd5b801515600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515146105cb5780600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361063d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610634906111d2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a290611260565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610785919061128d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f7906112f0565b60405180910390fd5b6108115f838361098560201b60201c565b6108268160025461098a60201b90919060201c565b60028190555061087b815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461098a60201b90919060201c565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610918919061128d565b60405180910390a35050565b5f808311829061096a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109619190611346565b60405180910390fd5b505f8385610978919061102c565b9050809150509392505050565b505050565b5f8082846109989190611366565b9050838110156109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d4906113e3565b60405180910390fd5b8091505092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610a4682610a00565b810181811067ffffffffffffffff82111715610a6557610a64610a10565b5b80604052505050565b5f610a776109e7565b9050610a838282610a3d565b919050565b5f67ffffffffffffffff821115610aa257610aa1610a10565b5b610aab82610a00565b9050602081019050919050565b8281835e5f83830152505050565b5f610ad8610ad384610a88565b610a6e565b905082815260208101848484011115610af457610af36109fc565b5b610aff848285610ab8565b509392505050565b5f82601f830112610b1b57610b1a6109f8565b5b8151610b2b848260208601610ac6565b91505092915050565b5f819050919050565b610b4681610b34565b8114610b50575f80fd5b50565b5f81519050610b6181610b3d565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b9082610b67565b9050919050565b610ba081610b86565b8114610baa575f80fd5b50565b5f81519050610bbb81610b97565b92915050565b5f805f8060808587031215610bd957610bd86109f0565b5b5f85015167ffffffffffffffff811115610bf657610bf56109f4565b5b610c0287828801610b07565b945050602085015167ffffffffffffffff811115610c2357610c226109f4565b5b610c2f87828801610b07565b9350506040610c4087828801610b53565b9250506060610c5187828801610bad565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610cab57607f821691505b602082108103610cbe57610cbd610c67565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610d207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610ce5565b610d2a8683610ce5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f610d65610d60610d5b84610b34565b610d42565b610b34565b9050919050565b5f819050919050565b610d7e83610d4b565b610d92610d8a82610d6c565b848454610cf1565b825550505050565b5f90565b610da6610d9a565b610db1818484610d75565b505050565b5b81811015610dd457610dc95f82610d9e565b600181019050610db7565b5050565b601f821115610e1957610dea81610cc4565b610df384610cd6565b81016020851015610e02578190505b610e16610e0e85610cd6565b830182610db6565b50505b505050565b5f82821c905092915050565b5f610e395f1984600802610e1e565b1980831691505092915050565b5f610e518383610e2a565b9150826002028217905092915050565b610e6a82610c5d565b67ffffffffffffffff811115610e8357610e82610a10565b5b610e8d8254610c94565b610e98828285610dd8565b5f60209050601f831160018114610ec9575f8415610eb7578287015190505b610ec18582610e46565b865550610f28565b601f198416610ed786610cc4565b5f5b82811015610efe57848901518255600182019150602085019450602081019050610ed9565b86831015610f1b5784890151610f17601f891682610e2a565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610f6782610b34565b9150610f7283610b34565b9250828202610f8081610b34565b91508282048414831517610f9757610f96610f30565b5b5092915050565b5f60208284031215610fb357610fb26109f0565b5b5f610fc084828501610bad565b91505092915050565b610fd281610b86565b82525050565b5f604082019050610feb5f830185610fc9565b610ff86020830184610fc9565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61103682610b34565b915061104183610b34565b92508261105157611050610fff565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6110c660218361105c565b91506110d18261106c565b604082019050919050565b5f6020820190508181035f8301526110f3816110ba565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61112e60208361105c565b9150611139826110fa565b602082019050919050565b5f6020820190508181035f83015261115b81611122565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6111bc60248361105c565b91506111c782611162565b604082019050919050565b5f6020820190508181035f8301526111e9816111b0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61124a60228361105c565b9150611255826111f0565b604082019050919050565b5f6020820190508181035f8301526112778161123e565b9050919050565b61128781610b34565b82525050565b5f6020820190506112a05f83018461127e565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f6112da601f8361105c565b91506112e5826112a6565b602082019050919050565b5f6020820190508181035f830152611307816112ce565b9050919050565b5f61131882610c5d565b611322818561105c565b9350611332818560208601610ab8565b61133b81610a00565b840191505092915050565b5f6020820190508181035f83015261135e818461130e565b905092915050565b5f61137082610b34565b915061137b83610b34565b925082820190508082111561139357611392610f30565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6113cd601b8361105c565b91506113d882611399565b602082019050919050565b5f6020820190508181035f8301526113fa816113c1565b9050919050565b6080516130e66114355f395f81816108e3015281816116bb0152818161184c01528181611a2c0152611a8301526130e65ff3fe60806040526004361061019f575f3560e01c80638da5cb5b116100eb578063c024666811610089578063e2f4560511610063578063e2f45605146105e6578063efdcd97414610610578063f2fde38b14610638578063fb201b1d14610660576101a6565b8063c02466681461055a578063c492f04614610582578063dd62ed3e146105aa576101a6565b8063a9059cbb116100c5578063a9059cbb146104a2578063afa4f3b2146104de578063b3f0067414610506578063b590a06414610530576101a6565b80638da5cb5b1461041257806395d89b411461043c578063a457c2d714610466576101a6565b8063313ce567116101585780634fbee193116101325780634fbee1931461035a57806356f433521461039657806370a08231146103c0578063715018a6146103fc576101a6565b8063313ce567146102ca57806339509351146102f457806349bd5a5e14610330576101a6565b8063064a59d0146101aa57806306fdde03146101d4578063095ea7b3146101fe5780631694505e1461023a57806318160ddd1461026457806323b872dd1461028e576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610676565b6040516101cb9190612255565b60405180910390f35b3480156101df575f80fd5b506101e8610689565b6040516101f591906122de565b60405180910390f35b348015610209575f80fd5b50610224600480360381019061021f919061239c565b610719565b6040516102319190612255565b60405180910390f35b348015610245575f80fd5b5061024e610736565b60405161025b9190612435565b60405180910390f35b34801561026f575f80fd5b5061027861074e565b604051610285919061245d565b60405180910390f35b348015610299575f80fd5b506102b460048036038101906102af9190612476565b610757565b6040516102c19190612255565b60405180910390f35b3480156102d5575f80fd5b506102de61082b565b6040516102eb91906124e1565b60405180910390f35b3480156102ff575f80fd5b5061031a6004803603810190610315919061239c565b610833565b6040516103279190612255565b60405180910390f35b34801561033b575f80fd5b506103446108e1565b6040516103519190612509565b60405180910390f35b348015610365575f80fd5b50610380600480360381019061037b9190612522565b610905565b60405161038d9190612255565b60405180910390f35b3480156103a1575f80fd5b506103aa610957565b6040516103b7919061245d565b60405180910390f35b3480156103cb575f80fd5b506103e660048036038101906103e19190612522565b61095c565b6040516103f3919061245d565b60405180910390f35b348015610407575f80fd5b506104106109a1565b005b34801561041d575f80fd5b50610426610ada565b6040516104339190612509565b60405180910390f35b348015610447575f80fd5b50610450610b02565b60405161045d91906122de565b60405180910390f35b348015610471575f80fd5b5061048c6004803603810190610487919061239c565b610b92565b6040516104999190612255565b60405180910390f35b3480156104ad575f80fd5b506104c860048036038101906104c3919061239c565b610c5a565b6040516104d59190612255565b60405180910390f35b3480156104e9575f80fd5b5061050460048036038101906104ff919061254d565b610c77565b005b348015610511575f80fd5b5061051a610cfd565b6040516105279190612509565b60405180910390f35b34801561053b575f80fd5b50610544610d22565b604051610551919061245d565b60405180910390f35b348015610565575f80fd5b50610580600480360381019061057b91906125a2565b610d28565b005b34801561058d575f80fd5b506105a860048036038101906105a39190612641565b610e51565b005b3480156105b5575f80fd5b506105d060048036038101906105cb919061269e565b610f68565b6040516105dd919061245d565b60405180910390f35b3480156105f1575f80fd5b506105fa610fea565b604051610607919061245d565b60405180910390f35b34801561061b575f80fd5b5061063660048036038101906106319190612522565b610ff0565b005b348015610643575f80fd5b5061065e60048036038101906106599190612522565b6110af565b005b34801561066b575f80fd5b50610674611257565b005b600560149054906101000a900460ff1681565b60606003805461069890612709565b80601f01602080910402602001604051908101604052809291908181526020018280546106c490612709565b801561070f5780601f106106e65761010080835404028352916020019161070f565b820191905f5260205f20905b8154815290600101906020018083116106f257829003601f168201915b5050505050905090565b5f61072c610725611309565b8484611310565b6001905092915050565b7310ed43c718714eb63d5aa57b78b54704e256024e81565b5f600254905090565b5f6107638484846114d3565b6108208461076f611309565b61081b856040518060600160405280602881526020016130646028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107d2611309565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b5c9092919063ffffffff16565b611310565b600190509392505050565b5f6012905090565b5f6108d761083f611309565b846108d28560015f61084f611309565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bbe90919063ffffffff16565b611310565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b601e81565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109a9611309565b73ffffffffffffffffffffffffffffffffffffffff166109c7610ada565b73ffffffffffffffffffffffffffffffffffffffff1614610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1490612783565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b1190612709565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3d90612709565b8015610b885780601f10610b5f57610100808354040283529160200191610b88565b820191905f5260205f20905b815481529060010190602001808311610b6b57829003601f168201915b5050505050905090565b5f610c50610b9e611309565b84610c4b8560405180606001604052806025815260200161308c6025913960015f610bc7611309565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b5c9092919063ffffffff16565b611310565b6001905092915050565b5f610c6d610c66611309565b84846114d3565b6001905092915050565b610c7f611309565b73ffffffffffffffffffffffffffffffffffffffff16610c9d610ada565b73ffffffffffffffffffffffffffffffffffffffff1614610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea90612783565b60405180910390fd5b8060098190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b610d30611309565b73ffffffffffffffffffffffffffffffffffffffff16610d4e610ada565b73ffffffffffffffffffffffffffffffffffffffff1614610da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9b90612783565b60405180910390fd5b801515600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151514610e4d5780600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5050565b610e59611309565b73ffffffffffffffffffffffffffffffffffffffff16610e77610ada565b73ffffffffffffffffffffffffffffffffffffffff1614610ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec490612783565b60405180910390fd5b5f5b83839050811015610f625781600a5f868685818110610ef157610ef06127a1565b5b9050602002016020810190610f069190612522565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610ecf565b50505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60095481565b610ff8611309565b73ffffffffffffffffffffffffffffffffffffffff16611016610ada565b73ffffffffffffffffffffffffffffffffffffffff161461106c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106390612783565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6110b7611309565b73ffffffffffffffffffffffffffffffffffffffff166110d5610ada565b73ffffffffffffffffffffffffffffffffffffffff161461112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290612783565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611199576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111909061283e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61125f611309565b73ffffffffffffffffffffffffffffffffffffffff1661127d610ada565b73ffffffffffffffffffffffffffffffffffffffff16146112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ca90612783565b60405180910390fd5b600560149054906101000a900460ff16156112ec575f80fd5b6001600560146101000a81548160ff021916908315150217905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361137e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611375906128cc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e39061295a565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114c6919061245d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611541576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611538906129e8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a690612a76565b60405180910390fd5b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561164d5750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116a257600560149054906101000a900460ff166116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169890612ade565b60405180910390fd5b5b60085f9054906101000a900460ff1615801561170a57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561175d5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156117b05750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561180657670de0b6b3a76400006117d9826117cb8661095c565b611c1b90919063ffffffff16565b101561180557611802670de0b6b3a76400006117f48561095c565b611c1b90919063ffffffff16565b90505b5b5f810361181d5761181883835f611c64565b611b57565b6009546118293061095c565b10158015611843575060085f9054906101000a900460ff16155b801561189b57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118da57506118aa610ada565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561191957506118e9610ada565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561196f57600160085f6101000a81548160ff0219169083151502179055505f60075411156119555761194d600754611eed565b5f6007819055505b5f60085f6101000a81548160ff0219169083151502179055505b5f60085f9054906101000a900460ff16159050600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611a1d5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611a2a575f9050611adc565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ad257507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611adb575f90505b5b8015611b4a575f611b0b6103e8611afd601e8661211590919063ffffffff16565b61218c90919063ffffffff16565b9050611b2281600754611bbe90919063ffffffff16565b600781905550611b33853083611c64565b611b468184611c1b90919063ffffffff16565b9250505b611b55848484611c64565b505b505050565b5f838311158290611ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9a91906122de565b60405180910390fd5b505f8385611bb19190612b29565b9050809150509392505050565b5f808284611bcc9190612b5c565b905083811015611c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0890612bd9565b60405180910390fd5b8091505092915050565b5f611c5c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b5c565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc9906129e8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3790612a76565b60405180910390fd5b611d4b8383836121d5565b611db48160405180606001604052806026815260200161303e602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b5c9092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e43815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bbe90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ee0919061245d565b60405180910390a3505050565b5f600267ffffffffffffffff811115611f0957611f08612bf7565b5b604051908082528060200260200182016040528015611f375781602001602082028036833780820191505090505b50905030815f81518110611f4e57611f4d6127a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507310ed43c718714eb63d5aa57b78b54704e256024e73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fe5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120099190612c38565b8160018151811061201d5761201c6127a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507310ed43c718714eb63d5aa57b78b54704e256024e73ffffffffffffffffffffffffffffffffffffffff166318cbafe5835f8460065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016120cd959493929190612d53565b5f604051808303815f875af11580156120e8573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906121109190612eca565b505050565b5f808303612125575f9050612186565b5f82846121329190612f11565b90508284826121419190612f7f565b14612181576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121789061301f565b60405180910390fd5b809150505b92915050565b5f6121cd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121da565b905092915050565b505050565b5f8083118290612220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221791906122de565b60405180910390fd5b505f838561222e9190612f7f565b9050809150509392505050565b5f8115159050919050565b61224f8161223b565b82525050565b5f6020820190506122685f830184612246565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6122b08261226e565b6122ba8185612278565b93506122ca818560208601612288565b6122d381612296565b840191505092915050565b5f6020820190508181035f8301526122f681846122a6565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123388261230f565b9050919050565b6123488161232e565b8114612352575f80fd5b50565b5f813590506123638161233f565b92915050565b5f819050919050565b61237b81612369565b8114612385575f80fd5b50565b5f8135905061239681612372565b92915050565b5f80604083850312156123b2576123b1612307565b5b5f6123bf85828601612355565b92505060206123d085828601612388565b9150509250929050565b5f819050919050565b5f6123fd6123f86123f38461230f565b6123da565b61230f565b9050919050565b5f61240e826123e3565b9050919050565b5f61241f82612404565b9050919050565b61242f81612415565b82525050565b5f6020820190506124485f830184612426565b92915050565b61245781612369565b82525050565b5f6020820190506124705f83018461244e565b92915050565b5f805f6060848603121561248d5761248c612307565b5b5f61249a86828701612355565b93505060206124ab86828701612355565b92505060406124bc86828701612388565b9150509250925092565b5f60ff82169050919050565b6124db816124c6565b82525050565b5f6020820190506124f45f8301846124d2565b92915050565b6125038161232e565b82525050565b5f60208201905061251c5f8301846124fa565b92915050565b5f6020828403121561253757612536612307565b5b5f61254484828501612355565b91505092915050565b5f6020828403121561256257612561612307565b5b5f61256f84828501612388565b91505092915050565b6125818161223b565b811461258b575f80fd5b50565b5f8135905061259c81612578565b92915050565b5f80604083850312156125b8576125b7612307565b5b5f6125c585828601612355565b92505060206125d68582860161258e565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112612601576126006125e0565b5b8235905067ffffffffffffffff81111561261e5761261d6125e4565b5b60208301915083602082028301111561263a576126396125e8565b5b9250929050565b5f805f6040848603121561265857612657612307565b5b5f84013567ffffffffffffffff8111156126755761267461230b565b5b612681868287016125ec565b935093505060206126948682870161258e565b9150509250925092565b5f80604083850312156126b4576126b3612307565b5b5f6126c185828601612355565b92505060206126d285828601612355565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061272057607f821691505b602082108103612733576127326126dc565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61276d602083612278565b915061277882612739565b602082019050919050565b5f6020820190508181035f83015261279a81612761565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612828602683612278565b9150612833826127ce565b604082019050919050565b5f6020820190508181035f8301526128558161281c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6128b6602483612278565b91506128c18261285c565b604082019050919050565b5f6020820190508181035f8301526128e3816128aa565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612944602283612278565b915061294f826128ea565b604082019050919050565b5f6020820190508181035f83015261297181612938565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6129d2602583612278565b91506129dd82612978565b604082019050919050565b5f6020820190508181035f8301526129ff816129c6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a60602383612278565b9150612a6b82612a06565b604082019050919050565b5f6020820190508181035f830152612a8d81612a54565b9050919050565b7f5472616465206973206e6f74206f70656e2079657400000000000000000000005f82015250565b5f612ac8601583612278565b9150612ad382612a94565b602082019050919050565b5f6020820190508181035f830152612af581612abc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612b3382612369565b9150612b3e83612369565b9250828203905081811115612b5657612b55612afc565b5b92915050565b5f612b6682612369565b9150612b7183612369565b9250828201905080821115612b8957612b88612afc565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612bc3601b83612278565b9150612bce82612b8f565b602082019050919050565b5f6020820190508181035f830152612bf081612bb7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050612c328161233f565b92915050565b5f60208284031215612c4d57612c4c612307565b5b5f612c5a84828501612c24565b91505092915050565b5f819050919050565b5f612c86612c81612c7c84612c63565b6123da565b612369565b9050919050565b612c9681612c6c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612cce8161232e565b82525050565b5f612cdf8383612cc5565b60208301905092915050565b5f602082019050919050565b5f612d0182612c9c565b612d0b8185612ca6565b9350612d1683612cb6565b805f5b83811015612d46578151612d2d8882612cd4565b9750612d3883612ceb565b925050600181019050612d19565b5085935050505092915050565b5f60a082019050612d665f83018861244e565b612d736020830187612c8d565b8181036040830152612d858186612cf7565b9050612d9460608301856124fa565b612da1608083018461244e565b9695505050505050565b612db482612296565b810181811067ffffffffffffffff82111715612dd357612dd2612bf7565b5b80604052505050565b5f612de56122fe565b9050612df18282612dab565b919050565b5f67ffffffffffffffff821115612e1057612e0f612bf7565b5b602082029050602081019050919050565b5f81519050612e2f81612372565b92915050565b5f612e47612e4284612df6565b612ddc565b90508083825260208201905060208402830185811115612e6a57612e696125e8565b5b835b81811015612e935780612e7f8882612e21565b845260208401935050602081019050612e6c565b5050509392505050565b5f82601f830112612eb157612eb06125e0565b5b8151612ec1848260208601612e35565b91505092915050565b5f60208284031215612edf57612ede612307565b5b5f82015167ffffffffffffffff811115612efc57612efb61230b565b5b612f0884828501612e9d565b91505092915050565b5f612f1b82612369565b9150612f2683612369565b9250828202612f3481612369565b91508282048414831517612f4b57612f4a612afc565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f8982612369565b9150612f9483612369565b925082612fa457612fa3612f52565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613009602183612278565b915061301482612faf565b604082019050919050565b5f6020820190508181035f83015261303681612ffd565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122068537e2f0d9199d08f1a1cbae3b3005261e3fbe3223bf3f69fb289f5b8adcca364736f6c634300081a0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000006fc23ac00000000000000000000000000e5330c5b4777b395fd7c6d35bba7bea5b30ce875000000000000000000000000000000000000000000000000000000000000000342414f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000342414f0000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061019f575f3560e01c80638da5cb5b116100eb578063c024666811610089578063e2f4560511610063578063e2f45605146105e6578063efdcd97414610610578063f2fde38b14610638578063fb201b1d14610660576101a6565b8063c02466681461055a578063c492f04614610582578063dd62ed3e146105aa576101a6565b8063a9059cbb116100c5578063a9059cbb146104a2578063afa4f3b2146104de578063b3f0067414610506578063b590a06414610530576101a6565b80638da5cb5b1461041257806395d89b411461043c578063a457c2d714610466576101a6565b8063313ce567116101585780634fbee193116101325780634fbee1931461035a57806356f433521461039657806370a08231146103c0578063715018a6146103fc576101a6565b8063313ce567146102ca57806339509351146102f457806349bd5a5e14610330576101a6565b8063064a59d0146101aa57806306fdde03146101d4578063095ea7b3146101fe5780631694505e1461023a57806318160ddd1461026457806323b872dd1461028e576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610676565b6040516101cb9190612255565b60405180910390f35b3480156101df575f80fd5b506101e8610689565b6040516101f591906122de565b60405180910390f35b348015610209575f80fd5b50610224600480360381019061021f919061239c565b610719565b6040516102319190612255565b60405180910390f35b348015610245575f80fd5b5061024e610736565b60405161025b9190612435565b60405180910390f35b34801561026f575f80fd5b5061027861074e565b604051610285919061245d565b60405180910390f35b348015610299575f80fd5b506102b460048036038101906102af9190612476565b610757565b6040516102c19190612255565b60405180910390f35b3480156102d5575f80fd5b506102de61082b565b6040516102eb91906124e1565b60405180910390f35b3480156102ff575f80fd5b5061031a6004803603810190610315919061239c565b610833565b6040516103279190612255565b60405180910390f35b34801561033b575f80fd5b506103446108e1565b6040516103519190612509565b60405180910390f35b348015610365575f80fd5b50610380600480360381019061037b9190612522565b610905565b60405161038d9190612255565b60405180910390f35b3480156103a1575f80fd5b506103aa610957565b6040516103b7919061245d565b60405180910390f35b3480156103cb575f80fd5b506103e660048036038101906103e19190612522565b61095c565b6040516103f3919061245d565b60405180910390f35b348015610407575f80fd5b506104106109a1565b005b34801561041d575f80fd5b50610426610ada565b6040516104339190612509565b60405180910390f35b348015610447575f80fd5b50610450610b02565b60405161045d91906122de565b60405180910390f35b348015610471575f80fd5b5061048c6004803603810190610487919061239c565b610b92565b6040516104999190612255565b60405180910390f35b3480156104ad575f80fd5b506104c860048036038101906104c3919061239c565b610c5a565b6040516104d59190612255565b60405180910390f35b3480156104e9575f80fd5b5061050460048036038101906104ff919061254d565b610c77565b005b348015610511575f80fd5b5061051a610cfd565b6040516105279190612509565b60405180910390f35b34801561053b575f80fd5b50610544610d22565b604051610551919061245d565b60405180910390f35b348015610565575f80fd5b50610580600480360381019061057b91906125a2565b610d28565b005b34801561058d575f80fd5b506105a860048036038101906105a39190612641565b610e51565b005b3480156105b5575f80fd5b506105d060048036038101906105cb919061269e565b610f68565b6040516105dd919061245d565b60405180910390f35b3480156105f1575f80fd5b506105fa610fea565b604051610607919061245d565b60405180910390f35b34801561061b575f80fd5b5061063660048036038101906106319190612522565b610ff0565b005b348015610643575f80fd5b5061065e60048036038101906106599190612522565b6110af565b005b34801561066b575f80fd5b50610674611257565b005b600560149054906101000a900460ff1681565b60606003805461069890612709565b80601f01602080910402602001604051908101604052809291908181526020018280546106c490612709565b801561070f5780601f106106e65761010080835404028352916020019161070f565b820191905f5260205f20905b8154815290600101906020018083116106f257829003601f168201915b5050505050905090565b5f61072c610725611309565b8484611310565b6001905092915050565b7310ed43c718714eb63d5aa57b78b54704e256024e81565b5f600254905090565b5f6107638484846114d3565b6108208461076f611309565b61081b856040518060600160405280602881526020016130646028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107d2611309565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b5c9092919063ffffffff16565b611310565b600190509392505050565b5f6012905090565b5f6108d761083f611309565b846108d28560015f61084f611309565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bbe90919063ffffffff16565b611310565b6001905092915050565b7f0000000000000000000000006f30278c64a4881843b55e92a8defdf2ff1205f581565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b601e81565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109a9611309565b73ffffffffffffffffffffffffffffffffffffffff166109c7610ada565b73ffffffffffffffffffffffffffffffffffffffff1614610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1490612783565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b1190612709565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3d90612709565b8015610b885780601f10610b5f57610100808354040283529160200191610b88565b820191905f5260205f20905b815481529060010190602001808311610b6b57829003601f168201915b5050505050905090565b5f610c50610b9e611309565b84610c4b8560405180606001604052806025815260200161308c6025913960015f610bc7611309565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b5c9092919063ffffffff16565b611310565b6001905092915050565b5f610c6d610c66611309565b84846114d3565b6001905092915050565b610c7f611309565b73ffffffffffffffffffffffffffffffffffffffff16610c9d610ada565b73ffffffffffffffffffffffffffffffffffffffff1614610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea90612783565b60405180910390fd5b8060098190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b610d30611309565b73ffffffffffffffffffffffffffffffffffffffff16610d4e610ada565b73ffffffffffffffffffffffffffffffffffffffff1614610da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9b90612783565b60405180910390fd5b801515600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151514610e4d5780600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5050565b610e59611309565b73ffffffffffffffffffffffffffffffffffffffff16610e77610ada565b73ffffffffffffffffffffffffffffffffffffffff1614610ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec490612783565b60405180910390fd5b5f5b83839050811015610f625781600a5f868685818110610ef157610ef06127a1565b5b9050602002016020810190610f069190612522565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610ecf565b50505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60095481565b610ff8611309565b73ffffffffffffffffffffffffffffffffffffffff16611016610ada565b73ffffffffffffffffffffffffffffffffffffffff161461106c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106390612783565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6110b7611309565b73ffffffffffffffffffffffffffffffffffffffff166110d5610ada565b73ffffffffffffffffffffffffffffffffffffffff161461112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290612783565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611199576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111909061283e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61125f611309565b73ffffffffffffffffffffffffffffffffffffffff1661127d610ada565b73ffffffffffffffffffffffffffffffffffffffff16146112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ca90612783565b60405180910390fd5b600560149054906101000a900460ff16156112ec575f80fd5b6001600560146101000a81548160ff021916908315150217905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361137e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611375906128cc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e39061295a565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114c6919061245d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611541576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611538906129e8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a690612a76565b60405180910390fd5b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561164d5750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116a257600560149054906101000a900460ff166116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169890612ade565b60405180910390fd5b5b60085f9054906101000a900460ff1615801561170a57507f0000000000000000000000006f30278c64a4881843b55e92a8defdf2ff1205f573ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561175d5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156117b05750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561180657670de0b6b3a76400006117d9826117cb8661095c565b611c1b90919063ffffffff16565b101561180557611802670de0b6b3a76400006117f48561095c565b611c1b90919063ffffffff16565b90505b5b5f810361181d5761181883835f611c64565b611b57565b6009546118293061095c565b10158015611843575060085f9054906101000a900460ff16155b801561189b57507f0000000000000000000000006f30278c64a4881843b55e92a8defdf2ff1205f573ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118da57506118aa610ada565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561191957506118e9610ada565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561196f57600160085f6101000a81548160ff0219169083151502179055505f60075411156119555761194d600754611eed565b5f6007819055505b5f60085f6101000a81548160ff0219169083151502179055505b5f60085f9054906101000a900460ff16159050600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611a1d5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611a2a575f9050611adc565b7f0000000000000000000000006f30278c64a4881843b55e92a8defdf2ff1205f573ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ad257507f0000000000000000000000006f30278c64a4881843b55e92a8defdf2ff1205f573ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611adb575f90505b5b8015611b4a575f611b0b6103e8611afd601e8661211590919063ffffffff16565b61218c90919063ffffffff16565b9050611b2281600754611bbe90919063ffffffff16565b600781905550611b33853083611c64565b611b468184611c1b90919063ffffffff16565b9250505b611b55848484611c64565b505b505050565b5f838311158290611ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9a91906122de565b60405180910390fd5b505f8385611bb19190612b29565b9050809150509392505050565b5f808284611bcc9190612b5c565b905083811015611c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0890612bd9565b60405180910390fd5b8091505092915050565b5f611c5c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b5c565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc9906129e8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3790612a76565b60405180910390fd5b611d4b8383836121d5565b611db48160405180606001604052806026815260200161303e602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b5c9092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e43815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bbe90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ee0919061245d565b60405180910390a3505050565b5f600267ffffffffffffffff811115611f0957611f08612bf7565b5b604051908082528060200260200182016040528015611f375781602001602082028036833780820191505090505b50905030815f81518110611f4e57611f4d6127a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507310ed43c718714eb63d5aa57b78b54704e256024e73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fe5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120099190612c38565b8160018151811061201d5761201c6127a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507310ed43c718714eb63d5aa57b78b54704e256024e73ffffffffffffffffffffffffffffffffffffffff166318cbafe5835f8460065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016120cd959493929190612d53565b5f604051808303815f875af11580156120e8573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906121109190612eca565b505050565b5f808303612125575f9050612186565b5f82846121329190612f11565b90508284826121419190612f7f565b14612181576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121789061301f565b60405180910390fd5b809150505b92915050565b5f6121cd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121da565b905092915050565b505050565b5f8083118290612220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221791906122de565b60405180910390fd5b505f838561222e9190612f7f565b9050809150509392505050565b5f8115159050919050565b61224f8161223b565b82525050565b5f6020820190506122685f830184612246565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6122b08261226e565b6122ba8185612278565b93506122ca818560208601612288565b6122d381612296565b840191505092915050565b5f6020820190508181035f8301526122f681846122a6565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123388261230f565b9050919050565b6123488161232e565b8114612352575f80fd5b50565b5f813590506123638161233f565b92915050565b5f819050919050565b61237b81612369565b8114612385575f80fd5b50565b5f8135905061239681612372565b92915050565b5f80604083850312156123b2576123b1612307565b5b5f6123bf85828601612355565b92505060206123d085828601612388565b9150509250929050565b5f819050919050565b5f6123fd6123f86123f38461230f565b6123da565b61230f565b9050919050565b5f61240e826123e3565b9050919050565b5f61241f82612404565b9050919050565b61242f81612415565b82525050565b5f6020820190506124485f830184612426565b92915050565b61245781612369565b82525050565b5f6020820190506124705f83018461244e565b92915050565b5f805f6060848603121561248d5761248c612307565b5b5f61249a86828701612355565b93505060206124ab86828701612355565b92505060406124bc86828701612388565b9150509250925092565b5f60ff82169050919050565b6124db816124c6565b82525050565b5f6020820190506124f45f8301846124d2565b92915050565b6125038161232e565b82525050565b5f60208201905061251c5f8301846124fa565b92915050565b5f6020828403121561253757612536612307565b5b5f61254484828501612355565b91505092915050565b5f6020828403121561256257612561612307565b5b5f61256f84828501612388565b91505092915050565b6125818161223b565b811461258b575f80fd5b50565b5f8135905061259c81612578565b92915050565b5f80604083850312156125b8576125b7612307565b5b5f6125c585828601612355565b92505060206125d68582860161258e565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112612601576126006125e0565b5b8235905067ffffffffffffffff81111561261e5761261d6125e4565b5b60208301915083602082028301111561263a576126396125e8565b5b9250929050565b5f805f6040848603121561265857612657612307565b5b5f84013567ffffffffffffffff8111156126755761267461230b565b5b612681868287016125ec565b935093505060206126948682870161258e565b9150509250925092565b5f80604083850312156126b4576126b3612307565b5b5f6126c185828601612355565b92505060206126d285828601612355565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061272057607f821691505b602082108103612733576127326126dc565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61276d602083612278565b915061277882612739565b602082019050919050565b5f6020820190508181035f83015261279a81612761565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612828602683612278565b9150612833826127ce565b604082019050919050565b5f6020820190508181035f8301526128558161281c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6128b6602483612278565b91506128c18261285c565b604082019050919050565b5f6020820190508181035f8301526128e3816128aa565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612944602283612278565b915061294f826128ea565b604082019050919050565b5f6020820190508181035f83015261297181612938565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6129d2602583612278565b91506129dd82612978565b604082019050919050565b5f6020820190508181035f8301526129ff816129c6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a60602383612278565b9150612a6b82612a06565b604082019050919050565b5f6020820190508181035f830152612a8d81612a54565b9050919050565b7f5472616465206973206e6f74206f70656e2079657400000000000000000000005f82015250565b5f612ac8601583612278565b9150612ad382612a94565b602082019050919050565b5f6020820190508181035f830152612af581612abc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612b3382612369565b9150612b3e83612369565b9250828203905081811115612b5657612b55612afc565b5b92915050565b5f612b6682612369565b9150612b7183612369565b9250828201905080821115612b8957612b88612afc565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612bc3601b83612278565b9150612bce82612b8f565b602082019050919050565b5f6020820190508181035f830152612bf081612bb7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050612c328161233f565b92915050565b5f60208284031215612c4d57612c4c612307565b5b5f612c5a84828501612c24565b91505092915050565b5f819050919050565b5f612c86612c81612c7c84612c63565b6123da565b612369565b9050919050565b612c9681612c6c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612cce8161232e565b82525050565b5f612cdf8383612cc5565b60208301905092915050565b5f602082019050919050565b5f612d0182612c9c565b612d0b8185612ca6565b9350612d1683612cb6565b805f5b83811015612d46578151612d2d8882612cd4565b9750612d3883612ceb565b925050600181019050612d19565b5085935050505092915050565b5f60a082019050612d665f83018861244e565b612d736020830187612c8d565b8181036040830152612d858186612cf7565b9050612d9460608301856124fa565b612da1608083018461244e565b9695505050505050565b612db482612296565b810181811067ffffffffffffffff82111715612dd357612dd2612bf7565b5b80604052505050565b5f612de56122fe565b9050612df18282612dab565b919050565b5f67ffffffffffffffff821115612e1057612e0f612bf7565b5b602082029050602081019050919050565b5f81519050612e2f81612372565b92915050565b5f612e47612e4284612df6565b612ddc565b90508083825260208201905060208402830185811115612e6a57612e696125e8565b5b835b81811015612e935780612e7f8882612e21565b845260208401935050602081019050612e6c565b5050509392505050565b5f82601f830112612eb157612eb06125e0565b5b8151612ec1848260208601612e35565b91505092915050565b5f60208284031215612edf57612ede612307565b5b5f82015167ffffffffffffffff811115612efc57612efb61230b565b5b612f0884828501612e9d565b91505092915050565b5f612f1b82612369565b9150612f2683612369565b9250828202612f3481612369565b91508282048414831517612f4b57612f4a612afc565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f8982612369565b9150612f9483612369565b925082612fa457612fa3612f52565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613009602183612278565b915061301482612faf565b604082019050919050565b5f6020820190508181035f83015261303681612ffd565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122068537e2f0d9199d08f1a1cbae3b3005261e3fbe3223bf3f69fb289f5b8adcca364736f6c634300081a0033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000006fc23ac00000000000000000000000000e5330c5b4777b395fd7c6d35bba7bea5b30ce875000000000000000000000000000000000000000000000000000000000000000342414f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000342414f0000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): BAO
Arg [1] : symbol_ (string): BAO
Arg [2] : totalSupply_ (uint256): 30000000000
Arg [3] : feeReceiver_ (address): 0xE5330c5b4777b395Fd7C6D35bbA7Bea5b30Ce875

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 00000000000000000000000000000000000000000000000000000006fc23ac00
Arg [3] : 000000000000000000000000e5330c5b4777b395fd7c6d35bba7bea5b30ce875
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [5] : 42414f0000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 42414f0000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

23711:4297:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23951:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15107:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17274:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23784:115;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16227:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17925:355;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16069:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18689:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23906:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25560:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23986:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16398:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12112:148;;;;;;;;;;;;;:::i;:::-;;11897:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15326:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19410:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16738:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25693:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24038:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24071:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25107:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25317:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16976:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24137:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25811:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12268:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24982:117;;;;;;;;;;;;;:::i;:::-;;23951:28;;;;;;;;;;;;;:::o;15107:100::-;15161:13;15194:5;15187:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15107:100;:::o;17274:169::-;17357:4;17374:39;17383:12;:10;:12::i;:::-;17397:7;17406:6;17374:8;:39::i;:::-;17431:4;17424:11;;17274:169;;;;:::o;23784:115::-;23856:42;23784:115;:::o;16227:108::-;16288:7;16315:12;;16308:19;;16227:108;:::o;17925:355::-;18065:4;18082:36;18092:6;18100:9;18111:6;18082:9;:36::i;:::-;18129:121;18138:6;18146:12;:10;:12::i;:::-;18160:89;18198:6;18160:89;;;;;;;;;;;;;;;;;:11;:19;18172:6;18160:19;;;;;;;;;;;;;;;:33;18180:12;:10;:12::i;:::-;18160:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;18129:8;:121::i;:::-;18268:4;18261:11;;17925:355;;;;;:::o;16069:93::-;16127:5;16152:2;16145:9;;16069:93;:::o;18689:218::-;18777:4;18794:83;18803:12;:10;:12::i;:::-;18817:7;18826:50;18865:10;18826:11;:25;18838:12;:10;:12::i;:::-;18826:25;;;;;;;;;;;;;;;:34;18852:7;18826:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18794:8;:83::i;:::-;18895:4;18888:11;;18689:218;;;;:::o;23906:38::-;;;:::o;25560:125::-;25625:4;25649:19;:28;25669:7;25649:28;;;;;;;;;;;;;;;;;;;;;;;;;25642:35;;25560:125;;;:::o;23986:39::-;24023:2;23986:39;:::o;16398:127::-;16472:7;16499:9;:18;16509:7;16499:18;;;;;;;;;;;;;;;;16492:25;;16398:127;;;:::o;12112:148::-;12035:12;:10;:12::i;:::-;12024:23;;:7;:5;:7::i;:::-;:23;;;12016:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12219:1:::1;12182:40;;12203:6;;;;;;;;;;;12182:40;;;;;;;;;;;;12250:1;12233:6;;:19;;;;;;;;;;;;;;;;;;12112:148::o:0;11897:79::-;11935:7;11962:6;;;;;;;;;;;11955:13;;11897:79;:::o;15326:104::-;15382:13;15415:7;15408:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15326:104;:::o;19410:269::-;19503:4;19520:129;19529:12;:10;:12::i;:::-;19543:7;19552:96;19591:15;19552:96;;;;;;;;;;;;;;;;;:11;:25;19564:12;:10;:12::i;:::-;19552:25;;;;;;;;;;;;;;;:34;19578:7;19552:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;19520:8;:129::i;:::-;19667:4;19660:11;;19410:269;;;;:::o;16738:175::-;16824:4;16841:42;16851:12;:10;:12::i;:::-;16865:9;16876:6;16841:9;:42::i;:::-;16901:4;16894:11;;16738:175;;;;:::o;25693:110::-;12035:12;:10;:12::i;:::-;12024:23;;:7;:5;:7::i;:::-;:23;;;12016:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25789:6:::1;25768:18;:27;;;;25693:110:::0;:::o;24038:26::-;;;;;;;;;;;;;:::o;24071:31::-;;;;:::o;25107:202::-;12035:12;:10;:12::i;:::-;12024:23;;:7;:5;:7::i;:::-;:23;;;12016:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25227:8:::1;25195:40;;:19;:28;25215:7;25195:28;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;25192:110;;25282:8;25251:19;:28;25271:7;25251:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;25192:110;25107:202:::0;;:::o;25317:235::-;12035:12;:10;:12::i;:::-;12024:23;;:7;:5;:7::i;:::-;:23;;;12016:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25434:9:::1;25430:115;25453:8;;:15;;25449:1;:19;25430:115;;;25525:8;25490:19;:32;25510:8;;25519:1;25510:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;25490:32;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;25470:3;;;;;;;25430:115;;;;25317:235:::0;;;:::o;16976:151::-;17065:7;17092:11;:18;17104:5;17092:18;;;;;;;;;;;;;;;:27;17111:7;17092:27;;;;;;;;;;;;;;;;17085:34;;16976:151;;;;:::o;24137:33::-;;;;:::o;25811:108::-;12035:12;:10;:12::i;:::-;12024:23;;:7;:5;:7::i;:::-;:23;;;12016:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25899:12:::1;25885:11;;:26;;;;;;;;;;;;;;;;;;25811:108:::0;:::o;12268:244::-;12035:12;:10;:12::i;:::-;12024:23;;:7;:5;:7::i;:::-;:23;;;12016:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12377:1:::1;12357:22;;:8;:22;;::::0;12349:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12467:8;12438:38;;12459:6;;;;;;;;;;;12438:38;;;;;;;;;;;;12496:8;12487:6;;:17;;;;;;;;;;;;;;;;;;12268:244:::0;:::o;24982:117::-;12035:12;:10;:12::i;:::-;12024:23;;:7;:5;:7::i;:::-;:23;;;12016:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25040:16:::1;;;;;;;;;;;25039:17;25031:26;;;::::0;::::1;;25087:4;25068:16;;:23;;;;;;;;;;;;;;;;;;24982:117::o:0;2906:98::-;2959:7;2986:10;2979:17;;2906:98;:::o;22596:380::-;22749:1;22732:19;;:5;:19;;;22724:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22830:1;22811:21;;:7;:21;;;22803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22914:6;22884:11;:18;22896:5;22884:18;;;;;;;;;;;;;;;:27;22903:7;22884:27;;;;;;;;;;;;;;;:36;;;;22952:7;22936:32;;22945:5;22936:32;;;22961:6;22936:32;;;;;;:::i;:::-;;;;;;;;22596:380;;;:::o;25930:1696::-;26078:1;26062:18;;:4;:18;;;26054:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26155:1;26141:16;;:2;:16;;;26133:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;26214:19;:25;26234:4;26214:25;;;;;;;;;;;;;;;;;;;;;;;;;26213:26;:54;;;;;26244:19;:23;26264:2;26244:23;;;;;;;;;;;;;;;;;;;;;;;;;26243:24;26213:54;26210:136;;;26292:16;;;;;;;;;;;26284:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;26210:136;26363:8;;;;;;;;;;;26362:9;:34;;;;;26383:13;26375:21;;:4;:21;;;;26362:34;:64;;;;;26401:19;:25;26421:4;26401:25;;;;;;;;;;;;;;;;;;;;;;;;;26400:26;26362:64;:92;;;;;26431:19;:23;26451:2;26431:23;;;;;;;;;;;;;;;;;;;;;;;;;26430:24;26362:92;26358:230;;;26503:4;26473:27;26493:6;26473:15;26483:4;26473:9;:15::i;:::-;:19;;:27;;;;:::i;:::-;:34;26470:107;;;26536:25;26556:4;26536:15;26546:4;26536:9;:15::i;:::-;:19;;:25;;;;:::i;:::-;26527:34;;26470:107;26358:230;26613:1;26603:6;:11;26600:56;;26618:28;26634:4;26640:2;26644:1;26618:15;:28::i;:::-;26648:7;;26600:56;26699:18;;26671:24;26689:4;26671:9;:24::i;:::-;:46;;:72;;;;;26735:8;;;;;;;;;;;26734:9;26671:72;:110;;;;;26768:13;26760:21;;:4;:21;;;;26671:110;:142;;;;;26806:7;:5;:7::i;:::-;26798:15;;:4;:15;;;;26671:142;:172;;;;;26836:7;:5;:7::i;:::-;26830:13;;:2;:13;;;;26671:172;26668:404;;;26881:4;26870:8;;:15;;;;;;;;;;;;;;;;;;26922:1;26903:16;;:20;26900:130;;;26943:32;26958:16;;26943:14;:32::i;:::-;27013:1;26994:16;:20;;;;26900:130;27055:5;27044:8;;:16;;;;;;;;;;;;;;;;;;26668:404;27084:12;27100:8;;;;;;;;;;;27099:9;27084:24;;27122:19;:25;27142:4;27122:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;27151:19;:23;27171:2;27151:23;;;;;;;;;;;;;;;;;;;;;;;;;27122:52;27119:194;;;27201:5;27191:15;;27119:194;;;27234:13;27226:21;;:4;:21;;;;:44;;;;;27257:13;27251:19;;:2;:19;;;;27226:44;27223:90;;;27296:5;27286:15;;27223:90;27119:194;27328:7;27325:250;;;27352:14;27369:32;27396:4;27369:22;24023:2;27369:6;:10;;:22;;;;:::i;:::-;:26;;:32;;;;:::i;:::-;27352:49;;27435:28;27456:6;27435:16;;:20;;:28;;;;:::i;:::-;27416:16;:47;;;;27478:43;27494:4;27508;27514:6;27478:15;:43::i;:::-;27545:18;27556:6;27545;:10;;:18;;;;:::i;:::-;27536:27;;27337:238;27325:250;27585:33;27601:4;27607:2;27611:6;27585:15;:33::i;:::-;26043:1583;25930:1696;;;;:::o;12876:192::-;12962:7;12995:1;12990;:6;;12998:12;12982:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;13022:9;13038:1;13034;:5;;;;:::i;:::-;13022:17;;13059:1;13052:8;;;12876:192;;;;;:::o;12543:181::-;12601:7;12621:9;12637:1;12633;:5;;;;:::i;:::-;12621:17;;12662:1;12657;:6;;12649:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;12715:1;12708:8;;;12543:181;;;;:::o;12732:136::-;12790:7;12817:43;12821:1;12824;12817:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;12810:50;;12732:136;;;;:::o;20169:573::-;20327:1;20309:20;;:6;:20;;;20301:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20411:1;20390:23;;:9;:23;;;20382:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20466:47;20487:6;20495:9;20506:6;20466:20;:47::i;:::-;20546:71;20568:6;20546:71;;;;;;;;;;;;;;;;;:9;:17;20556:6;20546:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;20526:9;:17;20536:6;20526:17;;;;;;;;;;;;;;;:91;;;;20651:32;20676:6;20651:9;:20;20661:9;20651:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;20628:9;:20;20638:9;20628:20;;;;;;;;;;;;;;;:55;;;;20716:9;20699:35;;20708:6;20699:35;;;20727:6;20699:35;;;;;;:::i;:::-;;;;;;;;20169:573;;;:::o;27634:365::-;27698:21;27736:1;27722:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27698:40;;27767:4;27749;27754:1;27749:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23856:42;27793:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27783:4;27788:1;27783:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;23856:42;27826:37;;;27878:11;27904:1;27920:4;27939:11;;;;;;;;;;;27965:15;27826:165;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;27687:312;27634:365;:::o;13076:471::-;13134:7;13384:1;13379;:6;13375:47;;13409:1;13402:8;;;;13375:47;13434:9;13450:1;13446;:5;;;;:::i;:::-;13434:17;;13479:1;13474;13470;:5;;;;:::i;:::-;:10;13462:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;13538:1;13531:8;;;13076:471;;;;;:::o;13555:132::-;13613:7;13640:39;13644:1;13647;13640:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;13633:46;;13555:132;;;;:::o;23579:125::-;;;;:::o;13695:278::-;13781:7;13813:1;13809;:5;13816:12;13801:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;13840:9;13856:1;13852;:5;;;;:::i;:::-;13840:17;;13964:1;13957:8;;;13695:278;;;;;:::o;7:90:1:-;41:7;84:5;77:13;70:21;59:32;;7:90;;;:::o;103:109::-;184:21;199:5;184:21;:::i;:::-;179:3;172:34;103:109;;:::o;218:210::-;305:4;343:2;332:9;328:18;320:26;;356:65;418:1;407:9;403:17;394:6;356:65;:::i;:::-;218:210;;;;:::o;434:99::-;486:6;520:5;514:12;504:22;;434:99;;;:::o;539:169::-;623:11;657:6;652:3;645:19;697:4;692:3;688:14;673:29;;539:169;;;;:::o;714:139::-;803:6;798:3;793;787:23;844:1;835:6;830:3;826:16;819:27;714:139;;;:::o;859:102::-;900:6;951:2;947:7;942:2;935:5;931:14;927:28;917:38;;859:102;;;:::o;967:377::-;1055:3;1083:39;1116:5;1083:39;:::i;:::-;1138:71;1202:6;1197:3;1138:71;:::i;:::-;1131:78;;1218:65;1276:6;1271:3;1264:4;1257:5;1253:16;1218:65;:::i;:::-;1308:29;1330:6;1308:29;:::i;:::-;1303:3;1299:39;1292:46;;1059:285;967:377;;;;:::o;1350:313::-;1463:4;1501:2;1490:9;1486:18;1478:26;;1550:9;1544:4;1540:20;1536:1;1525:9;1521:17;1514:47;1578:78;1651:4;1642:6;1578:78;:::i;:::-;1570:86;;1350:313;;;;:::o;1669:75::-;1702:6;1735:2;1729:9;1719:19;;1669:75;:::o;1750:117::-;1859:1;1856;1849:12;1873:117;1982:1;1979;1972:12;1996:126;2033:7;2073:42;2066:5;2062:54;2051:65;;1996:126;;;:::o;2128:96::-;2165:7;2194:24;2212:5;2194:24;:::i;:::-;2183:35;;2128:96;;;:::o;2230:122::-;2303:24;2321:5;2303:24;:::i;:::-;2296:5;2293:35;2283:63;;2342:1;2339;2332:12;2283:63;2230:122;:::o;2358:139::-;2404:5;2442:6;2429:20;2420:29;;2458:33;2485:5;2458:33;:::i;:::-;2358:139;;;;:::o;2503:77::-;2540:7;2569:5;2558:16;;2503:77;;;:::o;2586:122::-;2659:24;2677:5;2659:24;:::i;:::-;2652:5;2649:35;2639:63;;2698:1;2695;2688:12;2639:63;2586:122;:::o;2714:139::-;2760:5;2798:6;2785:20;2776:29;;2814:33;2841:5;2814:33;:::i;:::-;2714:139;;;;:::o;2859:474::-;2927:6;2935;2984:2;2972:9;2963:7;2959:23;2955:32;2952:119;;;2990:79;;:::i;:::-;2952:119;3110:1;3135:53;3180:7;3171:6;3160:9;3156:22;3135:53;:::i;:::-;3125:63;;3081:117;3237:2;3263:53;3308:7;3299:6;3288:9;3284:22;3263:53;:::i;:::-;3253:63;;3208:118;2859:474;;;;;:::o;3339:60::-;3367:3;3388:5;3381:12;;3339:60;;;:::o;3405:142::-;3455:9;3488:53;3506:34;3515:24;3533:5;3515:24;:::i;:::-;3506:34;:::i;:::-;3488:53;:::i;:::-;3475:66;;3405:142;;;:::o;3553:126::-;3603:9;3636:37;3667:5;3636:37;:::i;:::-;3623:50;;3553:126;;;:::o;3685:152::-;3761:9;3794:37;3825:5;3794:37;:::i;:::-;3781:50;;3685:152;;;:::o;3843:183::-;3956:63;4013:5;3956:63;:::i;:::-;3951:3;3944:76;3843:183;;:::o;4032:274::-;4151:4;4189:2;4178:9;4174:18;4166:26;;4202:97;4296:1;4285:9;4281:17;4272:6;4202:97;:::i;:::-;4032:274;;;;:::o;4312:118::-;4399:24;4417:5;4399:24;:::i;:::-;4394:3;4387:37;4312:118;;:::o;4436:222::-;4529:4;4567:2;4556:9;4552:18;4544:26;;4580:71;4648:1;4637:9;4633:17;4624:6;4580:71;:::i;:::-;4436:222;;;;:::o;4664:619::-;4741:6;4749;4757;4806:2;4794:9;4785:7;4781:23;4777:32;4774:119;;;4812:79;;:::i;:::-;4774:119;4932:1;4957:53;5002:7;4993:6;4982:9;4978:22;4957:53;:::i;:::-;4947:63;;4903:117;5059:2;5085:53;5130:7;5121:6;5110:9;5106:22;5085:53;:::i;:::-;5075:63;;5030:118;5187:2;5213:53;5258:7;5249:6;5238:9;5234:22;5213:53;:::i;:::-;5203:63;;5158:118;4664:619;;;;;:::o;5289:86::-;5324:7;5364:4;5357:5;5353:16;5342:27;;5289:86;;;:::o;5381:112::-;5464:22;5480:5;5464:22;:::i;:::-;5459:3;5452:35;5381:112;;:::o;5499:214::-;5588:4;5626:2;5615:9;5611:18;5603:26;;5639:67;5703:1;5692:9;5688:17;5679:6;5639:67;:::i;:::-;5499:214;;;;:::o;5719:118::-;5806:24;5824:5;5806:24;:::i;:::-;5801:3;5794:37;5719:118;;:::o;5843:222::-;5936:4;5974:2;5963:9;5959:18;5951:26;;5987:71;6055:1;6044:9;6040:17;6031:6;5987:71;:::i;:::-;5843:222;;;;:::o;6071:329::-;6130:6;6179:2;6167:9;6158:7;6154:23;6150:32;6147:119;;;6185:79;;:::i;:::-;6147:119;6305:1;6330:53;6375:7;6366:6;6355:9;6351:22;6330:53;:::i;:::-;6320:63;;6276:117;6071:329;;;;:::o;6406:::-;6465:6;6514:2;6502:9;6493:7;6489:23;6485:32;6482:119;;;6520:79;;:::i;:::-;6482:119;6640:1;6665:53;6710:7;6701:6;6690:9;6686:22;6665:53;:::i;:::-;6655:63;;6611:117;6406:329;;;;:::o;6741:116::-;6811:21;6826:5;6811:21;:::i;:::-;6804:5;6801:32;6791:60;;6847:1;6844;6837:12;6791:60;6741:116;:::o;6863:133::-;6906:5;6944:6;6931:20;6922:29;;6960:30;6984:5;6960:30;:::i;:::-;6863:133;;;;:::o;7002:468::-;7067:6;7075;7124:2;7112:9;7103:7;7099:23;7095:32;7092:119;;;7130:79;;:::i;:::-;7092:119;7250:1;7275:53;7320:7;7311:6;7300:9;7296:22;7275:53;:::i;:::-;7265:63;;7221:117;7377:2;7403:50;7445:7;7436:6;7425:9;7421:22;7403:50;:::i;:::-;7393:60;;7348:115;7002:468;;;;;:::o;7476:117::-;7585:1;7582;7575:12;7599:117;7708:1;7705;7698:12;7722:117;7831:1;7828;7821:12;7862:568;7935:8;7945:6;7995:3;7988:4;7980:6;7976:17;7972:27;7962:122;;8003:79;;:::i;:::-;7962:122;8116:6;8103:20;8093:30;;8146:18;8138:6;8135:30;8132:117;;;8168:79;;:::i;:::-;8132:117;8282:4;8274:6;8270:17;8258:29;;8336:3;8328:4;8320:6;8316:17;8306:8;8302:32;8299:41;8296:128;;;8343:79;;:::i;:::-;8296:128;7862:568;;;;;:::o;8436:698::-;8528:6;8536;8544;8593:2;8581:9;8572:7;8568:23;8564:32;8561:119;;;8599:79;;:::i;:::-;8561:119;8747:1;8736:9;8732:17;8719:31;8777:18;8769:6;8766:30;8763:117;;;8799:79;;:::i;:::-;8763:117;8912:80;8984:7;8975:6;8964:9;8960:22;8912:80;:::i;:::-;8894:98;;;;8690:312;9041:2;9067:50;9109:7;9100:6;9089:9;9085:22;9067:50;:::i;:::-;9057:60;;9012:115;8436:698;;;;;:::o;9140:474::-;9208:6;9216;9265:2;9253:9;9244:7;9240:23;9236:32;9233:119;;;9271:79;;:::i;:::-;9233:119;9391:1;9416:53;9461:7;9452:6;9441:9;9437:22;9416:53;:::i;:::-;9406:63;;9362:117;9518:2;9544:53;9589:7;9580:6;9569:9;9565:22;9544:53;:::i;:::-;9534:63;;9489:118;9140:474;;;;;:::o;9620:180::-;9668:77;9665:1;9658:88;9765:4;9762:1;9755:15;9789:4;9786:1;9779:15;9806:320;9850:6;9887:1;9881:4;9877:12;9867:22;;9934:1;9928:4;9924:12;9955:18;9945:81;;10011:4;10003:6;9999:17;9989:27;;9945:81;10073:2;10065:6;10062:14;10042:18;10039:38;10036:84;;10092:18;;:::i;:::-;10036:84;9857:269;9806:320;;;:::o;10132:182::-;10272:34;10268:1;10260:6;10256:14;10249:58;10132:182;:::o;10320:366::-;10462:3;10483:67;10547:2;10542:3;10483:67;:::i;:::-;10476:74;;10559:93;10648:3;10559:93;:::i;:::-;10677:2;10672:3;10668:12;10661:19;;10320:366;;;:::o;10692:419::-;10858:4;10896:2;10885:9;10881:18;10873:26;;10945:9;10939:4;10935:20;10931:1;10920:9;10916:17;10909:47;10973:131;11099:4;10973:131;:::i;:::-;10965:139;;10692:419;;;:::o;11117:180::-;11165:77;11162:1;11155:88;11262:4;11259:1;11252:15;11286:4;11283:1;11276:15;11303:225;11443:34;11439:1;11431:6;11427:14;11420:58;11512:8;11507:2;11499:6;11495:15;11488:33;11303:225;:::o;11534:366::-;11676:3;11697:67;11761:2;11756:3;11697:67;:::i;:::-;11690:74;;11773:93;11862:3;11773:93;:::i;:::-;11891:2;11886:3;11882:12;11875:19;;11534:366;;;:::o;11906:419::-;12072:4;12110:2;12099:9;12095:18;12087:26;;12159:9;12153:4;12149:20;12145:1;12134:9;12130:17;12123:47;12187:131;12313:4;12187:131;:::i;:::-;12179:139;;11906:419;;;:::o;12331:223::-;12471:34;12467:1;12459:6;12455:14;12448:58;12540:6;12535:2;12527:6;12523:15;12516:31;12331:223;:::o;12560:366::-;12702:3;12723:67;12787:2;12782:3;12723:67;:::i;:::-;12716:74;;12799:93;12888:3;12799:93;:::i;:::-;12917:2;12912:3;12908:12;12901:19;;12560:366;;;:::o;12932:419::-;13098:4;13136:2;13125:9;13121:18;13113:26;;13185:9;13179:4;13175:20;13171:1;13160:9;13156:17;13149:47;13213:131;13339:4;13213:131;:::i;:::-;13205:139;;12932:419;;;:::o;13357:221::-;13497:34;13493:1;13485:6;13481:14;13474:58;13566:4;13561:2;13553:6;13549:15;13542:29;13357:221;:::o;13584:366::-;13726:3;13747:67;13811:2;13806:3;13747:67;:::i;:::-;13740:74;;13823:93;13912:3;13823:93;:::i;:::-;13941:2;13936:3;13932:12;13925:19;;13584:366;;;:::o;13956:419::-;14122:4;14160:2;14149:9;14145:18;14137:26;;14209:9;14203:4;14199:20;14195:1;14184:9;14180:17;14173:47;14237:131;14363:4;14237:131;:::i;:::-;14229:139;;13956:419;;;:::o;14381:224::-;14521:34;14517:1;14509:6;14505:14;14498:58;14590:7;14585:2;14577:6;14573:15;14566:32;14381:224;:::o;14611:366::-;14753:3;14774:67;14838:2;14833:3;14774:67;:::i;:::-;14767:74;;14850:93;14939:3;14850:93;:::i;:::-;14968:2;14963:3;14959:12;14952:19;;14611:366;;;:::o;14983:419::-;15149:4;15187:2;15176:9;15172:18;15164:26;;15236:9;15230:4;15226:20;15222:1;15211:9;15207:17;15200:47;15264:131;15390:4;15264:131;:::i;:::-;15256:139;;14983:419;;;:::o;15408:222::-;15548:34;15544:1;15536:6;15532:14;15525:58;15617:5;15612:2;15604:6;15600:15;15593:30;15408:222;:::o;15636:366::-;15778:3;15799:67;15863:2;15858:3;15799:67;:::i;:::-;15792:74;;15875:93;15964:3;15875:93;:::i;:::-;15993:2;15988:3;15984:12;15977:19;;15636:366;;;:::o;16008:419::-;16174:4;16212:2;16201:9;16197:18;16189:26;;16261:9;16255:4;16251:20;16247:1;16236:9;16232:17;16225:47;16289:131;16415:4;16289:131;:::i;:::-;16281:139;;16008:419;;;:::o;16433:171::-;16573:23;16569:1;16561:6;16557:14;16550:47;16433:171;:::o;16610:366::-;16752:3;16773:67;16837:2;16832:3;16773:67;:::i;:::-;16766:74;;16849:93;16938:3;16849:93;:::i;:::-;16967:2;16962:3;16958:12;16951:19;;16610:366;;;:::o;16982:419::-;17148:4;17186:2;17175:9;17171:18;17163:26;;17235:9;17229:4;17225:20;17221:1;17210:9;17206:17;17199:47;17263:131;17389:4;17263:131;:::i;:::-;17255:139;;16982:419;;;:::o;17407:180::-;17455:77;17452:1;17445:88;17552:4;17549:1;17542:15;17576:4;17573:1;17566:15;17593:194;17633:4;17653:20;17671:1;17653:20;:::i;:::-;17648:25;;17687:20;17705:1;17687:20;:::i;:::-;17682:25;;17731:1;17728;17724:9;17716:17;;17755:1;17749:4;17746:11;17743:37;;;17760:18;;:::i;:::-;17743:37;17593:194;;;;:::o;17793:191::-;17833:3;17852:20;17870:1;17852:20;:::i;:::-;17847:25;;17886:20;17904:1;17886:20;:::i;:::-;17881:25;;17929:1;17926;17922:9;17915:16;;17950:3;17947:1;17944:10;17941:36;;;17957:18;;:::i;:::-;17941:36;17793:191;;;;:::o;17990:177::-;18130:29;18126:1;18118:6;18114:14;18107:53;17990:177;:::o;18173:366::-;18315:3;18336:67;18400:2;18395:3;18336:67;:::i;:::-;18329:74;;18412:93;18501:3;18412:93;:::i;:::-;18530:2;18525:3;18521:12;18514:19;;18173:366;;;:::o;18545:419::-;18711:4;18749:2;18738:9;18734:18;18726:26;;18798:9;18792:4;18788:20;18784:1;18773:9;18769:17;18762:47;18826:131;18952:4;18826:131;:::i;:::-;18818:139;;18545:419;;;:::o;18970:180::-;19018:77;19015:1;19008:88;19115:4;19112:1;19105:15;19139:4;19136:1;19129:15;19156:143;19213:5;19244:6;19238:13;19229:22;;19260:33;19287:5;19260:33;:::i;:::-;19156:143;;;;:::o;19305:351::-;19375:6;19424:2;19412:9;19403:7;19399:23;19395:32;19392:119;;;19430:79;;:::i;:::-;19392:119;19550:1;19575:64;19631:7;19622:6;19611:9;19607:22;19575:64;:::i;:::-;19565:74;;19521:128;19305:351;;;;:::o;19662:85::-;19707:7;19736:5;19725:16;;19662:85;;;:::o;19753:158::-;19811:9;19844:61;19862:42;19871:32;19897:5;19871:32;:::i;:::-;19862:42;:::i;:::-;19844:61;:::i;:::-;19831:74;;19753:158;;;:::o;19917:147::-;20012:45;20051:5;20012:45;:::i;:::-;20007:3;20000:58;19917:147;;:::o;20070:114::-;20137:6;20171:5;20165:12;20155:22;;20070:114;;;:::o;20190:184::-;20289:11;20323:6;20318:3;20311:19;20363:4;20358:3;20354:14;20339:29;;20190:184;;;;:::o;20380:132::-;20447:4;20470:3;20462:11;;20500:4;20495:3;20491:14;20483:22;;20380:132;;;:::o;20518:108::-;20595:24;20613:5;20595:24;:::i;:::-;20590:3;20583:37;20518:108;;:::o;20632:179::-;20701:10;20722:46;20764:3;20756:6;20722:46;:::i;:::-;20800:4;20795:3;20791:14;20777:28;;20632:179;;;;:::o;20817:113::-;20887:4;20919;20914:3;20910:14;20902:22;;20817:113;;;:::o;20966:732::-;21085:3;21114:54;21162:5;21114:54;:::i;:::-;21184:86;21263:6;21258:3;21184:86;:::i;:::-;21177:93;;21294:56;21344:5;21294:56;:::i;:::-;21373:7;21404:1;21389:284;21414:6;21411:1;21408:13;21389:284;;;21490:6;21484:13;21517:63;21576:3;21561:13;21517:63;:::i;:::-;21510:70;;21603:60;21656:6;21603:60;:::i;:::-;21593:70;;21449:224;21436:1;21433;21429:9;21424:14;;21389:284;;;21393:14;21689:3;21682:10;;21090:608;;;20966:732;;;;:::o;21704:831::-;21967:4;22005:3;21994:9;21990:19;21982:27;;22019:71;22087:1;22076:9;22072:17;22063:6;22019:71;:::i;:::-;22100:80;22176:2;22165:9;22161:18;22152:6;22100:80;:::i;:::-;22227:9;22221:4;22217:20;22212:2;22201:9;22197:18;22190:48;22255:108;22358:4;22349:6;22255:108;:::i;:::-;22247:116;;22373:72;22441:2;22430:9;22426:18;22417:6;22373:72;:::i;:::-;22455:73;22523:3;22512:9;22508:19;22499:6;22455:73;:::i;:::-;21704:831;;;;;;;;:::o;22541:281::-;22624:27;22646:4;22624:27;:::i;:::-;22616:6;22612:40;22754:6;22742:10;22739:22;22718:18;22706:10;22703:34;22700:62;22697:88;;;22765:18;;:::i;:::-;22697:88;22805:10;22801:2;22794:22;22584:238;22541:281;;:::o;22828:129::-;22862:6;22889:20;;:::i;:::-;22879:30;;22918:33;22946:4;22938:6;22918:33;:::i;:::-;22828:129;;;:::o;22963:311::-;23040:4;23130:18;23122:6;23119:30;23116:56;;;23152:18;;:::i;:::-;23116:56;23202:4;23194:6;23190:17;23182:25;;23262:4;23256;23252:15;23244:23;;22963:311;;;:::o;23280:143::-;23337:5;23368:6;23362:13;23353:22;;23384:33;23411:5;23384:33;:::i;:::-;23280:143;;;;:::o;23446:732::-;23553:5;23578:81;23594:64;23651:6;23594:64;:::i;:::-;23578:81;:::i;:::-;23569:90;;23679:5;23708:6;23701:5;23694:21;23742:4;23735:5;23731:16;23724:23;;23795:4;23787:6;23783:17;23775:6;23771:30;23824:3;23816:6;23813:15;23810:122;;;23843:79;;:::i;:::-;23810:122;23958:6;23941:231;23975:6;23970:3;23967:15;23941:231;;;24050:3;24079:48;24123:3;24111:10;24079:48;:::i;:::-;24074:3;24067:61;24157:4;24152:3;24148:14;24141:21;;24017:155;24001:4;23996:3;23992:14;23985:21;;23941:231;;;23945:21;23559:619;;23446:732;;;;;:::o;24201:385::-;24283:5;24332:3;24325:4;24317:6;24313:17;24309:27;24299:122;;24340:79;;:::i;:::-;24299:122;24450:6;24444:13;24475:105;24576:3;24568:6;24561:4;24553:6;24549:17;24475:105;:::i;:::-;24466:114;;24289:297;24201:385;;;;:::o;24592:554::-;24687:6;24736:2;24724:9;24715:7;24711:23;24707:32;24704:119;;;24742:79;;:::i;:::-;24704:119;24883:1;24872:9;24868:17;24862:24;24913:18;24905:6;24902:30;24899:117;;;24935:79;;:::i;:::-;24899:117;25040:89;25121:7;25112:6;25101:9;25097:22;25040:89;:::i;:::-;25030:99;;24833:306;24592:554;;;;:::o;25152:410::-;25192:7;25215:20;25233:1;25215:20;:::i;:::-;25210:25;;25249:20;25267:1;25249:20;:::i;:::-;25244:25;;25304:1;25301;25297:9;25326:30;25344:11;25326:30;:::i;:::-;25315:41;;25505:1;25496:7;25492:15;25489:1;25486:22;25466:1;25459:9;25439:83;25416:139;;25535:18;;:::i;:::-;25416:139;25200:362;25152:410;;;;:::o;25568:180::-;25616:77;25613:1;25606:88;25713:4;25710:1;25703:15;25737:4;25734:1;25727:15;25754:185;25794:1;25811:20;25829:1;25811:20;:::i;:::-;25806:25;;25845:20;25863:1;25845:20;:::i;:::-;25840:25;;25884:1;25874:35;;25889:18;;:::i;:::-;25874:35;25931:1;25928;25924:9;25919:14;;25754:185;;;;:::o;25945:220::-;26085:34;26081:1;26073:6;26069:14;26062:58;26154:3;26149:2;26141:6;26137:15;26130:28;25945:220;:::o;26171:366::-;26313:3;26334:67;26398:2;26393:3;26334:67;:::i;:::-;26327:74;;26410:93;26499:3;26410:93;:::i;:::-;26528:2;26523:3;26519:12;26512:19;;26171:366;;;:::o;26543:419::-;26709:4;26747:2;26736:9;26732:18;26724:26;;26796:9;26790:4;26786:20;26782:1;26771:9;26767:17;26760:47;26824:131;26950:4;26824:131;:::i;:::-;26816:139;;26543:419;;;:::o

Swarm Source

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